Logik lernen - Seite 9

 

Ja :) Ich habe ein bisschen übertrieben.

Hier ist ein weiteres Beispiel :) aber ich bezweifle, dass es in MQL funktionieren wird, es wird in C++ funktionieren:

for (int i = OrdersTotal(); i--;)
{
   if (!OrderSelect(i - 1, SELECT_BY_POS)) continue;

   //...
}
 
Mathemat:

Also doch zu verkaufen?

Sieh an, sieh an. Wir haben einen logischen Operanden darin, und ich habe ihn falsch gelesen. Es stellt sich heraus, dass es wahr ist, wenn

- War es das?

Nun, dann ist es Bullshit zum Quadrat. Der Code ist unleserlich :)


Der Code ist recht gut lesbar. Das sollten Sie nicht sein.
 

Um nicht entziffern zu müssen, was gemeint ist (ein beliebiger Verkaufsauftrag), wäre es sinnvoller, die Bezeichner der Auftragsarten auszuschreiben. Es wäre kürzer, aber viel klarer.

In der Kürze liegt die Würze: Ja, es ist eine Lösung, aber nicht sehr zuverlässig. Der Entwickler garantiert nicht, dass sich die numerischen Werte dieser Konstanten niemals ändern werden.

 
Mathemat:

Um nicht entziffern zu müssen, was gemeint ist (ein beliebiger Verkaufsauftrag), wäre es sinnvoller, die Bezeichner der Auftragsarten auszuschreiben. Es wäre kürzer, aber viel klarer.

In der Kürze liegt die Würze - ja, das ist eine Lösung, aber nicht sehr zuverlässig. Der Entwickler garantiert nicht, dass sich die numerischen Werte dieser Konstanten niemals ändern werden.


Genau das ist das Problem. Es ist möglich, einen raffinierten Code zu erstellen, der plötzlich nicht mehr funktioniert.
 
TheXpert:

Hier ist ein weiteres Beispiel :) aber es ist unwahrscheinlich, dass es in MQL richtig funktioniert, es wird in C++ funktionieren:

for (int i = OrdersTotal(); i--;)
{
   if (!OrderSelect(i - 1, SELECT_BY_POS)) continue;

   //...
}
Ich habe es nicht überprüft, aber ich würde es selbst nicht so schreiben.
 
TheXpert:

Ja :) Ich habe ein bisschen übertrieben.

Hier ist ein weiteres Beispiel :) aber es ist unwahrscheinlich, dass es in MQL richtig funktioniert, es wird in C++ funktionieren:


Das ist keine Optimierung, sondern eine Perversion... Verzeihung, das ist eine Perversion...

Dabei kam mir eine nette kleine Aufgabe in den Sinn: Wie kann man Werte zwischen zwei numerischen Variablen austauschen, ohne die dritte Variable zu verwenden? ))

 
Vinin:
Sie können einen raffinierten Code erstellen, der plötzlich nicht mehr funktioniert.

Das ist der springende Punkt - dieser Code ist nicht elegant. Dies ist eleganter:

bool IsActiveType(int orderType)
{
   return (type == OP_BUY || type == OP_SELL);
}

bool IsAnySellType(int orderType)
{
   return (type == OP_SELL || type == OP_SELLLIMIT || type == OP_SELLSTOP);
}

{
   if (IsActiveType(OrderType()))
   {
      //...
   }

   if (IsAnySellType(OrderType()))
   {
      //...
   }
}

denis_orlov:

Das ist keine Optimierung, das ist pervers... Verzeihung, ich...

Ich erinnere mich an eine nette kleine Aufgabe, wie man Werte zwischen zwei numerischen Variablen austauschen kann, ohne die dritte Variable zu benutzen. ))

Ja :) irgendwie schon.
 
TheXpert:

Das ist der springende Punkt - dieser Code ist nicht elegant. Diese hier ist eleganter:

Ja, das ist richtig. Die einzeiligen Körperfunktionen wurden nie gestrichen, sie sind sogar sehr nützlich.
 
TheXpert:

Das ist der springende Punkt - dieser Code ist nicht elegant. Diese hier ist eleganter:


Das gefällt mir. Es sieht wunderschön aus.
 
TheXpert:

Das ist der springende Punkt - dieser Code ist nicht elegant. Dies ist eleganter:



Sie brauchen nur die Funktionsparameter zu entfernen, um es komplizierter zu machen. Wenn der Parameter nicht angegeben ist, dann aus OrderType() der Bestellung ermitteln, wenn er angegeben ist, dann durch den Parameter.

Ich langweile mich hier :)))

Grund der Beschwerde: