[Archiv!] Jede Anfängerfrage, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht daran vorbei. Könnte nirgendwo ohne dich hingehen - 2. - Seite 415

 

Bestrafen Sie ihn, stellen Sie ihn in die Ecke. :)

Die Formulierungen sind so konstruiert, dass man sich das Hirn zermartern kann und nicht versteht, was man eigentlich will. Niemand weiß, was er zuvor von Ihnen "gelernt" hat.

 
Shniperson:
Meine Herren, wie "trainiert" man einen EA, nicht nachts zu handeln? D.h. Endzeit zwischen 23 und 02 Stunden (GMT)... Hour()>=2&Hour()<=23 hat nicht geholfen...

extern int bh = 0; // час начала
extern int bm = 0; // минута начала
extern int eh = 23;// час окончания
extern int em = 2; // минута окончания

int start()
{
   if(TradeTime() && Ваши условия входа) OrderSend(...);
}

bool TradeTime()
  { 
   int TimeNow = 60 * Hour() + Minute();   
   if (60 * bh + bm < TimeNow && TimeNow < 60 * eh + em) return (true);
   return (false);
  }
 

Здравствуйте всем. У меня МТ4 (демо) не связывается с сервером, даже не пытается. Постоянно горит надпись "нет связи". Пробовал "просканировать серверы" - не помогает.

 
Katso:


Ist eine Vollmacht auf dem Weg?
 
Vinin:

Nein
 
int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for( j=499, int i=1; i<500; i++,j--)                                   //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения сторон соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------

Dieser Algorithmus funktioniert korrekt, aber wenn Sie die Zuweisungsoperatoren in der Kopfzeile der for-Anweisung im ersten Ausdruck vertauschen, funktioniert das Programm nicht mehr. Und warum?

int start()                         
  {
//--------------------------------------------------------------------
   int
   S1,S2,                                                                 //S1 и S2 площадя следущего и предыдущего прямоугольников соответственно 
   j;                                                                     //значения стороны
//--------------------------------------------------------------------
   for(int i=1, j=499; i<500; i++,j--)                                    //последовательный перебор значений площади
      {
       S2=S1; S1=i*j;                                                     //вычисляем площадь следущую и предыдущую
       if(S2>=S1)                                                         //проверка максимального значения  
         {
          i--; j++;                                                       //возвращаем значения соответствующие максимальной площади
          break;
         }
      }                 
//--------------------------------------------------------------------
Alert("Максимальная площадь равна ",S2,"mm*mm  A=",i,"mm B=",j,"mm");        
return(0);
  }
//--------------------------------------------------------------------
 
VladimirR:

Dieser Algorithmus funktioniert korrekt, aber wenn Sie die Zuweisungsoperatoren in der Kopfzeile der for-Anweisung im ersten Ausdruck vertauschen, funktioniert das Programm nicht mehr. Und warum?






for(int i=1, j=499;

die Variable j ein zweites Mal deklarieren

 
ilunga:

die Variable j ein zweites Mal deklarieren

Vielen Dank)))

 
VladimirR:

Dieser Algorithmus funktioniert korrekt, aber wenn Sie die Zuweisungsoperatoren in der Kopfzeile der for-Anweisung im ersten Ausdruck vertauschen, funktioniert das Programm nicht mehr. Und warum?







Ich frage mich, warum die Zählerwerte in der Schleife zweimal geändert werden sollen. Und aus irgendeinem Grund gibt es keine (vorläufige) Zuordnung von S2. Zu Beginn ist er 0, und erst bei der zweiten Iteration (genauer gesagt bei der dritten) findet ein echter Vergleich der Werte statt (je nachdem, wie man von Null oder von Eins aus zählt)
 

Auch das funktioniert nicht

int start()
{
int S1,S2; //S1 und S2 Flächen des nächsten bzw. vorherigen Rechtecks
//----
for( int i=1, j=499; i<500; i++,j--) //mehrere Flächenwerte
{
S2=S1; S1=i*j; //Berechnung der nächsten und vorherigen Fläche
if(S2>=S1) //Prüfung des Maximalwerts
{
i--; j++; //Rückgabe der Werte, die der maximalen Fläche entsprechen
break;
}
}
//----
Alert("Fläche ist gleich ",S2, "mm*mm A=",i, "mm B=",j, "mm");
return(0);
}
//+------------------------------------------------------------------+
Grund der Beschwerde: