Universität Ulm - Abteilung Angewandte Informationsverarbeitung
5.Übungsblatt (28.11.00 bis 05.12.00)
zur Vorlesung Allgemeine Informatik III (WS 00/01)


Als Grundlage der folgenden beiden Aufgaben dienen Personendaten der Form Nachname:Vorname:Geburtstag, also z.B.:

Hybel:Astrid:01.05.86
Schoen:Martin:01.11.72
Frings:Susanne:01.02.78
....

(Sie finden eine komplette Beispieldatei hier)

Aufgabe 1 (6 Punkte)

Lesen Sie Personendaten der obigen Form durch ein C-Programm dynamisch von der Standardeingabe in den Hauptspeicher ein. Legen Sie die Daten einer Person jeweils in eine passende Struktur (Record) ab. Sie können davon ausgehen, dass maximal 200 Personendaten kommen. Geben Sie die eingelesenen Daten wieder am Bildschirm aus.

Wichtig: Ver(sch)wenden Sie beim Abspeichern der Daten so wenig Hauptspeicher wie möglich!! (Ansonsten Punktabzug und Zwangsexmatrikulation.)

Hinweis: die C-Funktion  int atoi(char *s) wandelt die Ziffern im String s in eine Integer um. Führende Blanks werden überlesen; die Zahl wird bis zur ersten Nicht-Ziffer bzw. bis Stringende (0Byte, gell!) konvertiert:

 atoi(" 123abc")== 123
 

Aufgabe 2 (3 Punkte)

Geben Sie die eingelesenen Daten von Aufgabe 1 nach Geburtsdatum aufsteigend sortiert am Bildschirm aus.
 

Aufgabe 3 (1 Punkt)

Wie müßten Sie ihr Programm umschreiben, damit Sie (fast) beliebig lange Dateien im Hauptspeicher ablegen können, ohne vorher die Anzahl der einzulesenden Personen zu wissen? (Ideenskizze genügt! Implementierung nur für ganz hardgesottene!)