[ARCHIV!] Alle Fragen von Anfängern, um das Forum nicht zu überladen. Fachleute, gehen Sie nicht vorbei. Ohne dich kann ich nirgendwo hingehen - 4. - Seite 206

 
So wie ich das sehe, war es der TRANSFERABLE PARAMETER))))), aber ich konnte nicht darauf verzichten))). Danke, ich habe es repariert und es funktioniert.
 
Aleksander:

Lieber... es ist nicht nötig, hier in so großen Buchstaben zu schreiben... Sie könnten sich die Augen brechen :-)

und dies... bevor Sie Fragen stellen... haben Sie versucht, die Hilfe in Metaeditor zu lesen? Alles?... für den Anfang... damit du keine dummen Fragen über Typen und so weiter stellst....

===

Art der Operation für die Funktion OrderSend(). Kann einer der folgenden Werte sein:

Konstante Wert Beschreibung
OP_BUY 0 Kaufen
OP_SELL 1 Verkaufen
OP_BUYLIMIT 2 BUY LIMIT schwebende Order
OP_SELLLIMIT 3 Ausstehender SELL LIMIT Auftrag
OP_BUYSTOP 4 Ausstehender BUY STOP-Auftrag
OP_SELLSTOP 5 Ausstehender SELL STOP-Auftrag
Sehr geehrter Herr... Es gibt keinen Grund, hier übermütig zu werden... Wenn Ihnen etwas albern vorkommt, brauchen Sie nicht zu antworten... So Gott will, gibt es Menschen ohne Größenwahn... Dies ist ein Bereich für Neulinge, und wenn Leute nach etwas fragen, bedeutet das, dass sie es nicht verstehen... Außerdem: Wenn in der Hilfe und im Buch alles klar wäre, wäre ich nicht hier.
Nun zur Sache: Nehmen wir an, wir haben 3 Aufträge und alle sind Marktaufträge. Dann werden wir bei 3 Iterationen in keiner von ihnen auf Block 4 treffen. Und nach der letzten Iteration gehen wir sofort zu Block 5 über, wobei wir Block 4 umgehen. Block 5 enthält die Variable Tip, die in Block 4 deklariert wurde. Block 4 wurde jedoch nicht ausgeführt. Die Variable Tip ist also nicht deklariert. Wir verwenden die Variable also, bevor wir sie deklarieren?

 
Warum? Der Compiler hat beim ersten Durchlauf Speicherplatz für die Variable zugewiesen... und der Zugriff darauf führt nicht zu einem Fehler...
 
Aleksander:
Warum? Der Compiler hat beim ersten Durchlauf Speicherplatz für die Variable zugewiesen... und der Zugriff darauf führt nicht zu einem Fehler...


Der folgende Punkt ist nicht klar: Beim ersten Durchlauf (unter der Annahme, dass alle 3 Aufträge Marktaufträge sind), gelangen wir nicht zu Block 4, da die Bedingung if(OrderType()<2) in Block 3 erfüllt ist. Dann schließt der nächste Iterator continue die aktuelle Iteration ab und überspringt Block 4, in dem die Variable Tip deklariert wird. Es bedeutet, dass die Tip-Variable während der ersten Iteration nicht deklariert wurde (d.h. die Zeile, die die Tip-Variable deklariert, wurde nicht ausgeführt)... Und so geht es für alle 3 Iterationen weiter. D.h. nach der 3. Iteration kommen wir zu Block 5, der die Tip-Variable verwendet, d.h. sie wurde vorher nicht deklariert (d.h. wir haben eine Zeichenkette mit ihrer Deklaration, aber da wir nie in Block 4 eingestiegen sind, bedeutet das, dass wir diese Variable nicht deklariert haben?)

 

Ich bezog mich auf die Durchquerung des Programmtextes durch den Compiler - nachdem er an irgendeiner Stelle in einer Funktion eine Variablendefinition gefunden hatte, deklarierte der Metacompiler diese Variable für die Verwendung im weiteren Verlauf des Textes - trotz der Tatsache, daß es keinen tatsächlichen Hinweis auf die Initialisierung der Variablen gab... - das ist die Umwelt :-)

int start()  {
       int l=1;
       
       if (l == 2) {
          int kk=99;
          kk = 100;
       }
   }
   if (kk != 10) { Print("net kk takoi peremennoi = ", kk); }


Obwohl es keine Eingabe in der Bedingung gab, wies der Compiler einen Speicherplatz für die Variable zu... obwohl es nicht initialisiert wurde... in Print wird es = 0 sein

 
Aleksander:

Ich bezog mich auf die Durchquerung des Programmtextes durch den Compiler - nachdem er an irgendeiner Stelle in einer Funktion eine Variablendefinition gefunden hatte, deklarierte der Metacompiler diese Variable für die Verwendung im weiteren Verlauf - trotz der Tatsache, daß es keinen tatsächlichen Verweis auf die Initialisierung der Variablen gab... - das ist die Umwelt :-)


Obwohl es keine Eingabe in der Bedingung gab, wies der Compiler einen Speicherplatz für die Variable zu... obwohl es nicht initialisiert wurde... in Print wird es = 0 sein



Wenn ich also richtig verstehe: Der Compiler führt im Gegensatz zum Terminal (grob gesagt) keine Schleifen aus, sondern liest nur Zeilen in einer Reihe und prüft auf Fehler... D.h. die Hauptsache dafür (was das Kriterium für das Vorhandensein/Fehlen eines Fehlers ist) ist, dass die Zeile (Position), in der eine Variable verwendet wurde, NACH der Zeile (Position) kommen sollte, in der diese Variable deklariert wurde?
 
könnte man so sagen :-) wenn man unten eine Deklaration macht - und oben auf die Variable zugreift - wird der Compiler einen Fehler erzeugen...
 
Aleksander:
könnte man so sagen :-) wenn man unten eine Deklaration macht - und oben auf die Variable zugreift - wird der Compiler einen Fehler erzeugen...

Verstanden, vielen Dank... Irgendwelche Tipps zu GV-Variablen?
 

Was ist mit ihnen? - global auf der Terminalebene?

sie speichern einige Zeit in einer variablen Datei :-) das Zugriffsdatum, den Namen und den Wert vom Typ double
 
PS - und auch - indirekt :-) - Sie können bis zu 63 Buchstaben in einem Variablennamen speichern - egal ob Russisch oder Englisch...