[Arşivle!] Forumu kirletmemek için herhangi bir acemi sorusu. Profesyonel, kaçırmayın. Sensiz hiçbir yerde - 2. - sayfa 415

 

Cezalandırın, köşeye sıkıştırın. :)

Ama özünde - özü daha basit bir şekilde ifade edin, ifade, beyninizi kırabileceğiniz ve ne istediğinizi anlayamayacağınız şekilde inşa edilmiştir. Ne de olsa, daha önce sizden ne “öğretildiğini” kimse bilmiyor.

 
Shniperson :
Kral! danışmanı gece ticaret yapmamak için nasıl "sütten keserim"? Yani, 23 ila 02 saat arasındaki terminal saatine göre (Greenwich Ortalama Saati).. Hour()>=2&&Hour()<=23 satırları yardımcı olmadı...

 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 :


Yolda bir proxy var mı?
 
Vinin :

Değil
 
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);
  }
//--------------------------------------------------------------------

Bu algoritma doğru çalışır, ancak ilk ifadede for ifadesinin başlığında atama operatörleri değiştirilirse, program artık çalışmaz. Niye ya?

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 :

Bu algoritma doğru çalışır, ancak ilk ifadede for ifadesinin başlığında atama operatörleri değiştirilirse, program artık çalışmaz. Niye ya?






for(int i=1, j=499;

j değişkenini ikinci kez bildir

 
ilunga :

j değişkenini ikinci kez bildir

Teşekkürler)))

 
VladimirR :

Bu algoritma doğru çalışır, ancak ilk ifadede for ifadesinin başlığında atama operatörleri değiştirilirse, program artık çalışmaz. Niye ya?







Döngüdeki sayaçların değerlerini neden iki kez değiştirdiğini merak ediyorum. Ve bazı nedenlerden dolayı (ön) S2 ataması yoktur. Başlangıçta 0'a eşittir ve yalnızca ikinci yinelemede (daha doğrusu üçüncüde) gerçek bir değerler karşılaştırması var mı (sıfırdan veya birden nasıl sayılacağına bağlı olarak)
 

Bu seçenek de çalışmıyor.

int başlangıç()
{
intS1,S2; //S1 ve S2 sırasıyla sonraki ve önceki dikdörtgenlerin alanlarıdır
//----
for( int i=1, j=499; i<500; i++,j--) //alan değerlerinin sıralı sayımı
{
S2=S1; S1=i*j; //sonraki ve önceki alanı hesapla
if(S2>=S1) //maksimum değeri kontrol et
{
ben--; j++; //maksimum alana karşılık gelen değerleri döndür
kırmak;
}
}
//----
Uyarı ("Alan eşittir ",S2,"mm*mm A=",i,"mm B=",j,"mm");
dönüş(0);
}
//+------------------------------------------- --------------------+