Universität Ulm - Abteilung Angewandte Informationsverarbeitung
In diesem Teil der Aufgabe soll eine Lösung von Blatt 3 (die Zeitzonen) mit Hilfe von Pipes so angepaßt werden, daß die Ausgabe der date-Aufrufe direkt bei grep landet, ohne daß eine Datei zum Zwischenspeichern benötigt wird. Die Datei timezones1 soll also unnötig werden, die Datei timezones bleibt natürlich erhalten.
In diesem Teil soll ein Programm geschrieben werden, das beliebige
arithmetische Ausdrücke berechnen kann. Dazu soll das Programm
solche Ausdrücke von der Standardeingabe einlesen (einen pro Zeile)
und den Wert des Ausdruck oder eine Fehlermeldung (jeweils nochmal zusammen
mit dem Ausdruck selbst) auf die Standardausgabe ausgeben.
Die eigentliche Berechnung kann das Kommando bc übernehmen. Dieses
Kommando liest Ausdrücke, von der Standardeingabe und berechnet das
Ergebnis. Die Art und Weise, wie dieses Programm seine Ausgabe gestaltet,
ist aber nicht besonders hübsch. Wenn z.B. 4711*(13+31337)
eingegeben wurde, soll die Ausgabe dazu ``4711*(13+31337) = 147689850''
sein. bc gibt in so einem Fall leider nur das Ergebnis auf die
Standardausgabe aus. Außerdem sollen Eingabezeilen, die keine gültigen
arithmetischen Ausdrücke sind zu einer lesbaren Fehlermeldung führen.
Gibt man z.B. hallo ein, so soll dies zu der Ausgabe ``hallo
ist kein gültiger Ausdruck'' führen.
bc schreibt in diesem Fall eine Fehlermeldung auf die Fehlerausgabe.
Hinweis: Am einfachsten ist es, wenn für jeden zu berechnenden
Ausdruck ein eigener bc-Prozeß gestartet wird.
Viel Erfolg!