if then else

You are missing a feature? Start a request here.
Benutzeravatar
gawalione
Administrator
Beiträge: 121
Registriert: 7. Oktober 2017, 00:28

if then else

9. März 2018, 22:32

Hampf:
Ich plädiere für die Implementierung einer rudimentären Flusskontrolle (naja, eher fallweise unterschiedliche Abarbeitung einer Formel).

Beispiel:
Es gibt die Möglichkeit, "links oder rechts herum" zum Final zu gelangen und unterwegs gibt es entweder die Variable X oder Y zu entdecken. Aufgrund "links und X" oder "rechts und Y" ist die Folgestage eindeutig beschrieben.
Ab dieser Stage ist dann wieder alles gleich, X und Y wird eventuell gar nicht mehr oder eben fallweise verwendet, je nachdem, welchen Weg man gegangen ist.

Nehmen wir mal an, an Stage 5a findet man X, an Stage 5b findet man Y

Die Berechnung für Stage 6 anhand Variablen könnte dann skizzenhaft folgendermaßen aussehen:

Variable S2N:
if (nicht definiert(X)) then
formel(A*Y)
else
formel(A*(X+32))

Variable S2O analog (natürlich mit etwas anderer Formel).

Stage 6:
Geogr. Breite: N 48° 52.S2N
Geogr. Länge: E 8° 30.S2O

Das würde dann wohl sogar ohne große Änderung so funktionieren, dass auch bei einer Peilung oder einem Offset korrekt gerechnet werden würde, denn da würde ja nur der berechnete Wert einer Variablen "eingesetzt" werden.

Schmankerl, aber sicher nicht ganz so leicht umzusetzen:
Bei der Angabe der Ursprungskoordinaten einer Peilung oder eines Offsets nicht nur Waypoints auswählbar, sondern eine Variable, die Koordinaten enthält. Das würde das ganze dann ziemlich flexibel machen (denn sonst müsste man im Solver den Ursprung vor Ort manuell umsetzen, nachdem man entschieden hat, welchen Weg man geht).

Ich gebe zu, das Ganze macht für einen Quick'n'Dirty Multi nicht ganz so viel Sinn, aber wenn ich als Cacheowner oder als selbstloser Solver-Programmierer das JSON Script anderen zur Verfügung stellen möchte, dann möchte ich das so komfortabel wie möglich gestalten können.

Nachsatz:
Einfacher wäre das sicher so umgesetzt, dass man fallweise "nur" eine weitere Variable als Ergebnis zurückgibt, die dann klassisch formuliert werden kann, also

if (nichtdefiniert(X) then
A
else
B

mit zum Beispiel A = Y*23+23 und B = X+24

Antworten