Autoapprendimento del linguaggio MQL5 da zero - pagina 34

 
Реter Konow:
Guarda: tu imposti entrambe le variabili a true in anticipo (prima della condizione). Cioè, saranno SEMPRE vere ad ogni lancio dello script. Perché, allora, abbiamo bisogno di una condizione? È possibile che in questo programma le variabili inizializzate esplicitamente con true non siano vere? - No, perché avete scritto questo valore in essi e non può essere cambiato da nessuna parte nel codice.

In questo caso, la condizione non è necessaria, né sono necessarie le variabili stesse, perché SEMPRE il risultato dello script sarà la stringa "Imparerò la lingua".

Tuttavia, avere valori variabili calcolati in funzioni aggiuntive può portare a diverse combinazioni di risultati - uno restituirà vero, l'altro falso, o entrambi restituiranno falso, o entrambi restituiranno vero... In questo caso, la condizione scritta è giustificata da possibili variazioni nei valori delle variabili che portano alla stampa di stringhe diverse.

Grazie, Peter, per il chiarimento!

Saluti, Vladimir.

 
Valeriy Yastremskiy:

Non c'è logica, perché queste sono variabili definite nello script. Dovrebbero essere variabili che l'utente imposta tramite un'intuizione o derivate da funzioni, il che è ancora più logico.

Cioè l'utilità dello script dovrebbe essere sempre presente. Solo uno script che visualizza il testo è inutile. E con l'inserimento dei dati questo script vi dirà se potete imparare la lingua) E con le funzioni, semplicemente non esistono, non sono scritte, e se si scrive, per esempio, un calcolo dal livello di conoscenza della matematica, conoscenza di altre lingue, quanto tempo libero, livello di desiderio e capacità di memorizzare e la funzione restituirà Vero o Falso in base al calcolo, l'utilità sarà più))))

Valery, grazie mille per la risposta dettagliata!

Sinceramente, Vladimir.

 

Ecco una versione riveduta dello script, compresi i suggerimenti per coloro che sono nuovi allo script e che possono o non possono leggere questo thread:

//+------------------------------------------------------------------+
//|                                                            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!");
     }
  }
//+------------------------------------------------------------------+

Aggiunto allo script:

  1. "visualizzare la finestra delle proprietà prima di eseguire lo script";
  2. Capacità di cambiare le variabili esterne.

Saluti, Vladimir.

 
Реter Konow:
Sì, questa variante è corretta in termini di sintassi, ma manca ancora di logica. Ieri Vasily ha scritto molto sulle funzioni. Qui è dove sono necessari:

bool Sufficient_time = Sufficient_time();

bool Sufficient_patience = Sufficient_patience();

if(Sufficient_time && Sufficient_patience)Print("Imparerò la lingua!");

else Print ("Non lo farò");

Bisogna calcolare il tempo e la pazienza prima di metterli in una condizione invece di impostarli di default, perché non ha senso avere la condizione - è sempre vera.

+1. Questo è corretto.

 
Реter Konow:
"... Si dovrebbe calcolare il tempo e la pazienza prima di metterli in una condizione piuttosto che impostarli di default, perché il significato di avere una condizione scompare - è sempre vero".

Lo farò sicuramente, ma più tardi, dato che la mia "pentola" sta già bollendo, quindi ho bisogno di raffreddarla un po'.

Sinceramente, Vladimir.

 
MrBrooklin:

Ecco una versione corretta dello script, tenendo conto dei suggerimenti:

Aggiunto allo script:

  1. "visualizzare la finestra delle proprietà prima di eseguire lo script";
  2. Capacità di cambiare le variabili esterne.

Saluti, Vladimir.

Giusto! E poi provate a scrivere funzioni che calcolano i valori di queste variabili in funzione dei valori di altre variabili esterne.

Cioè, la funzione Enough_time() prenderà valori di variabili esterne:

Input datetime Days_training = 100;
Input uchar Hour_in_day = 5;
... e così via...

In altre parole, le funzioni prenderanno i valori delle vostre variabili di input e faranno dei calcoli, e il risultato sarà restituito nelle variabili Sufficient_time e Sufficient_patience, che, poi, potrete mettere in una condizione con più opzioni, ognuna delle quali stamperà una stringa diversa.

 
Реter Konow:
Hai ragione! E poi provate a scrivere funzioni che calcolano i valori di queste variabili in funzione dei valori di altre variabili esterne.

Cioè, Sufficient_time() prenderà i valori delle variabili esterne:

input datetime Days_training_day = 100;
Input uchar Hour_in_day = 5;
... e così via...

Poi, le funzioni prenderanno i valori delle variabili di input e faranno dei calcoli, e il risultato tornerà nelle variabili Enough_time e Enough_patience, che potete poi mettere in una condizione con più opzioni, ognuna delle quali stamperà una stringa diversa.

Peter, metti il tuo suggerimento nel mio piano di auto-apprendimento. Il risultato sarà pubblicato in seguito sotto forma di codice script.

Saluti, Vladimir.

 
MrBrooklin:

Lo farò sicuramente, ma più tardi, dato che la mia "pentola" sta già bollendo, quindi ho bisogno di raffreddarla un po'.

Sinceramente, Vladimir.

Certo, prenditi una pausa).
 
Реter Konow:
Giusto! E poi provate a scrivere funzioni che calcolano i valori di queste variabili in funzione dei valori di altre variabili esterne.

Cioè, Sufficient_time() prenderà i valori delle variabili esterne:

input datetime Days_training_day = 100;
Input uchar Hour_in_day = 5;
... e così via...

È più o meno chiaro con il tempo, ma le variabili di "Enough Patience" sono ancora un problema. Cosa dovrei metterci dentro? Avere pazienza o non averne? Almeno questi due parametri? Ho bisogno di pensarci.

Saluti, Vladimir.

 
MrBrooklin:

Il tempo è più o meno chiaro, ma le variabili per "Abbastanza pazienza" sono un problema. Cosa metterci dentro? C'è pazienza o non c'è pazienza? Almeno questi due parametri? Ho bisogno di pensarci.

Saluti, Vladimir.

1. Mood (enumerazione di tipi per unità condizionali inizializzate).

2. Autopercezione (la stessa cosa).

3. Quoziente di motivazione.

4. Il coefficiente di credenza nel forex

...

Trovate un paio di formule di calcolo e il gioco è fatto).