Logik lernen - Seite 8

 
Victor!!! ALLES GUTE ZUM GEBURTSTAG! Alles Gute!!!
 
poruchik:
Victor!!! ALLES GUTE ZUM GEBURTSTAG! Alles Gute!!!

Danke, obwohl ich schon 8 Minuten in den neuen Tag hineingegangen bin.
 
Vinin:

Danke, aber ich habe noch 8 Minuten bis zum neuen Tag.
Um Ihnen gute Gesundheit und Stabilität im Leben zu wünschen, ist es nie zu spät, passen Sie auf Victor auf, und hallo !
 
Mathemat:
Verzeihen Sie das Off-Topic: drknn, hilft Ihnen die Logik bei der Zähmung der Fora?


Manchmal hilft es, den Code kürzer zu machen. Als ich diese Abkürzung in Kims Schleppnetz sah, war ich begeistert. Und im Allgemeinen sagt einem die Logik nicht, wo die Wahrheit liegt, sondern wo die Wahrheit nicht liegt - so kann man die Wahrheit immer weiter eingrenzen und als irreduziblen Rest aufdecken.

 
drknn:
Mathemat:
Verzeihen Sie das Off-Topic: drknn, hilft Ihnen die Logik bei der Zähmung der Fora?

Manchmal hilft es, den Code kürzer zu machen.

Einstich #2. Logik (Logik) und Kürze haben wenig miteinander zu tun.

Ein Paradebeispiel dafür ist die MMS, die übrigens von vielen nicht zimperlich eingesetzt wird.

if (OrderType() <= 1)

Das ist nicht logisch, das ist tödlich. Es ist auch ein potenzieller Nährboden für implizite Fehler.

 

Die Bedingung ist erfüllt, wenn es sich nicht um einen Limit-/Stop-Auftrag handelt. Wie hoch ist das Fehlerpotenzial? Ich kann nur den Zusammenhang nicht erkennen.

Im Allgemeinen ist es für solche Variablen wie "Aufzählungen" keine gute Idee, Ungleichungen zu verwenden... Es ist besser, die Bezeichner explizit anzugeben, damit wir nicht raten müssen.

 

Es ist einfach eine dieser Harken, die das Leben viel einfacher machen.

Und die Faustregel ist einfach: Man darf sich nicht an absolute Werte von Konstanten halten.

Der mögliche Fallstrick besteht darin, dass

1) Man kann theoretisch nicht ausschließen, dass sich die absoluten Werte der Konstanten ändern, weil es keine prinzipielle Logik der Nummerierung gibt.

2. der Wert von OrderType(), wenn die Bestellung nicht ausgewählt wurde, ist undokumentiert :)

3. die Bedingung ist nicht trivial, d. h. wir haben die MMS ein halbes Jahr lang vergessen, sind dann zurückgekommen, haben sie nachgeschlagen, die falschen Konstanten betrachtet und infolgedessen die Logik falsch verstanden.

____________

Wie wäre es damit?

if (OrderType() % 2)
{
   //...
}
 

Auch das ist eine unsinnige Bedingung, auch wenn sie technisch gesehen im Moment richtig sein mag.

Meine Argumente wären in etwa dieselben: OP_BUYXXX sind mnemonische Konstanten, die aus einem bestimmten Grund eingegeben werden, nämlich um weniger Fehler zu machen. Deshalb ist es besser, diese Identifikatoren zu verwenden.

 
Ja. Und die Bedingung - "wenn irgendeine Art von Verkaufsauftrag ".
 

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

OrderType() % 2 != 0

- War es das?

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