Die Sprache MQL5 von Grund auf selbst erlernen - Seite 42

 
MrBrooklin:

Ich setze das Studium der Programmiersprache MQL5 fort und poste hier den Code eines Skripts, das eine Fortsetzung einer Aufgabe der Teilnehmer dieses Threads ist. Das Skript wurde in allen Modi getestet. Keine Probleme festgestellt. Ich habe die Mindestanzahl von Eingabeparametern für den Anfang festgelegt. Der Skriptcode ist auf Englisch geschrieben, die Kommentare zum Code sind auf Russisch, um das Lernen zu erleichtern. Wie ich vorhin versprochen habe, habe ich versucht, das Skript so zu beschreiben, dass es auch für einen Schüler der ersten Klasse der Programmierschule verständlich ist.

Mit freundlichen Grüßen, Vladimir.

ok

jetzt den Code der algorithmischen Logik lesbarer machen

es stellt sich heraus, in nur zwei Zeilen:

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

Sie müssen sich nicht einmal dazu äußern.

 
Renat Akhtyamov:

ok

den Code der algorithmischen Logik besser lesbar machen

es sind nur zwei Zeilen:

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

Sie müssen sich nicht einmal dazu äußern.

Hallo, Renat! Ich stimme zu, vielleicht sollte ich nicht zu viele Kommentare schreiben, aber sie werden allen Neulingen ohne Programmierkenntnisse helfen. Wenn jemand diese Arbeit vor mir gemacht hätte, wäre der Lernprozess viel schneller verlaufen. Kommentare werden mir helfen, mir meinen eigenen Code schneller einzuprägen. Vielleicht werden die Kommentare in Zukunft kürzer ausfallen.

Mit freundlichen Grüßen, Vladimir.

 
Roman Shiredchenko:


Ihr Code und Ihre Logik sind korrekt. Auf mein IMHO habe ich gestern geschaut, ich war zuerst selbst überrascht über die Null, aber dann habe ich den Differenzchip eingeholt... :-)

Hallo Roman! Ja, das ist die Folge der technischen Ausbildung und meine Denklogik ist etwas anders, aber Peter hatte mit Null recht, also habe ich den Skriptcode geändert.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Ich setze das Studium der Programmiersprache MQL5 fort und poste hier den Code eines Skripts, das eine Fortsetzung einer Aufgabe der Teilnehmer dieses Threads ist. Das Skript wurde in allen Modi getestet. Keine Probleme festgestellt. Ich habe die Mindestanzahl von Eingabeparametern für den Anfang festgelegt. Der Skriptcode ist auf Englisch geschrieben, die Kommentare zum Code sind auf Russisch, um das Lernen zu erleichtern. Wie ich vorhin versprochen habe, habe ich versucht, das Skript so zu beschreiben, dass es auch für einen Schüler der ersten Klasse der Programmierschule verständlich ist.

Mit freundlichen Grüßen, Vladimir.

Probleme mit der Logik bleiben bestehen:

1. Funktionen sollten etwas berechnen. In diesem Fall initialisieren beide Funktionen globale Variablen mit dem Wert ihrer Eingabevariablen und tun sonst nichts. Das heißt, wenn Sie inpu-Variablen in die Bedingung aufnehmen, wird sich nichts ändern.

2. have_time ist gleich Days_passed, was vom Benutzer festgelegt wird. Die Bedingung lautet: if(have_time() >= period_learning... was 500 ist, und dann heißt es && have_time() >0... das ist ein logischer Fehler. Wenn have_time() über 500 liegt, dann ist have_time() bereits über Null, so dass dieser Code unnötig ist.

3. Das Ergebnis der Frage, ob Sie lernen werden oder nicht, sollte nicht nur vom Haken abhängen. Sie müssen sich eine Variable mit einem undefinierten Wert ausdenken, die die Berechnung unabhängig von Ihrem Wunsch beeinflusst. Ansonsten steht es außer Frage: Was Sie eingegeben haben, ist das, was Sie bekommen haben.


P.S. Wenn der Eintrag have_time > 0 den Wert von peroid_lerning steuert, ist es korrekter, bei der Eingabe eines negativen Wertes oder Null die Bedingung && period_learning > 0 einzugeben.
 
Fast235:

Lernen Sie zunächst von Dmitry Fedoseyev, wie man mit String-Variablen arbeitet, Infostringements sind in der Phase des Studiums des Codes anderer Leute sehr nebulös,

Der Artikel, den er rezensiert hat, macht alles klar, und Sie werden einige der Details beiläufig erfahren, ich spreche als Leser der meisten Artikel hier, ich glaube, niemand hat mehr gelesen als ich)

Hallo, danke für den Tipp. Ich lese die Artikel von Dmitry Fedoseyev, aber bis jetzt fällt es mir schwer, aus seinen Artikeln zu lernen, da ich keine Grundausbildung habe. Hoffentlich wird es leichter. Übrigens hat mir das Schreiben des Skripts Learning_MQL5.mq5 geholfen zu verstehen, was eine Funktion ist, wofür sie gut ist und wie sie erstellt wird!

Mit freundlichen Grüßen, Vladimir.

 
Реter Konow:
Die Probleme mit der Logik bleiben bestehen:

1. Die Funktionen müssen etwas berechnen. In diesem Fall initialisieren beide Funktionen die globalen Variablen mit dem Wert der Pip-Variablen und tun sonst nichts. Das heißt, wenn Sie inpu-Variablen in die Bedingung aufnehmen, wird sich nichts ändern.

2. Have_time ist gleich Days_passed, was vom Benutzer festgelegt wird. Die Bedingung lautet: if(have_time() >= period_learning... was 500 ist, und dann heißt es && have_time() >0... das ist ein logischer Fehler. Wenn have_time() über 500 liegt, dann ist have_time() bereits über Null, so dass dieser Code unnötig ist.

3. Das Ergebnis der Frage, ob Sie lernen werden oder nicht, sollte nicht nur vom Haken abhängen. Sie müssen sich eine Variable mit einem undefinierten Wert ausdenken, die die Berechnung unabhängig von Ihrem Wunsch beeinflusst. Ansonsten gibt es keine Frage - was Sie eingegeben haben, ist das, was Sie bekommen haben.

Hallo Peter! Ich wusste, dass Sie Fragen haben würden, insbesondere zu Punkt 2.

Der Code hier ist nicht überflüssig, sondern sehr clever. Wenn Sie versuchen, && have_time()!=0(Sie haben es als && have_time()>0 geschrieben) aus dem Skriptcode zu entfernen, wird das Ergebnis "Ich werde MQL5 lernen!" bei den Eingabeparametern Period_learning=0 und Days_passed=0 sein, und das ist aus Sicht der Dogik nicht zulässig!

Ich stimme mit den anderen Punkten überein - es gibt eine Menge zu bedenken.

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Hallo Peter! Ich wusste, dass Sie Fragen haben würden, insbesondere zu Punkt 2.

Der Code hier ist nicht überflüssig, aber recht aufwendig. Wenn Sie versuchen, && have_time()!=0(Sie haben es als && have_time()>0 geschrieben) aus dem Skriptcode zu entfernen, wird das Ergebnis "Ich werde MQL5 lernen!" bei den Eingabeparametern Period_learning=0 und Days_passed=0 sein, und das ist aus Sicht der Dogik nicht zulässig!

Ich stimme mit den anderen Punkten überein - es gibt eine Menge zu bedenken.

Mit freundlichen Grüßen, Vladimir.

Ok, schauen Sie: have_time() gibt im Wesentlichen den Wert der Inpu-Variable Days_passed zurück. Wenn Days_passed auf Null gesetzt ist, wird der Eintrag if(...have_time()!=0... nicht in die Bedingung eingehen, aber wenn Period_learning auf Null gesetzt ist, werden wir in die Bedingung eingehen. Schreibt man also Period_learning >0, ist man gleichzeitig vor Null in der Variablen Days_passed und vor Null in der Variablen Period_learning geschützt, während man if(...) schreibt. have_time()!=0 ... nur gegen Null in Days_passed).
 
Реter Konow:
Die Funktion have_time() gibt im Wesentlichen den Wert der Eingabevariablen Days_passed zurück. Wenn Days_passed gleich Null ist, dann wird der Eintrag if(...have_time()!=0... uns nicht in die Bedingung eintreten lassen, aber wenn Period_learning gleich Null ist, werden wir in die Bedingung eintreten. Schreibt man also Period_learning >0, ist man gleichzeitig vor Null in der Variablen Days_passed und vor Null in der Variablen Period_learning geschützt, während man if(...) schreibt. have_time()!=0 ... nur von Null in Days_passed).

Ich verstehe.

Hochachtungsvoll, Vladimir.

 
MrBrooklin:

Ich verstehe.

Mit freundlichen Grüßen, Vladimir.

Im Wesentlichen haben Sie natürlich einen großen Schritt nach vorn gemacht - Sie haben die Funktionen beherrscht und angefangen, sie zu benutzen, und dazu kann man Ihnen nur gratulieren.)

Wenn Sie so weitermachen, werden Sie bald ins Hintertreffen geraten.

P.S. Entschuldigung, dass ich nicht hallo gesagt habe. Normalerweise grüßt man sich hier im Forum nicht, was natürlich nicht als Zeichen von Respektlosigkeit verstanden werden sollte. Ich erinnere mich, dass mich vor etwa fünf Jahren ein Moderator zurechtgewiesen hat, als ich Forumsmitglieder gegrüßt habe. )) Seitdem grüße ich hier nicht mehr, sondern nur noch unter vier Augen. Nochmals Entschuldigung.)))
 
Реter Konow:
Natürlich haben Sie in der Hauptsache einen ernsthaften Schritt nach vorn gemacht - Sie haben die Funktionen beherrscht und angefangen, sie zu benutzen, wozu Sie natürlich zu beglückwünschen sind!

Wenn Sie so weitermachen, werden Sie bald ins Hintertreffen geraten.

P.S. Entschuldigung, dass ich nicht hallo gesagt habe. Normalerweise grüßt man sich hier im Forum nicht, was natürlich nicht als Zeichen von Respektlosigkeit verstanden werden sollte. Ich erinnere mich, dass mich vor etwa fünf Jahren ein Moderator zurechtgewiesen hat, als ich Forumsmitglieder gegrüßt habe. )) Seitdem grüße ich hier nicht mehr, sondern nur noch unter vier Augen. Nochmals Entschuldigung)))

Danke, Peter, für die ermutigenden Worte!

Was höfliche Unterhaltungen angeht, insbesondere die Begrüßung und das Wünschen eines guten Tages und guter Laune. Meiner Meinung nach fehlt es im Forum sehr daran. Der respektvolle Umgang mit Gesprächspartnern ist etwas, das unserer Generation seit der Sowjetzeit beigebracht wurde. Wenn die Verwaltung der Website (des Forums) mich wegen der Begrüßung der Teilnehmer rügen würde, werde ich dies berücksichtigen und die Regeln befolgen.

Mit freundlichen Grüßen, Vladimir.