Die Sprache MQL5 von Grund auf selbst erlernen - Seite 33

 
Vladimir Simakov:

Und dann sind da noch die Muster...

Ja, es gibt auch einen ternären Operator )

Ungefähr auf diesem Weg (verstehen und wissen, wie man es schreibt) beginnt der eigentliche Weg des Entwicklers. IMHO

Sind Semikolons nach geschweiften Klammern in Aufzählungs- und Schablonenfunktionen notwendig oder dient dies nur der Lesbarkeit?

 
Реter Konow:
Das ist mein Punkt. Aufzählungen und unnötige Syntax sind jetzt überflüssig.
Wozu dient dann die Terminal-API? Es gibt dort ein bisschen mehr Aufzählungen als bei f... ... und Anfrage-/Ergebnis-Strukturen und dergleichen sind reichlich vorhanden)
 
Реter Konow:
"... aber du hast sie noch nicht richtig beantwortet..."

Valeriy hat bereits früher in seinem Skriptcode geantwortet:

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

Hochachtungsvoll, Vladimir.

 
MrBrooklin:

Valeriy hat bereits früher in seinem Skriptcode geantwortet:

Hochachtungsvoll, Vladimir.

Ja, diese Variante ist syntaktisch korrekt, aber es fehlt ihr an Logik. Gestern hat Vasily viel über Funktionen geschrieben. Genau hier werden sie gebraucht:

bool Ausreichende_Zeit = Ausreichende_Zeit();

bool Ausreichende_Zeit = Ausreichende_Zeit();

if(Ausreichend_Zeit && Ausreichend_Geduld)Print("Ich werde die Sprache lernen!");

else Print ("Ich werde nicht.");

Man muss Zeit und Geduld berechnen, bevor man sie in eine Bedingung einfügt, und sie nicht als Standardwerte festlegen, da der Sinn einer Bedingung verschwindet - sie ist immer wahr.
 
Valeriy Yastremskiy:

Sind das Semikolon und das Komma nach der geschweiften Klammer in der Aufzählungs- und Vorlagenfunktion obligatorisch oder dienen sie der Lesbarkeit?

Ein Tippfehler. Ursprünglich wollte ich ein Vorlagenobjekt mit Makrobindung, entschied mich dann aber, es nicht schlechter zu machen).

Und für Aufzählungen, ja, das ist notwendig.

 
Реter Konow:
...Hier werden sie gebraucht:

bool Ausreichende_Zeit = Ausreichende_Zeit();

bool Ausreichende_Geduld = Ausreichende_Geduld();

if(Ausreichend_Zeit && Ausreichend_Geduld)Print("Ich werde die Sprache lernen!");

else Print ("Ich werde nicht.");

Peter, eine Gegenfrage an Sie: Warum haben Sie im Typ bool, der für die Speicherung der boolschen Werte true oder false vorgesehen ist , sufficiency_time() und sufficiency_patience() angegeben?

Mit freundlichen Grüßen, Vladimir.
 
MrBrooklin:

Peter, eine Gegenfrage an Sie: Warum haben Sie sufficiency_time() und sufficiency_patience() im Typ bool angegeben, der für die Speicherung der logischen Werte true oder false vorgesehen ist?

Mit freundlichen Grüßen, Vladimir.
Denn dies sind die Funktionen, die geschrieben werden müssen, um den tatsächlichen Wert der Variablen "Genug_Zeit" und "Genug_Geduld" zu berechnen.

Diese Funktionen müssen Parameterberechnungen enthalten, die zu einer logischen Ja/Nein-Antwort führen, die sie in Variablen zurückgeben. Diese Funktionen müssen das Ergebnis als logischen true/false-Wert zurückgeben.
 
Реter Konow:
"...Ja, diese Variante ist syntaktisch korrekt, aber es fehlt ihr an Logik..."

Jetzt bin ich völlig verwirrt: Warum gibt es keine Logik, obwohl der Typ bool verwendet wird, der zum Speichern logischer Werte benötigt wird? Bitte klären Sie dann, was keine Logik ist?

Mit freundlichen Grüßen, Vladimir.

 
MrBrooklin:

Jetzt bin ich völlig verwirrt: Warum gibt es keine Logik, obwohl der Typ bool verwendet wird, der zum Speichern logischer Werte benötigt wird? Bitte klären Sie, was daran unlogisch ist?

Hochachtungsvoll, Vladimir.

Sehen Sie: Sie setzen beide Variablen vorher auf true (vor der Bedingung). Sie werden also bei jedem Start des Skripts IMMER wahr sein. Warum brauchen wir dann eine Bedingung? Ist es in diesem Programm möglich, dass Variablen, die explizit mit true initialisiert werden, nicht wahr sein dürfen? - Nein, denn Sie haben diesen Wert in sie hineingeschrieben und er kann nirgendwo im Code geändert werden.

In diesem Fall wird die Bedingung nicht benötigt, ebenso wenig wie die Variablen selbst, da das Ergebnis des Skripts IMMER die Zeichenfolge "Ich werde die Sprache lernen" sein wird.

Die Berechnung von Variablenwerten in zusätzlichen Funktionen kann jedoch zu unterschiedlichen Kombinationen von Ergebnissen führen - die eine gibt true, die andere false, oder beide geben false, oder beide geben true... In diesem Fall ist die geschriebene Bedingung durch mögliche Variationen der Variablenwerte gerechtfertigt, die zum Drucken unterschiedlicher Zeichenfolgen führen.
 
MrBrooklin:

Jetzt bin ich völlig verwirrt: Warum gibt es keine Logik, obwohl der Typ bool verwendet wird, der zum Speichern logischer Werte benötigt wird? Bitte klären Sie, was daran unlogisch ist?

Mit freundlichen Grüßen, Vladimir.

Es gibt keine Logik, da es sich um im Skript festgelegte Variablen handelt. Sie sollten entweder Variablen sein, die vom Benutzer über eine Instanz gesetzt werden, oder von Funktionen abgeleitet werden, was noch logischer ist.

D.h. der Nutzen des Skripts sollte immer gegeben sein. Ein Skript, das nur Text anzeigt, ist nutzlos. Und mit Dateneingabe dieses Skript wird Ihnen sagen, ob Sie die Sprache lernen können) Und mit Funktionen, sie einfach nicht existieren, sie sind nicht geschrieben, und wenn Sie schreiben, zum Beispiel, Berechnung von Niveau der Kenntnisse der Mathematik, Kenntnisse über andere Sprachen, wie viel freie Zeit, das Niveau der Wunsch und die Fähigkeit, sich zu erinnern und Funktion wird True oder False auf der Grundlage der Berechnung dann Nützlichkeit wird mehr sein))))

Grund der Beschwerde: