Universität Ulm - Abteilung Angewandte Informationsverarbeitung

 


5. Übungsblatt zur Vorlesung Systemnahe Software II


Abgabetermin: Montag, 07.06.2004


Pipes     (20 Punkte)

Nochmal Zeitzonen (5 Punkte)

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.

Ein Taschenrechner (15 Punkte)

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!



Hans Braxmeier