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

 
Renat Akhtyamov :
for ( int i= 1 ; int i< int n; int i++)                                                                  
...
Böyle??? Lütfen.

Hayır, demek istedim ki:

for ( int i = 0 ; i < x; i++ )
{
}
for ( int i = 0 ; i < x; i++ )
{
}
...

Evet ama yazdığın tasarım hiç başlamaz.

 
Artyom Trishkin :
Her değişkenin kendi kapsamı vardır. Kıvrımlı parantezlerin içinde bile - bu kapsamda bildirilen bir değişken için kendi kapsamı - kaşlı ayraçların içinde. Öyleyse, örneğin, kesişmediklerini biliyorsam ve "i" gibi bir değişkenin adını kullanmak yeterli ve alışılmışsa, neden programın farklı yerlerinde farklı isimlerle döngü indeksi değişkenleri üreteyim?

Ben seninle tartışmadım.

 
Renat Akhtyamov :
for ( int i= 1 ; int i< int n; int i++)                                                                  
...
Böyle??? Lütfen.
Kendiniz, aklı başında hiçbir programcının oluşturmayacağı kötü bir örnekle kasten ortaya çıktığını anlıyorsunuz.
 
Alexey Kozitsyn :

Hayır, demek istedim ki:

for ( int i = 0 ; i < x; i++ )
{
}
for ( int i = 0 ; i < x; i++ )
{
}
...


peki anlamı? Lütfen deneyiminizi paylaşın - bu durumda sorunlar ne olabilir, yani kodunuz böyle olsaydı?

int i;
for ( i = 0 ; i < x; i++ )
{
}
for ( i = 0 ; i < x; i++ )
{
}
...
 
Renat Akhtyamov :

Ben seninle tartışmadım.

Bu benim ipliğim. Ve optimal değil, kötü tavsiye verdiklerinde, kişiyi düzeltme hakkım var. Tartışılan durumla ilgili olarak yanlış tavsiye veriyorsunuz.
 
Artyom Trishkin :
Bu benim ipliğim. Ve optimal değil, kötü tavsiye verdiklerinde, kişiyi düzeltme hakkım var. Tartışılan durumla ilgili olarak yanlış tavsiye veriyorsunuz.

Şubeniz, ardından dikkatlice okuyun ve gönderiyi yanıtladığınız takma adla ilişkilendirin.

Kısacası - yanlış adres

 
Renat Akhtyamov :

peki anlamı? Lütfen deneyiminizi paylaşın - bu durumda sorunlar ne olabilir, yani kodunuz böyle olsaydı?

int i;
for ( i = 0 ; i < x; i++ )
{
}
for ( i = 0 ; i < x; i++ )
{
}
...

Bir sayacı döngü dışında başlattığınızda, kapsamı genellikle gereksiz olan bu döngünün ötesine geçer. Bu, olası hatalar için verimli bir zemin sağlar, örneğin, kodun sonraki bölümlerinde j değişkeniniz varsa ve yanlışlıkla i olarak adlandırırsanız. Veya dizinin [1] dizini yerine [i], vb. yazın.

Bu nedenle değişkenler, ilk kullanıldıkları yere mümkün olduğunca yakın bir yerde başlatılmalı ve çok fazla global değişkenden kaçınmaya çalışılmalıdır. Bu, olası hataların listesini azaltır.

 
Alexey Kozitsyn :

Bir sayacı döngü dışında başlattığınızda, kapsamı genellikle gereksiz olan bu döngünün ötesine geçer. Bu, olası hatalar için verimli bir zemin sağlar, örneğin, kodun sonraki bölümlerinde j değişkeniniz varsa ve yanlışlıkla i olarak adlandırırsanız. Veya dizinin [1] dizini yerine [i], vb. yazın.

Bu nedenle değişkenler, ilk kullanıldıkları yere mümkün olduğunca yakın bir yerde başlatılmalı ve çok fazla global değişkenden kaçınmaya çalışılmalıdır. Bu, olası hataların listesini azaltır.

for(....) o zaman bununla ne ilgisi var?

Ben yokum.

i=0 ve i++ yazıyorsa???

Peki, beni başka bir döngüde değiştir i?

Çalışmayacak

 
Renat Akhtyamov :

o zaman bununla ne ilgisi var?

Ben yokum.

Her yerde ve her şeyde olabilirsiniz, bu sizin hakkınız. Bir açıklama istedin - açıkladım.
 
Alexey Kozitsyn :
Her yerde ve her şeyde olabilirsiniz, bu sizin hakkınız. Bir açıklama istedin - açıkladım.

Burada dikkate alınması gereken tek şey, döngü bloğundan sonra i'nin zaten x'e eşit olduğudur, i<x döngüsünde olması şartıyla.

iken Array[i] for(...){}'dan sonra bir dizi sınır dışı hatası döndürür ve bu kadar