Hallöle Rolf!
Gut gebrüllt, Löwe. Wenn deine Darstellung, dass eine Eingabezeile generell zur Gänze ausgewertet wird, richtig ist, dann lässt sich hier m.E. einiges optimieren und somit die Simulationszeit positiv beeinflussen. Denn die Algorithmen und Flussdiagramme, die ich kenne, brechen die Auswertung eines Ausdrucks ab, sobald eine der Bedingungen erfüllt ist, und verzweigen zur Folgeroutine, in der die Zuweisung gesetzt wird. Sie funktionieren praktisch nach dem Motto:
WENN 'Bedingung erfüllt'
DANN 'verzweige'
SONST 'untersuche nächsten Befehl' usw. bis zum Ende des Ausdrucks.
Nach diesem Schema macht es keinen Sinn, den gesamten Ausdruck zu untersuchen, sobald eine Bedingung als erfüllt erkannt wurde.
Oder konkret gefragt: Der Ausdruck (die Eingabe) ist erlaubt:
R41(g=N,G=X), R41(g=X,G=E)
Welchen Sinn hat es, für einen Zug der Gattung G=N, der zur Gattung G=X wechseln soll, den Rest des Ausdrucks zu untersuchen? Fährt er nun weiter als G=E? Natürlich nicht, denn die Zuweisung G=X erfolgt erst, wenn die Auswertung beendet ist. Folglich kann diese schon nach dem ersten gültigen Befehl beendet werden.
Es würde mich schon interessieren, ob
EIN Zug in einer Eingabezeile durch zwei Befehle zwei Zuweisungen erhalten kann - mir ist kein solches Beispiel bekannt. Und daher denke ich weiterhin: Sobald die Bedingun(en) eines Befehls erfüllt ist/sind, braucht der Rest der Eingabe nicht weiter untersucht zu werden.
Rolf R hat geschrieben:Woher soll BAHN wissen, ob in der Zeit von 4:59-5:57 die Haltezeit nun 10-30 oder 20-30 Sekunden betragen soll?
Weil es nach meiner Auffassung so von mir definiert wurde:
Jeder Zug der Linie R41 erhält im Zeitraum 4:59-5:57 die Haltezeit 10-30 Sekunden, auch ein Zug der Gattung G=L, der aber lt. Fahrplan den Datenwechsel um diese Zeit gar nicht passiert.
Für alle übrigen Züge der Linie R41 mit der Gattung G=L gilt eine neue Haltezeit von 20-30 Sekunden.
Alle übrigen Züge der Linie R41, die den Datenwechsel außerhalb des gültigen Zeitraums passieren, erfahren keine Änderung der Haltezeit.
Ich meine, unter der Voraussetzung, dass die Auswertung nach der ersten erfüllten Bedingung beendet wird, sind das ganz klare Vorgaben, mit denen BAHN etwas anfangen kann. Das gilt somit auch für den Sonntagszug mit G=L um 8:24, aber das schrieb ich ja schon.
Aber leider denke ich, dass eine Diskussion nur theoretisch weiterlaufen kann, solange wir nicht definitiv wissen, ob die Eingabezeile generell vollständig oder nur bis zur ersten erfüllten Bedingung ausgewertet wird. In diesem Zusammenhang interessiert mich auch, warum das Beispiel aus der Hilfe "
9(z=6:00-19:00), 9(n=100-200)" im Haltepunkt erlaubt ist, im Taktpunkt aber nur in der erweiterten Form "
9(z=6:00-19:00,n=1-99+201-99999), 9(n=100-200)".
Rolf R hat geschrieben:Außerdem sei Dir ggf. auch das Kopieren erlaubt
Besser nicht, denn deine Zeile umfasst nicht die vollen 24 Stunden eines Tages.
Liebe Grüße nach WildWest
Gerd