MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 1412

 
str+="--LoY["+IntegerToString(r)+"]--, "+DoubleToString(LoY[r],4)+", ";
 
ANDREY :

ihtiyacım olanı aldım

LoY[r] = 1.6104---LoY[r] = 1.6105---LoY[r] = 1.6106---LoY [r] = 1.6107---LoY[r] = 1.6108---LoY[r] = 1.6109---LoY[r] = 1.6110---LoY[r] = 1.6111....

Ayrıca Print() 'e sorabilirsiniz, böylece [r] yerine indeks değerlerinin yerini alır.
Bu tür bir kod örneği yazarsanız ve kendinizi kelimelerle açıklamakla sınırlamazsanız çok minnettar olurum.
Yardım için teşekkürler.

Bu bana sadece nöbetler sırasında oluyor……… Bugün zaten bir atak geçirdim, bir sonraki yakında olmayacak…

 
Aleksei Stepanenko :

Yardımın için çok teşekkürler. Kodunuz daha kompakt ve bu yüzden onu hizmete alıyorum ve ayrıntılı olarak anlamak için dikkatlice incelemeye devam ediyorum.

 
Aleksei Stepanenko :

Kodunuzu dikkatlice inceledim. Her karakteri anladım. Sadece + kırmızı ile vurgulanan işaretleri anlamadım

str+="--LoY[" + IntegerToString (r) + "]--, " + DoubleToString(LoY[r],4) +" , ";
Bu artıların hangi işlevi yerine getirdiğini ve bunları nerede okuyacağımı söylerseniz minnettar olurum. Kovalev'in ders kitabında onlar hakkında bilgi bulamadım.
Bu artıları kaldırdığımda derleyici bazı hatalar verdi. Ne yazık ki, İngilizce ile arkadaş değilim ve bu nedenle aklından tam olarak ne geçtiğini bilmiyorum.

Bilgi desteği için tekrar teşekkürler.

 
ANDREY :

Kodunuzu dikkatlice inceledim. Her karakteri anladım. Sadece + kırmızı ile vurgulanan işaretleri anlamadım

str+="--LoY[" + IntegerToString (r) + "]--, " + DoubleToString(LoY[r],4) +" , ";
Bu artıların hangi işlevi yerine getirdiğini ve bunları nerede okuyacağımı söylerseniz minnettar olurum. Kovalev'in ders kitabında onlar hakkında bilgi bulamadım.
Bu artıları kaldırdığımda derleyici bazı hatalar verdi. Ne yazık ki, İngilizce ile arkadaş değilim ve bu nedenle aklından tam olarak ne geçtiğini bilmiyorum.

Bilgi desteği için tekrar teşekkürler.

Ve işte kelimelerle açıklama lütfen………

Sayılar eklerseniz, örneğin 2.3 + 3.6, aynı sayı, 5.9 olacaktır ve dizeler eklerseniz DoubleToString(2.3, 1)+ DoubleToString(3.6, 1) bir dize olarak 2.33.6 olacaktır.

 

Aleksey doğru dedi, bu sadece string ekleme .

Bu ilginizi çekebilir:

a+= 4 ; -это тоже самое, что и a=a+ 4 ;
по аналогии:
a-= 4 ;
a*= 4 ;
a/= 4 ;

a++; - означает a=a+ 1 ;
a--;

 
Alexey Viktorov :

Ve işte kelimelerle açıklama lütfen………

Sayılar eklerseniz, örneğin 2.3 + 3.6, aynı sayı, 5.9 olacaktır ve dizeler eklerseniz DoubleToString(2.3, 1)+ DoubleToString(3.6, 1) bir dize olarak 2.33.6 olacaktır.

Bahşiş için teşekkürler

 
Aleksei Stepanenko :

Aleksey doğru dedi, bu sadece string ekleme .

Bu ilginizi çekebilir:

Bahşiş için teşekkürler.

 
Alexey Viktorov :

Ve işte kelimelerle açıklama lütfen………

Sayılar eklerseniz, örneğin 2.3 + 3.6, aynı sayı, 5.9 olacaktır ve dizeler eklerseniz DoubleToString(2.3, 1)+ DoubleToString(3.6, 1) bir dize olarak 2.33.6 olacaktır.

Yani, her yinelemede, LoY[" IntegerToString (r)"] dizesinin değeri 1 artırılır ve DoubleToString(LoY[r],4) dizesinin değeri 1 artırılır.

Ama 1'lik artış LoY["IntegerToString(r)"] ++; Ancak 1'lik bir artış özel bir LoY[" + IntegerToString(r) + "] ile yapılır, yani değişken artılar arasına yerleştirilir.

O zaman bir string değişkenindeki artışı 1 değil, 2 ile nasıl ayarlamanız gerekiyor? Her zamanki sürümde, bu artış VARIABLE +=2 olarak yapılır. Ve kodumda 2'lik bir artışı nasıl biçimlendirmem gerekiyor?

Ve gelecekte, dizimin öğelerinin değerleri, şimdi olduğu gibi katı bir sırayla değil, genellikle rastgele gidecek. Mesela şöyle olurdu...

LoY[0 ]= 1.6104, LoY[1 ]= 1.6114 ,   LoY[2 ]= 1.6100 ,   LoY[3 ]= 1.6120, LoY[4 ]= 1.6115, LoY[5 ]= 1.6115, LoY[6 ]= 1.6098,   LoY[7 ]= 1.6085, LoY[8 ]= 1.6125,..... vb. Yani, bu değerler, mutlaka bir döngü ile değil, kodun başka bir yerinde dizinin öğelerine atanacaktır.
Dize değişkenlerinin bağlantısını kullanarak, böyle bir diziyi Print () işlevinde doğru bir şekilde görüntülemek mümkün olmayacaktır ..... bana öyle geliyor.


Yardım için teşekkürler.

 
ANDREY :

Yani, her yinelemede, LoY[" IntegerToString (r)"] dizesinin değeri 1 artırılır ve DoubleToString(LoY[r],4) dizesinin değeri 1 artırılır.

Ama 1'lik artış LoY["IntegerToString(r)"] ++; Ancak 1'lik bir artış özel bir LoY[" + IntegerToString(r) + "] ile yapılır, yani değişken artılar arasına yerleştirilir.

O zaman bir string değişkenindeki artışı 1 değil, 2 ile nasıl ayarlamanız gerekiyor? Her zamanki sürümde, bu artış VARIABLE +=2 olarak yapılır. Ve kodumda 2'lik bir artışı nasıl biçimlendirmem gerekiyor?

Ve gelecekte, dizimin öğelerinin değerleri, şimdi olduğu gibi katı bir sırayla değil, genellikle rastgele gidecek. Mesela şöyle olurdu...

LoY[0 ]= 1.6104, LoY[1 ]= 1.6114 ,   LoY[2 ]= 1.6100 ,   LoY[3 ]= 1.6120, LoY[4 ]= 1.6115, LoY[5 ]= 1.6115, LoY[6 ]= 1.6098,   LoY[7 ]= 1.6085, LoY[8 ]= 1.6125,..... vb. Yani, bu değerler, mutlaka bir döngü ile değil, kodun başka bir yerinde dizinin öğelerine atanacaktır.
Dize değişkenlerinin bağlantısını kullanarak, böyle bir diziyi Print () işlevinde doğru bir şekilde görüntülemek mümkün olmayacaktır ..... bana öyle geliyor.


Yardım için teşekkürler.

IntegerToString() ve DoubleToString() işlevleri, sayıyı yalnızca işleve iletilen bir dize olarak temsil eder. İşte örnekte

r sayısı bir dizgeye çevrildiğinde ve dizgiler "toplandığında" olan tam olarak budur. Ama ondan önce, r'nin değeri değişir.

Soruyu tam anlayamadım ama diziden sadece çift eleman seçmen gerekiyorsa döngü şu şekilde oluşturulmalı

 for ( int i = 0 ; i <= 30 ; i+= 2 )


Neden: