Yeni başlayanlardan sorular MQL4 MT4 MetaTrader 4 - sayfa 241

 

Merhaba programcılar!

Bir for döngüsünde iki sayının karşılaştırılması nasıl çözülür?

Döngü kaydı i olmadan A==B'yi ne bulur?

Döngüde, iki sayı yalnızca i ile karşılaştırılır , örneğin, eğer i == 1 ise onları karşılaştırır, o zaman sadece A ve B sayılarından i'de eşit bir sayı ile geçer .

Döngü kaydı i olmadan kendi aralarında verilen tüm sayıları yinelemesini istiyorum.   Bir kod örneği gösterebilirseniz, bunu kodda nasıl uygulayabilirsiniz.

Teşekkür ederim.  

a

 #property copyright "."
#property link        ""
#property version    "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
 
     for ( int i= 1 ; i< 10 ; i++)
     {   
       double x= 1.0 ;
       double y= 0.5 ;
        
       double A = x*i;
       double B = y*i;
  
       Alert ( " i = " ,i, "     A = " ,DoubleToStr(A, 1 ), "     B = " ,DoubleToStr(B, 1 ));
      
       //КАК НАЙТИ СРАВНЕНИЕ ЧИСЕЛ А == В БЕЗ УЧЕТА i ?
   }
  }
//+------------------------------------------------------------------+
Dosyalar:
Test_1.mq4  2 kb
 

Bir döngü içinde bir döngü yapın. İlk önce, ilk A'yı on B'nin her biriyle, ardından ikinci A'yı vb. karşılaştırın.

 
Aleksei Stepanenko :

Bir döngü içinde bir döngü yapın. Önce ilk A'yı on B'nin her biriyle, ardından ikinci A'yı vb. karşılaştırın.

Cevap için teşekkürler.

9 kere? bu döngüde 9 A ve 9 V.

100 A ve 100 B'lik bir döngüm var ve bu zaten her A ve B'den geçiyor .... 100 kez. Bu bir kabus..

Başka yolu yok mu?

 

Her şey eldeki göreve bağlıdır. Belki de hiçbir şey yapmanıza gerek yoktur. Örneğin, bir dizide önceden bazı değerler kaydedilmişse.

Örneğinizden neyin gerekli olduğu henüz net değil. Bu karşılaştırmalar ne için, ne elde etmek istiyorsunuz?

 
Aleksei Stepanenko :
Her şey eldeki göreve bağlıdır. Belki de hiçbir şey yapmanıza gerek yoktur. Örneğin, bir dizide önceden bazı değerler kaydedilmişse.

Bunu sadece dizilerle düşündüm, sorunum anlamaları için çok eski. Ama bir örnek gösterilseydi belki nasıl uygulanacağını anlayabilirdim. Bir 2B diziyi düşünüyordum ama onu uygulamaya hiç fırsatım olmadı. Veriler, döngüdekiyle aynı tek boyutlu dizide görüntülenir....

Belki birinin buna rastladığını ve paylaşabileceği bir çözümü olduğunu düşündüm.

 
Aleksei Stepanenko :

Örneğinizden neyin gerekli olduğu henüz net değil. Bu karşılaştırmalar ne için, ne elde etmek istiyorsunuz?

Karşılaştırma verilerini arr nesnesinin işlevine sürüyorum, yalnızca yukarıda açıkladığım gibi i ile eşleşen karşılaştırmaları görüyor.
 

Bir şey önermek için sorunu tanımlamanız gerekir. Gördüğünüz gibi çözümler değil, sonunda elde etmeniz gereken şey. Sonra uygulamayı düşünebilirsiniz.

 
Aleksei Stepanenko :

Bir şey önermek için sorunu tanımlamanız gerekir. Gördüğünüz gibi çözümler değil, sonunda elde etmeniz gereken şey. Sonra uygulamayı düşünebilirsiniz.

Teşekkürler Aleksei, ilk tavsiyeni kullanacağım, zaten uyguladım. Sadece kodu azaltmak istedim, parti kızı çok büyük çıktı. Basit bir çözüm olduğunu düşündüm, kişisel olarak zaten başka bir yol olmadığını açıkladım.

 
Aleksei Stepanenko :

Bir şey önermek için sorunu tanımlamanız gerekir. Gördüğünüz gibi çözümler değil, sonunda elde etmeniz gereken şey. Sonra uygulamayı düşünebilirsiniz.

Düşünüyordum, ama çift veriyi bir diziye sürerek bunu böyle mi yapabilirsiniz? Bildiğim kadarıyla, oraya sadece int sürülebilir mi?

Bence bu konuda bir şeyler yapılabilir.......

А[ 100 ]={ 0 , 1 , 2 ,...... 99 };
 

Programlamada nadiren tek bir çözüm olasılığı vardır. Her zaman seçenekler vardır. Anlam hakkında hiçbir şey söylemiyorsun, bu yüzden ne söyleyeceğimi bilmiyorum.

Bir dizi, çeşitli türlerdeki verileri içerebilir:

 int a[];
double b[];
string c[];
char d[];