Autoapprendimento del linguaggio MQL5 da zero - pagina 42

 
MrBrooklin:

Continuo a studiare il linguaggio di programmazione MQL5 e sto pubblicando il codice di uno script, che è la continuazione di un compito dei partecipanti a questo thread. Lo script è stato testato in tutte le modalità. Nessun problema rilevato. Ho impostato il numero minimo di parametri di input per iniziare. Il codice dello script è scritto in inglese, i commenti al codice sono in russo, per facilitare l'apprendimento. Come ho promesso prima, ho cercato di descrivere lo script in un modo accessibile a uno studente di prima classe della scuola di programmazione.

Saluti, Vladimir.

ok

ora rendere il codice della logica algoritmica più leggibile

risulta in sole due righe:

if(have_time()>=Period_learning && have_time()!=0 && have_patience()==true)Print("Я выучу язык MQL5!");
else Print("Я не выучу язык MQL5!");

Non c'è nemmeno bisogno di commentare.

 
Renat Akhtyamov:

ok

ora rendere il codice logico algoritmico più leggibile

sono solo due righe:

if(have_time()>=Period_learning && have_time()!=0 && have_patience()==true)Print("Я выучу язык MQL5!");
else Print("Я не выучу язык MQL5!");

Non c'è nemmeno bisogno di commentare.

Ciao, Renat! Sono d'accordo, forse non dovrei scrivere troppi commenti, ma aiuteranno tutti i neofiti senza conoscenze di programmazione. Se qualcuno avesse fatto questo lavoro prima di me, il processo di apprendimento sarebbe stato molto più veloce. I commenti mi aiuteranno a memorizzare il mio codice più velocemente. Forse i commenti saranno più brevi in futuro.

Saluti, Vladimir.

 
Roman Shiredchenko:


Il tuo codice e la tua logica sono corretti. Sul mio IMHO, ho guardato ieri, sono stato sorpreso dallo zero io stesso in un primo momento, ma poi ho raggiunto con il chip differenza... :-)

Ciao Roman! Sì, è la conseguenza della formazione tecnica e la mia logica di pensiero è un po' diversa, ma Peter aveva ragione sullo zero, così ho cambiato il codice dello script.

Saluti, Vladimir.

 
MrBrooklin:

Continuo a studiare il linguaggio di programmazione MQL5 e sto pubblicando il codice di uno script, che è la continuazione di un compito dei partecipanti a questo thread. Lo script è stato testato in tutte le modalità. Nessun problema rilevato. Ho impostato il numero minimo di parametri di input per iniziare. Il codice dello script è scritto in inglese, i commenti al codice sono in russo, per facilitare l'apprendimento. Come ho promesso prima, ho cercato di descrivere lo script in un modo accessibile a uno studente di prima classe della scuola di programmazione.

Saluti, Vladimir.

I problemi di logica rimangono:

1. Le funzioni dovrebbero calcolare qualcosa. In questo caso, entrambe le funzioni inizializzano le variabili globali con il valore delle loro variabili di input e non fanno altro. Cioè, se mettete variabili inpu nella condizione, non cambierà nulla.

2. have_time è uguale a Days_passed, che è impostato dall'utente. La condizione dice: if(have_time() >= period_learning... che è 500, e poi dice && have_time() >0... questo è un errore logico. Se have_time() è superiore a 500, allora have_time() è già superiore a zero, quindi questo codice non è necessario.

3. Il risultato di chiedere se si imparerà o meno non dovrebbe dipendere solo dal gancio. Dovete pensare a qualche variabile con un valore indefinito che influenzerà il calcolo indipendentemente dal vostro desiderio. Altrimenti, non c'è dubbio: quello che hai inserito è quello che hai ottenuto.


P.S. Se la voce have_time > 0 controlla così il valore di peroid_lerning, in caso di inserimento di un valore negativo o zero, è più corretto mettere in condizione && period_learning > 0.
 
Fast235:

Per prima cosa, imparate come lavorare con le variabili di stringa da Dmitry Fedoseyev, le infostrazioni sono molto nebbiose nella fase di studio del codice di altre persone,

L'articolo che ha recensito rende tutto chiaro, e imparerete alcuni dettagli di sfuggita, sto parlando come lettore della maggior parte degli articoli qui, penso che nessuno abbia letto più di me)

Ciao, grazie per il consiglio. Ho letto gli articoli di Dmitry Fedoseyev, ma finora ho difficoltà a imparare dai suoi articoli, perché non ho una formazione di base. Speriamo che diventi più facile. A proposito, scrivere lo script Learning_MQL5.mq5 mi ha aiutato seriamente a capire cos'è una funzione, a cosa serve e come si crea!

Cordiali saluti, Vladimir.

 
Реter Konow:
I problemi di logica rimangono:

1. Le funzioni devono calcolare qualcosa. In questo caso, entrambe le funzioni inizializzano le variabili globali con il valore delle variabili pip e non fanno altro. Cioè, se mettete variabili inpu nella condizione, non cambierà nulla.

2. Have_time è uguale a Days_passed, che è impostato dall'utente. La condizione dice: if(have_time() >= period_learning... che è 500, e poi dice && have_time() >0... questo è un errore logico. Se have_time() è superiore a 500, allora have_time() è già superiore a zero, quindi questo codice non è necessario.

3. Il risultato di chiedere se si imparerà o meno non dovrebbe dipendere solo dal gancio. Dovete pensare a qualche variabile con un valore indefinito che influenzerà il calcolo indipendentemente dai vostri desideri. Altrimenti, non c'è dubbio: quello che hai inserito è quello che hai ottenuto.

Ciao Peter! Sapevo che avresti avuto delle domande, soprattutto sul punto 2.

Il codice qui non è superfluo, ma molto intelligente. Se provate a rimuovere && have_time()!=0(l'avete scritto come && have_time()>0) dal codice dello script, il risultato sarà "Imparerò MQL5!" dati i parametri di input Period_learning=0 e Days_passed=0, e questo non è ammissibile dal punto di vista della dogmatica!

Sono d'accordo con gli altri punti - c'è molto a cui pensare.

Saluti, Vladimir.

 
MrBrooklin:

Ciao Peter! Sapevo che avresti avuto delle domande, soprattutto sul punto 2.

Il codice qui non è superfluo, ma piuttosto elaborato. Se provate a rimuovere && have_time()!=0(l'avete scritto come && have_time()>0) dal codice dello script, il risultato sarà "Imparerò MQL5!" dati i parametri di input Period_learning=0 e Days_passed=0, e questo non è ammissibile dal punto di vista della dogmatica!

Sono d'accordo con gli altri punti - c'è molto a cui pensare.

Saluti, Vladimir.

Ok, guardate: have_time() essenzialmente restituisce il valore della variabile inpu Days_passed. Se Days_passed è impostato a zero, la voce if(...have_time()!=0... non ci farà passare nella condizione, ma se Period_learning è impostato a zero, passeremo nella condizione. Così, scrivere Period_learning >0 ci proteggerà contemporaneamente da zero nella variabile Days_passed e da zero nella variabile Period_learning, mentre scrivere if(... have_time()!=0 ... solo da zero in Giorni_passati).
 
Реter Konow:
Ok, guardate: la funzione have_time() restituisce essenzialmente il valore della variabile di input Days_passed. Se Giorni_passati è zero, allora la voce if(...have_time()!=0... non ci farà passare nella condizione, ma se Periodo_apprendimento è zero, passeremo nella condizione. Così, scrivere Period_learning >0 ci proteggerà contemporaneamente da zero nella variabile Days_passed e da zero nella variabile Period_learning, mentre scrivere if(... have_time()!=0 ... solo da zero in Days_passed).

Capisco.

Con rispetto, Vladimir.

 
MrBrooklin:

Capisco.

Saluti, Vladimir.

In generale, naturalmente, avete fatto un grande passo avanti - avete padroneggiato e iniziato a usare le funzioni, e le congratulazioni sono d'obbligo).

Di questo passo, sarete presto in svantaggio.

P.S. Scusa se non ti ho salutato. La gente di solito non saluta qui sul forum, il che naturalmente non deve essere preso come un segno di mancanza di rispetto. Mi ricordo che circa cinque anni fa un moderatore mi ha rimproverato quando ho salutato i membri del forum. )) Da allora, non saluto più qui, solo in privato. Scusa ancora.)))
 
Реter Konow:
Certo, avete fatto un serio passo avanti nella cosa principale - avete padroneggiato e iniziato a usare le funzioni, per cui dovete congratularvi, naturalmente!

Di questo passo, sarete presto in svantaggio.

P.S. Scusa se non ti ho salutato. La gente di solito non saluta qui sul forum, il che naturalmente non deve essere preso come un segno di mancanza di rispetto. Ricordo che circa cinque anni fa un moderatore mi ha rimproverato quando ho salutato i membri del forum. )) Da allora, non saluto più qui, solo in privato. Scusa ancora)))

Grazie, Peter, per le parole di incoraggiamento!

Per quanto riguarda le conversazioni educate, soprattutto salutare e augurare a tutti il buon giorno e il buon umore. Secondo me è molto carente nel forum. Il trattamento rispettoso degli interlocutori è qualcosa che è stato insegnato alla nostra generazione fin dall'epoca sovietica. Se l'amministrazione del sito (forum) mi rimproverasse sull'accoglienza ai partecipanti, ne terrò conto e seguirò le regole.

Saluti, Vladimir.