Autoapprendimento del linguaggio MQL5 da zero - pagina 39

 
MrBrooklin:

Sì, le parentesi di apertura e di chiusura convergono verticalmente dopo "Styling", ma la retroilluminazione o non capisce cos'è, o non riesco a vederla. Il livello di abilità di programmazione, al momento, è vicino allo zero.

Saluti, Vladimir.

l'evidenziazione è una parentesi accesa prima dopo il titolo della funzione, dovrebbe essere accesa in coppia con quella inferiore, cioè ogni parentesi dovrebbe avere una coppia, sono accese, se no, significa che manca una parentesi di chiusura

 
Fast235:

l'evidenziazione è la staffa illuminata prima dopo l'intestazione della funzione, dovrebbe essere accoppiata con la staffa inferiore, cioè ogni staffa dovrebbe avere una coppia, sono illuminate, se non lo sono, allora manca la staffa di chiusura

Grazie per il suggerimento. Risulta che non sono evidenziati sul mio schermo, ma risaltano nello spessore. Sì, tutte le staffe sono lì. Ora, ho appena spostato il blocco funzione dietro la staffa OnStart inferiore e gli errori sono scomparsi. Grazie per il vostro aiuto!

Saluti, Vladimir.

 
MrBrooklin:

Grazie per il suggerimento. Risulta che non sono evidenziati sul mio schermo, ma risaltano nello spessore. Sì, tutte le staffe sono lì. Ora, ho appena spostato il blocco funzione dietro la staffa OnStart inferiore e gli errori sono scomparsi. Grazie per il vostro aiuto!

Saluti, Vladimir.

Tutte le funzioni sono dichiarate nell'ambito globale, cioè fuori dallo spazio delle altre funzioni, che è limitato dalle loro parentesi.
 
Реter Konow:
Tutte le funzioni sono dichiarate nell'ambito globale, cioè fuori dallo spazio delle altre funzioni, che è delimitato dalle loro parentesi.

Caro Peter, dicci come sei riuscito a creare il tuo cosiddetto linguaggio di markup (), sarà utile per i nuovi arrivati, e ne ho bisogno per sviluppare il pensiero logico, che è molto importante qui

forse qualcosa ha mangiato molto, si è arrampicato su un albero
 
MrBrooklin:

Buona sera a tutti!

Cari esperti di programmazione, potreste dirmi cosa significa l'errore che il compilatore genera:"le dichiarazioni di funzione sono permesse solo nell'area globale, nello spazio dei nomi o nella classe", o per essere più specifici, cos'è uno spazio dei nomi e dove dovrebbe essere situato nello script?

La domanda è relativa alla scrittura del codice di funzione per "Enough_time" e "Enough_patience".

Saluti, Vladimir.

Area globale, l'area al di fuori delle funzioni. e non importa dove, puoi tra le funzioni, spero che tu capisca dove iniziano e finiscono, puoi fare tutto quello che puoi nell'area globale, dichiarare variabili globali, proprietà o qualsiasi altra cosa alla fine. Le variabili dichiarate nell'ambito globale sono visibili ovunque, letteralmente. L'ambito locale è l'area dall'inizio alla fine, chiudendo le parentesi graffe, della funzione. Le variabili dichiarate nell'area locale sono visibili solo in quest'area.

Si prega di notare che il codice viene letto dall'alto in basso e da sinistra a destra. Il compilatore non riorganizza le stringhe. Quindi, la regola è che una variabile è sempre dichiarata sopra o a sinistra del riferimento ad essa. E solo nel suo ambito. In diverse aree locali le variabili possono avere gli stessi nomi. E tra l'altro i loop e se sono funzioni con le proprie aree anche)

 
Valeriy Yastremskiy:

L'ambito globale, l'area al di fuori delle funzioni. e non fa differenza dove, puoi tra le funzioni, spero che tu capisca dove iniziano e finiscono, puoi fare tutto nell'ambito globale alla fine, dichiarare variabili globali, proprietà o altro. Le variabili dichiarate nell'ambito globale sono visibili ovunque, letteralmente. L'ambito locale è l'area dall'inizio alla fine, chiudendo le parentesi graffe, della funzione. Le variabili dichiarate nell'area locale sono visibili solo in quest'area.

Si prega di notare che il codice viene letto dall'alto in basso e da sinistra a destra. Il compilatore non riorganizza le stringhe. Quindi, la regola è che una variabile è sempre dichiarata sopra o a sinistra del riferimento ad essa. E solo nel suo ambito. In diverse aree locali le variabili possono avere gli stessi nomi. (E a proposito, i loop e gli if sono funzioni con i loro scopi)

dovremmo scrivere un libro. tutti insieme

 
Реter Konow:
Tutte le funzioni sono dichiarate nell'ambito globale, cioè fuori dallo spazio delle altre funzioni, che è limitato dalle loro parentesi.

Grazie, Peter! Sono già stato aiutato a capire questo problema.

Sto continuando il mio studio del linguaggio di programmazione MQL5 e oggi sto incollando il codice di uno script, che è la continuazione di uno dei compiti dei partecipanti a questo thread. Ho testato lo script in tutte le modalità. Tutto funziona come dovrebbe. Ho impostato i parametri di input al minimo per cominciare.

Saluti, Vladimir.

//+------------------------------------------------------------------+
//|                                                Learning_MQL5.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 ushort Период_обучения=500; //Полный период обучения в днях
input ushort Прошло_дней=10;      //Сколько дней прошло с начала обучения
input bool   Терпение=true;       //Терпение (true - достаточно; false - не достаточно)
//--- Зададим глобальные переменные
ushort Достаточность_времени;
bool Достаточность_терпения;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   if(Достаточно_времени()==0 && Достаточно_терпения()==true)
     {
      Print("Я выучу язык MQL5!");
     }
   else
     {
      Print("Я не выучу язык MQL5!");
     }
  }
//--- Создадим функцию Достаточно_времени
ushort Достаточно_времени()
  {
   Достаточность_времени=(Период_обучения-Прошло_дней);
   return(Достаточность_времени);
  }
//--- Создадим функцию Достаточно_терпения
bool Достаточно_терпения()
  {
   Достаточность_терпения=Терпение;
   return(Достаточность_терпения);
  }
//+------------------------------------------------------------------+
 
MrBrooklin:

Grazie, Peter! Sono già stato aiutato a capire questo problema.

Sto continuando il mio studio del linguaggio di programmazione MQL5 e oggi sto incollando il codice di uno script, che è la continuazione di uno dei compiti dei partecipanti a questo thread. Ho testato lo script in tutte le modalità. Tutto funziona come dovrebbe. Ho impostato i parametri di input al minimo per cominciare.

Sinceramente, Vladimir.

Strutturalmente, le funzioni sono scritte correttamente, ma la logica è zoppa. Guardate attentamente tutto il codice.

Il risultato della funzione Sufficient_time() dovrebbe essere maggiore di zero, che era una condizione logica.
 
MrBrooklin:

Grazie, Peter! Sono già stato aiutato a capire questo problema.

Sto continuando il mio studio del linguaggio di programmazione MQL5 e oggi sto incollando il codice di uno script, che è la continuazione di uno dei compiti dei partecipanti a questo thread. Ho testato lo script in tutte le modalità. Tutto funziona come dovrebbe. Ho impostato i parametri di input al minimo per cominciare.

Saluti, Vladimir.

Descrivi (scrivi) cosa fa il tuo script. Ed è sempre meglio farlo all'inizio. L'obiettivo, perché. Quali compiti possono raggiungere l'obiettivo. Come i compiti possono essere risolti, gli algoritmi per risolverli e poi il codice. E a proposito, la divisione dei compiti è la decomposizione)

 
Fast235:

Dovremmo scrivere un libro. Insieme dovremmo tutti

Questa domanda è attesa da tempo. Sergey Kovalev ha scritto un manuale per il linguaggio di programmazione MQL4. Ora un altro esperto deve essere ispirato a fare questa nobile azione per MQL5.

Cordiali saluti, Vladimir.