Bu mql ile de mümkündür. Bir işlev her çağrıldığında değil, iki kez daha çağrılır - işlevin başında bir dönüş vardır.
Buna özyineleme denir.
https://ru.wikipedia.org/wiki/Recursion
https://habr.com/ru/post/275813/
Bu mql ile de mümkündür.Bir işlev her çağrıldığında değil, iki kez daha çağrılır - işlevin başında bir dönüş vardır.
Buna özyineleme denir.
https://ru.wikipedia.org/wiki/Recursion
https://habr.com/ru/post/275813/
teşekkürler, daha birçok soru olacak.. Tavsiyeniz üzerine kütüphanelerden birini mql'ye yeniden yazıyorum))
ayrıca, bilgilendirici ve çok uzun olmayan iyi bir kitap tavsiye edin.
Stroustrup Üniversitesi'nde okuyorum, ancak dilin temel yapıları hakkında bir ders kitabına ihtiyacınız olmadığını düşünüyorum, zaten programlama deneyiminiz var, artık sıfırdan okumanıza gerek yok
Hiç C# ile yazmadım ama Windows altında programlar yazdım. Elimi C#'da denemeye karar verdiğimde, çevrimiçi yardım bana çok yardımcı oldu, küçük soruları netleştirebildim, bu kaynakla ilgili kısa makaleler okudum ve C++ özyineleme kısaca açıklanıyor
https://metanit.com/cpp/tutorial/3.6.php
Genel C++ eğitimi https://metanit.com/cpp/tutorial/ , bu sitede olduğundan daha kısa bilgiler bulacağınızdan şüpheliyim ;)
- metanit.com
Stroustrup Üniversitesi'nde okuyorum, ancak dilin temel yapıları hakkında bir ders kitabına ihtiyacınız olmadığını düşünüyorum, zaten programlama deneyiminiz var, artık sıfırdan okumanıza gerek yok
Hiç C# ile yazmadım ama Windows altında programlar yazdım. Elimi C#'da denemeye karar verdiğimde, çevrimiçi yardım bana çok yardımcı oldu, küçük soruları netleştirebildim, bu kaynakla ilgili kısa makaleler okudum ve C++ özyineleme kısaca açıklanıyor
https://metanit.com/cpp/tutorial/3.6.php
Bu sitedekinden daha özlü bilgi bulacağınızdan şüpheliyim;)
evet, sadece dili girin, asıl zorluk, tüm kodun işaretçiler ve goto ile yazılmasıdır, bellek tahsisi ve ardından imha ile çok daha fazla gereksizdir.
bu nedenle mql ve SI'nin tamamen farklı diller olduğu söylenebilir. Diziler yerine işaretçileri f-th'e geçirmek gibi basit yapılar bile artık burada çalışmıyor, yeniden yazma saçmalık
evet, sadece dili girin, asıl zorluk, tüm kodun işaretçiler ve goto ile yazılmasıdır, bellek ayırma ve ardından imha ile çok daha fazla gereksizdir.
bu nedenle mql ve SI'nin tamamen farklı diller olduğu söylenebilir. Diziler yerine işaretçileri f-th'e geçirmek gibi basit yapılar bile artık burada çalışmıyor, yeniden yazma saçmalık
C++ ile ilgili ilginç olan şey işaretçilerle çalışmasıdır, dilin tüm esnekliğine sahiptir ve işaretçilerle çalışmaya dayanır - tabiri caizse, işlemci RAM'iyle çalışmanın tam bir taklididir, işlemci tanımlayıcıların adlarını bilmez (değişken adları), ancak yalnızca göreli ofset verilerini bilir (aslında, bellek adreslerine bağlantılar) ve referansa göre verilerin yazılması gerekir - işaretçi bunu yapar - veri türünü ve verilerin depolandığı yeri açıklar. hafıza
MQL gerçekten farklı bir dildir
işaretçiler https://metanit.com/cpp/tutorial/4.1.php
- metanit.com
C++ ile ilgili ilginç olan şey işaretçilerle çalışmasıdır, dilin tüm esnekliğine sahiptir ve işaretçilerle çalışmaya dayanır - tabiri caizse, işlemci RAM'iyle çalışmanın tam bir taklididir, işlemci tanımlayıcıların adlarını bilmez (değişken adları), ancak yalnızca göreli ofset verilerini bilir (aslında, bellek adreslerine bağlantılar) ve referansa göre verilerin yazılması gerekir - işaretçi bunu yapar - veri türünü ve verilerin depolandığı yeri açıklar. hafıza
MQL gerçekten farklı bir dildir
işaretçiler https://metanit.com/cpp/tutorial/4.1.php
Evet, teşekkürler, işaretçilere zaten aşinayım ve o kitapta
site uygun, bu arada, favorilere eklendi
İşte tembeller için c'den cpp'ye kadar iyi bir video ders kursu
İşte kütüphane başlığından bir örnek:
yapılar işaretçilerle oluşturuluyor ne olduğu belli değil (görünüşe göre bunlar henüz var olmayan diziler), sonra anladığım kadarıyla ..uh .. bu yapının değişkenini bildiriyorlar mine_score; aynı isimle?
typedef struct mine_score { int n; /* number of rows of M */ int *m; /* number of cols of M[i] for each i */ double **M; /* the (equi)characteristic matrix */ } mine_score;
bununla da ilgilenilmesi gerekecek.
ve ardından sonucunu doğrudan bu değişkenin bellek alanına yazacak bir işlev bildirildi mi?
mine_score *mine_compute_score(mine_problem *prob, mine_parameter *param);
İşte kütüphane başlığından bir örnek:
yapılar işaretçilerle oluşturuluyor ne olduğu belli değil (görünüşe göre bunlar henüz var olmayan diziler), sonra anladığım kadarıyla ..uh .. bu yapının değişkenini bildiriyorlar mine_score; aynı isimle?
bununla da ilgilenilmesi gerekecek.
ve ardından sonucunu doğrudan bu değişkenin bellek alanına yazacak bir işlev bildirildi mi?
Hayır, burada mine_score yapısı olan mine_score veri türü bildirilir.
Ve fonksiyon, bu fonksiyon içinde oluşturulacak olan bu yapıya bir işaretçi döndürür. Buna göre, işlevin amacı min_score türünde bir varlık oluşturmak ve bunun sahipliğini işlev çağrısının kapsamına aktarmaktır.
Maxim Dmitrievsky :
bununla da ilgilenilmesi gerekecek.
ve ardından sonucunu doğrudan bu değişkenin bellek alanına yazacak bir işlev bildirildi mi?
Typedef'leri uzun zaman önce unutmuştum, çünkü MQL bu hantal yapıları hatırlamaya yardımcı oluyor))), görünüşe göre bu , bir yapı olan mine_score türünün bir bildirimidir ve yapının açıklaması, tür bildirimine ( typedef) "takılıdır" ), ama yanılıyor olabilirim, işte benzer bir soru tartışıldı ve oldukça ayrıntılı bir açıklama:
http://stackoverflow.com/questions/13054/typedef-struct-vs-struct-definitions
ve ardından sonucunu doğrudan bu değişkenin bellek alanına yazacak bir işlev bildirildi mi?
C++'da, programcı bellek ayırmaktan sorumludur, bu nedenle bir işlevin sonucu bir işaretçi döndürürse mine_score * , sonra bu işaretçiyi kabul eden ve bellek ayırması gereken kişi, yani. bu bir değişken değil, verilere bir işaretçi
- 2009.11.04
- user69514
- qaru.site
Typedef'leri uzun zaman önce unutmuştum, çünkü MQL bu hantal yapıları hatırlamaya yardımcı oluyor))), görünüşe göre bu , bir yapı olan mine_score türünün bir bildirimidir ve yapının açıklaması, tür bildirimine ( typedef) "takılıdır" ), ama yanılıyor olabilirim, işte benzer bir soru tartışıldı ve oldukça ayrıntılı bir açıklama:
http://stackoverflow.com/questions/13054/typedef-struct-vs-struct-definitions
C++'da, programcı bellek ayırmaktan sorumludur, bu nedenle bir işlevin sonucu bir işaretçi döndürürse mine_score * , sonra bu işaretçiyi kabul eden ve bellek ayırması gereken kişi, yani. bu bir değişken değil, verilere bir işaretçi
#include "pch.h" #include <iostream> using namespace std; int * Foo( int i) { int * x = new int (i); return x; } int main() { int * x = Foo( 5 ); cout << *x; delete x; return 0 ; }
İşlevin içine bellek ayırdım ve bağlantıyı geçtiğim değişken kapsamında serbest bıraktım.

- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
bu sözdizimi nasıl çalışır? f-i kendi içinde? ayrıca 2 kez
ayrıca, bilgilendirici ve çok uzun olmayan iyi bir kitap tavsiye edin.
bende bir tane var
B. Kernighan, D. Ritchie
C programlama dili
3. baskı, gözden geçirilmiş