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

 
Реter Konow :
İ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.

Açıklama için teşekkürler Peter!

Saygılarımla, Vladimir.

 
Valeriy Yastremskiy :

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 düzeyi hatırlanır ve fonksiyon hesaplamaya bağlı olarak True veya False değerini döndürür, o zaman yardımcı program daha büyük olacaktır))))

Valery, ayrıntılı cevabınız için çok teşekkür ederim!

Saygılarımla, Vladimir.

 

Bu konuyu okuyan veya okuyacak olan aynı yeni başlayanlar için ipuçlarını dikkate alarak, betiğin düzeltilmiş versiyonu:

 //+------------------------------------------------------------------+
//|                                                            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"
//---
#property script_show_inputs
//---
input bool достаточно_времени= true ;
input bool достаточно_терпения= true ;
//---
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   if (достаточно_времени && достаточно_терпения)
     {
       Print ( "Я выучу язык MQL5!" );
     }
   else
     {
       Print ( "Я не выучу язык MQL5!" );
     }
  }
//+------------------------------------------------------------------+

Komut dosyasına eklendi:

  1. "komut dosyasını çalıştırmadan önce özellikler penceresini görüntüle";
  2. dış değişkenleri değiştirme yeteneği.

Saygılarımla, Vladimir.

 
Реter Konow :
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.

+1. Pekala.

 
Реter Konow :
"... Onları bir koşula koymadan önce zamanı ve sabrı hesaplamanız ve onlara varsayılan değerler vermemeniz gerekir, çünkü bir koşula sahip olmanın bir anlamı yoktur - her zaman doğrudur."

Bunu kesinlikle yapacağım, ama daha sonra çünkü. Tencerem zaten kaynıyor, bu yüzden biraz soğutmam gerekiyor.

Saygılarımla, Vladimir.

 
MrBrooklin :

İşte ipuçlarını dikkate alarak betiğin düzeltilmiş versiyonu:

Komut dosyasına eklendi:

  1. "komut dosyasını çalıştırmadan önce özellikler penceresini görüntüle";
  2. dış değişkenleri değiştirme yeteneği.

Saygılarımla, Vladimir.

Doğru! Daha sonra diğer dış değişkenlerin değerlerine bağlı olarak bu değişkenlerin değerlerini hesaplayan fonksiyonlar yazmaya çalışın.

Yani Time_Enough() işlevi harici değişkenlerin değerlerini alacaktır:

giriş tarihsaat School_Days = 100;
Giriş uchar Hours_per_day = 5;
... vb...

Onlar. fonksiyonlar, girdi değişkenlerinin değerlerini alacak ve hesaplamalar yapacak ve sonucu Enough_time ve Enough_sabır değişkenlerine döndürecek ve bu değişkenler, daha sonra her biri kendi satırında yazdırılacak olan çeşitli geliştirme seçeneklerine sahip bir duruma getirilecektir.

 
Реter Konow :
Doğru! Daha sonra diğer dış değişkenlerin değerlerine bağlı olarak bu değişkenlerin değerlerini hesaplayan fonksiyonlar yazmaya çalışın.

Yani Time_Enough() işlevi harici değişkenlerin değerlerini alacaktır:

giriş tarihsaat School_Days = 100;
Giriş uchar Hours_per_day = 5;
... vb...

Ardından, işlevler giriş değişkenlerinin değerlerini alacak ve hesaplamalar yapacak ve sonucu Enough_time ve Enough_sabır değişkenlerine döndürecek, ardından her biri kendi başına yazdırılacak olan birkaç geliştirme seçeneğine sahip duruma getirilecektir. astar.

Peter, önerini kendi kendine çalışma planına ekledim. Sonucu daha sonra bir komut dosyası kodu olarak yayınlayacağım.

Saygılarımla, Vladimir.

 
MrBrooklin :

Bunu kesinlikle yapacağım, ama daha sonra çünkü. Tencerem zaten kaynıyor, bu yüzden biraz soğutmam gerekiyor.

Saygılarımla, Vladimir.

Tabii, biraz ara verin.)
 
Реter Konow :
Doğru! Daha sonra diğer dış değişkenlerin değerlerine bağlı olarak bu değişkenlerin değerlerini hesaplayan fonksiyonlar yazmaya çalışın.

Yani Time_Enough() işlevi harici değişkenlerin değerlerini alacaktır:

giriş tarihsaat School_Days = 100;
Giriş uchar Hours_per_day = 5;
... vb...

Zamanla, az ya da çok net, ancak değişkenlerle "Yeterince sabır" hala bir sorun. İçlerine ne koymalı? Sabır var mı, yok mu? En azından bu iki parametre? Düşünmeliyim.

Saygılarımla, Vladimir.

 
MrBrooklin :

Zamanla, aşağı yukarı netleşir, ancak "Yeterince sabır" için değişkenlerle ilgili bir sorun vardır. İçlerine ne koymalı? Sabır var mı, yok mu? En azından bu iki parametre? Düşünmeliyim.

Saygılarımla, Vladimir.

1. Ruh hali (başlatılan geleneksel ölçü birimlerine göre türlerin numaralandırılması).

2. Kendini hissetmek (aynı).

3. Motivasyon katsayısı.

4. Forex inanç katsayısı

...

Birkaç hesaplama formülü ile gelin ve işiniz bitti.)