s i l r u n S y s t e m s Commodore Amiga / Casio & Sharp Pocket Computer 8 Fahrplan Casio fx-880 (c) silrun Systems 03.06.1992 Malte Brockmann Im Loffenkamp 4 * 31832 Eldagsen Postfach 3027 * 31821 Eldagsen Nur lauffähig mit mindestens 16kB Speicher! Das Programm gibt nach Eingabe von Liniennummer, Richtung (hin oder zurück), Abfahrts- und Zielhaltestelle sowie der Zeit den nächsten fahrenden Bus aus. Vor dem erstmaligen Laufen sollte der Variablenspeicher mit CLEAR 8192 (evtl. auch CLEAR 16384) vergrößert werden. Die Datas sollten eigenen Bedürfnissen angepaßt werden. Alle notwendigen Daten sind in einem vierdimensionalen Feld untergebracht, was zwar nicht gerade anwenderfreundlich ist (wer denkt schon vierdimensional ?), aber das Variablenhandling vereinfacht. Interne Programmstruktur: Die Variable lin beinhaltet die Anzahl der Linien minus 1. Das Feld (2,1,10,25) wäre für folgende Fahrplanstruktur ausgelegt: Anzahl der Linien: 3 (2 plus 1), 1 muß immer gesetzt sein (der Bus fährt ja nicht nur hin, sondern auch zurück), max. Haltestellenanzahl: 10, max. Busverbindungen: 25 (pro Linie und Richtung). Der Fahrplan der Linie x ist zweidimensional und sieht wie folgt aus: f$(x,0,0,0): Liniennummer, z.B. 504. f$(x,1,0,0): vierstellige Zahl, linke beiden Stellen: tatsächliche Anzahl der Haltestellen der Linie x, rechte beiden Stellen: tatsächliche Anzahl der Busverbindungen der Linie x für eine Richtung, f$(x,Richtung,y,0): Haltestellennamen f$(x,Richtung,0,z): Fahrtag des Busses (z.B. wo= mo bis fr, sa= sa) f$(x,Richtung,y,z): Abfahrt von Haltestelle y als Verbindung # z. Hin und zurück müssen gleich viele Busse fahren (notfalls mit "-" auffüllen - Zeile 999) Im konkreten Beispiel sieht das so aus: Linie: 504, Haltestellen: 6, Verbindungen: 6 In den Datas 1100-1149 Richtung hin, 1150-1199 Richtung zurück. Der Fahrplan sieht normalerweise wie folgt aus: -Samstags- Eldagsen/Wallstr. 6.44 Eldagsen/Gestorfer Str. 6.45 Gestorf/Hannoversche Str. 6.55 Völksen/Bahnhof 7.03 Springe/Fünfhausenstr. 7.21 Springe/ZOB 7.22 Da die Haltestellennamen in dieser Form zu lang sind (oder würden Sie jedesmal "Eldagsen" eingeben wollen ?), werden sie abgekürzt. Nun können Sie den Rechner befragen: Wann fährt der nächste Bus von Eldagsen/Gestorfer Str. nach Springe/ZOB, wenn es jetzt gerade 6.30 Uhr ist? Die Eingaben sind wie folgt: Linie: 504, Richtung: J, Abfahrt: E/G (mehr braucht nicht eingegeben zu werden, der Rechner sucht automatisch die erste Haltestelle, die mit E/G begint!), Ziel: S/Z, Abfahrtszeit: 06.30. Der Rechner antwortet: E/Gest sa 06.45 S/ZOB 07.22 Der nächste Bus fährt wie oben ersichtlich um 6.45 Uhr ab und kommt um 7.22 Uhr an. Mit "+" kann nun der nächste Bus gesucht werden, mit >EXE< wird wieder von vorn abgefragt. Da die Zeitabfrage als Stringvergleich ausgelegt ist, müssen die Busse in zeitlich aufsteigender Anordnung in die Datas geschrieben werden. Fährt am betreffenden Tag kein Bus mehr, wird dies angezeigt und nach Tastendruck der nächste Bus am folgenden (wo-)Tag angezeigt. Ebenfalls aus Platzgründen wurde auf eine Abfrage verzichtet, wenn der Bus die Haltestellen in anderer Reihenfolge befährt. Falls die Variablen bei einem Neustart noch nicht gelöscht wurden, wird auf das Einlesen der Datas verzichtet, und man kommt gleich in die Abfragen. Hinweis zur vorliegenden Version: Bei der Zeitabfrage muß vor der Zeit der Tag eingegeben werden, z.B. sa/06.30.