MQL5 dilini sıfırdan kendi kendine öğrenme - sayfa 33

 
Vladimir Simakov :

Ve başka şablonlar da var...

Evet, üçlü operatör de berbat durumda)

Yaklaşık olarak bu yoldan (anlama ve yazma yeteneği) geliştiricinin yolu zaten başlar. Benim nacizane fikrime göre

Numaralandırmadaki küme parantezinden sonraki noktalı virgül ve şablon işlevi gerekli mi yoksa okunabilirlik için mi?

 
Реter Konow :
Bu konuda ben de öyleyim. Artık numaralandırmalara ve ekstra sözdizimine gerek yok.
Ve neden o zaman terminal API'sinin buna ihtiyacı var? x'e kadar biraz daha fazla numaralandırma var ... var ve istek/sonuç yapıları ve bunlar gibi bolca var)
 
Реter Konow :
"...ama henüz doğru cevap vermedin..."

Valery, senaryo kodunda daha önce yanıtladı:

 //+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link        "https://www.mql5.com"
#property version    "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
bool достаточно_времени= true ;
bool достаточно_терпения= true ;
//---
   if (достаточно_времени && достаточно_терпения)
     {
       Print ( "я выучу язык MQL 5" );
     }
  }
//+------------------------------------------------------------------+

Saygılarımla, Vladimir.

 
MrBrooklin :

Valery, senaryo kodunda daha önce yanıtladı:

Saygılarımla, Vladimir.

Evet, bu seçenek sözdizimi açısından doğrudur, ancak içinde hala bir mantık yoktur. Dün Vasily fonksiyonlar hakkında çok şey yazdı. İhtiyaç duydukları yer burası:

bool Yeterli_zaman = Yeterli_zaman();

bool Enough_Patience = Enough_Patience();

if(Enough_Time && Enough_Patience) Print ("Dili öğreneceğim!");

else Print("Öğrenmeyeceğim.");

Onları bir koşula koymadan önce zamanı ve sabrı hesaplamanız ve onlara varsayılan değerler vermemeniz gerekir, çünkü. koşulun varlığının anlamı kaybolur - her zaman doğrudur.
 
Valeriy Yastremskiy :

Numaralandırmadaki küme parantezinden sonraki noktalı virgül ve şablon işlevi gerekli mi yoksa okunabilirlik için mi?

yazım hatası İlk başta orada makro bağlamalı bir şablon nesne istedim, ancak ağırlaştırmamaya karar verdim)

Ve transferler için evet, gerekli.

 
Реter Konow :
...İşte şunlara ihtiyaç var:

bool Yeterli_zaman = Yeterli_zaman();

bool Enough_Patience = Enough_Patience();

if(Enough_Time && Enough_Patience)Print("Dili öğreneceğim!");

else Print("Öğrenmeyeceğim.");

Peter, size bir karşı soru: neden mantıksal değerleri true (true) veya false (false) depolamak için tasarlanmış bool türünde Sufficiency_time() ve Sufficiency_patience()'i belirttiniz?

Saygılarımla, Vladimir.
 
MrBrooklin :

Peter, size bir karşı soru: neden mantıksal değerleri true (true) veya false (false) depolamak için tasarlanmış bool türünde Sufficiency_time() ve Sufficiency_patience()'i belirttiniz ?

Saygılarımla, Vladimir.
Çünkü bunlar "Yeter_zaman" ve "Yeter_sabır" değişkenlerinin gerçek değerini hesaplamak için yazmanız gereken fonksiyonlardır.

Bu işlevler, değişkenlere geri dönecekleri tek bir mantıksal evet/hayır yanıtına yol açan parametre hesaplamaları içermelidir. Bu işlevler, doğru/yanlış bir boole değeri döndürmelidir.
 
Реter Konow :
"...Evet, bu seçenek sözdizimi açısından doğru ama yine de mantık yok..."

Şimdi tamamen kafam karıştı: sonuçta, bool değerlerini depolamak için gerekli olan bool türü kullanılmasına rağmen neden mantık yok? Lütfen açıklığa kavuşturun, o zaman mantık ne değil?

Saygılarımla, Vladimir.

 
MrBrooklin :

Şimdi tamamen kafam karıştı: sonuçta, bool değerlerini depolamak için gerekli olan bool türü kullanılmasına rağmen neden mantık yok? Mantıksız olanı açıklar mısınız?

Saygılarımla, Vladimir.

İyi bakın: önceden (bir koşuldan önce) her iki değişken için de true değeri ayarladınız. Yani, her komut dosyası çalıştırmasında HER ZAMAN doğru olacaklardır. O halde koşul neden gerekli? Bu programda, açıkça true olarak başlatılan değişkenlerin doğru olmaması mümkün mü? - Değil! Çünkü onlar için bu değeri siz belirlemişsinizdir ve kodun hiçbir yerinde değişemez.

Bu durumda, koşul gerekli değildir, tıpkı değişkenlerin kendilerine ihtiyaç duyulmaması gibi, çünkü komut dosyasının sonucu HER ZAMAN "Dili öğreneceğim" dizesi olacaktır.

Bununla birlikte, ek fonksiyonlarda değişken değerlerinin hesaplanması, sonuçlarının farklı kombinasyonlarına yol açabilir - biri doğru, diğeri yanlış veya her ikisi de yanlış veya her ikisi de doğru döndürür... Bu durumda, yazılanlar durum, çeşitli satırların yazdırılmasına yol açan değişkenlerin değerlerindeki olası değişikliklerle doğrulanır.
 
MrBrooklin :

Şimdi tamamen kafam karıştı: sonuçta, bool değerlerini depolamak için gerekli olan bool türü kullanılmasına rağmen neden mantık yok? Mantıksız olanı açıklar mısınız?

Saygılarımla, Vladimir.

Mantık yok, çünkü bunlar komut dosyasında ayarlanan değişkenler. Ve bunlar, kullanıcının girdi aracılığıyla ayarladığı veya daha mantıklı olan işlevlerden elde edilen değişkenler olmalıdır.

Onlar. betiğin kullanışlılığı her zaman olmalıdır. Sadece metin çıkaran bir komut dosyası işe yaramaz. Ve veri girişi ile, bu komut dosyası size dili öğrenip öğrenemeyeceğinizi söyleyecektir) Ama fonksiyonlarla, basitçe mevcut değiller, yazılmamışlar, ancak örneğin, matematik bilgi seviyesinden bir hesaplama yazarsanız, diğer diller hakkında bilgi, ne kadar boş zaman, arzu ve yetenek seviyesi hatırlar ve fonksiyon hesaplamaya bağlı olarak True veya False döndürür, o zaman yardımcı program daha büyük olacaktır))))