MQL4'te programlama üzerine çevrimiçi kitabın beta sürümü - Sergey Kovalev (SK.) - sayfa 11

 

SK'ye

1. Ders kitabı beta versiyonu olarak yayınlandı, yani. eleştiri önerisi ile.
2. Pekala, teklife gerildim ve "tüm diziler tanım gereği statiktir" satırını buldum.))) yani. bunlar benim sorunlarım değil.
3. Ders kitabının bu eleştirilen satırını keyfi olarak izlerseniz, tüm dizilerin tanım gereği statik olduğu varsayılırsa, " ArrayMinimum işlevi için hatalı başlangıç konumu 0" izleyicisinde bir adres hatası alabilirsiniz.
(bu tek satır ders kitabının esasına gölge düşürmez, size genel saygı SK )
4. Yani. Statik bir dizi, öncelikle bellek tahsisi açısındandır. bellek yeniden tahsis edilirse, yeniden tahsis edilebilir,
veya her öğenin yeni bir başlatması olmayabilir.
MQL4'te ne görüyoruz? Her çağrı, her öğeyi tanımdan açık bir şekilde varsayılan olarak sıfıra sıfırlar.
Onlar. alt rutinlerdeki veriler, statik bir ön bildirim olmadan saklanmaz.
Bu, MQL4 alt programlarının değişken belleğin dinamik tahsisi ile yürütüldüğü anlamına gelir.
MQL4'te varsayılan olarak tüm değişkenlerin ve açık bir boyutu olmayan tüm dizilerin dinamik olduğu açıktır. Aksi takdirde, statik bir açıklama ile sabitlenmeleri gerekir.
5. Örneğin, dinamik bellek tahsisi, beyan double a[][]..[]; boş boyutlarla
ancak, adreslemeden programcının sorumlu olması gerektiği belirtilmelidir.
(Yukarıdaki örnekte, standart işlev eski referansa erişiyor ve dizinin sınırları içinde değil.)

 
Korey :

SK'ye


TAMAM.
 
Soru sıradaki.

Kitap Rusça yazılmıştır. Geliştiriciler, İngilizce'ye çevirinin tüm hızıyla devam ettiğini ve ardından Çince olarak görüneceğini söylüyor. Eminim sadece açıklamalar tercüme edilmiştir; kimse kaynak koduna dokunmayacak.

Pek çok programcı, doğası gereği, kendi dillerinden değişkenlere kolay adlar verir, örneğin, burada tanıştığım sitede massiv ( masiv ), Koef ve hatta MuH_IIIuPuHa_KaHaJIa . Bu yüzden, öğreticiyi çevirirken aşağıdaki kodla karşılaştım:




Bir Çin Mahallesi sakini, Tip değişkenine bakarken ne derdi? Ne olduğunu anlıyoruz, ama diğerleri?

(Burada bulunur: https://book.mql4.com/en/trading/orderclose )
 
Parabellum :
Soru sıradaki.

Kitap Rusça yazılmıştır. Geliştiriciler, İngilizce'ye çevirinin tüm hızıyla devam ettiğini ve ardından Çince olarak görüneceğini söylüyor. Sadece açıklamaların tercüme edildiğinden eminim; kimse kaynak koduna dokunmayacak.

Pek çok programcı, doğası gereği, dillerinden değişkenlere insan tarafından okunabilir isimler verir, örneğin, burada tanıştığım sitede massiv ( masiv ), Koef ve hatta MuH_IIIuPuHa_KaHaJIa . Bu yüzden, öğreticiyi çevirirken aşağıdaki kodla karşılaştım:




Bir Çin Mahallesi sakini, Tip değişkenine bakarken ne derdi? Ne olduğunu anlıyoruz, ama diğerleri?

(Burada bulunur: https://book.mql4.com/en/trading/orderclose )

Yorumun için teşekkür ederim!
Elbette örneklerdeki değişkenlerin isimlerine dokunmayacağız - örneğin Çince'de kaynak kodlarında hiyeroglif kullanılmaz, yine de Latin alfabesi ile uğraşmak zorunda kalacaklar. Bu değişkenin anlamını anlamak için Chinatown sakini sadece yoruma bakacaktır. Ayrıca İngilizce konuşulan ülkelerde yaşayanlar da Tip kelimesini "tip" olarak algılamayacaktır. Çünkü İngilizcede "type" type olacaktır. Ve İpucu bir "bahşiş" veya başka bir "ipucudur". Ancak bu, Rusça konuşan geliştiricilerin kodlarını anlamalarını engellemez. ))
 

Ama bence anadili İngilizce olan birinin yine de değişkenlerin adlarına bakması gerekiyor. Tırmığa basmamak için. Aniden Tip değişkeni - sesi, ortasında U harfi olan üç harfli Rusça kelimeyle çakışıyor ( .u. ) Ve eğer bir duş olacaksa Tanrıya şükür :-) . Ve değilse ? Bu kitap güzelleştirmeyecek.

Belki bu şekilde daha kolay ve daha doğru olur

int _OrdetType= OrderType ();

if ( _OrdetType > 1 ) ....

 

Okuyucunun yine de biraz düşüneceği varsayılmaktadır..

 

Burada https://book.mql4.com/ru/build/lots bölme işaretleri eksik

orada

Lots_New=MathFloor(Serbest*Yüzde100Bir_Lot/Adım)*Adım;// Calc

İhtiyaç

Lots_New=MathFloor(Serbest*Yüzde/100/Bir_Lot/Adım)*Adım;// Hesap


Kodu gördüğüm gibi biraz uygunsuz. Bir parça almak istiyorum ama hepsini değil. Onlar. Gördüklerimi panoya kopyalarım ve programımın metnine yapıştırırım. Ama ekleme yanlış. Tüm kodlar bir satırda gider. Kitaptaki satır sonu kodu ve MQL editörü büyük olasılıkla eşleşmiyor

 

işte başka bir küçük düzenleme.

https://book.mql4.com/ru/build/trading

Orada

switch() kontrolü, etiket durumu 10'a (blok 2-3) aktarılır.


İhtiyaç

…. (blok 2).

 
Prival :

Burada https://book.mql4.com/ru/build/lots bölme işaretleri eksik

orada

Lots_New=MathFloor(Serbest*Yüzde100Bir_Lot/Adım)*Adım;// Calc

İhtiyaç

Lots_New=MathFloor(Serbest*Yüzde/100/Bir_Lot/Adım)*Adım;// Hesap


Kodu gördüğüm gibi biraz uygunsuz. Bir parça almak istiyorum ama hepsini değil. Onlar. Gördüklerimi panoya kopyalarım ve programımın metnine yapıştırırım. Ama ekleme yanlış. Tüm kodlar bir satırda gider. Kitaptaki satır sonu kodu ve MQL editörü büyük olasılıkla eşleşmiyor


Evet, aynı biçimlendirme sorunları. Yarın düzelteceğiz.

Hatayı bulduğunuz için teşekkürler.

Tamamlanan tüm kodlar için bağlantılı dosyalar vardır. Dosyalardaki kodun doğru olduğuna inanılıyor. Bu arada, yazım hataları ve yanlışlıklar bulmak için bir şablon olarak da kullanılabilir.

 
Prival :

işte başka bir küçük düzenleme.

https://book.mql4.com/ru/build/trading

Orada

switch() kontrolü, etiket durumu 10'a (blok 2-3) aktarılır.


İhtiyaç

…. (blok 2).



Ve düzeltmeye gerek yok. Tüm bloklar için başlangıç ve bitiş yeri belirtilir. Bu durumda 2 başlangıç, 3 sondur.

Yine de teşekkürler :)