SAI || Vorlesungen im SS 97 || Programmieren II / Allg. Informatik II || Übungen

Übungen zu Programmieren II / Allg. Informatik II SS 97
Blatt 2 (24.04.97 - 06.05.97)


Aufgabe 2 (15 Punkte)

Zur Verwaltung von Personendaten seien folgende Vereinbarungen gegeben:

  CONST 
     NameLength = 30;
     PhoneLength = 15;
     NumberOfPers = 50;
  TYPE
     Name = ARRAY[0..NameLength] OF CHAR;     
     Phone = ARRAY [0..PhoneLength] OF CHAR;

     Date = RECORD
              day : CARDINAL[0..31];
              month: CARDINAL[1..12];
              year: CARDINAL[1900..2100];
            END;

     PersDat = RECORD
                 famName: Name;
                 firstName: Name;
                 birthDate: Date;
                 phone: Phone;
               END;
     PersList = ARRAY [1 .. NumberOfPers] OF PersDat;
     IndexList = ARRAY [1..NumberOfPers] OF [1..NumberOfPers];

Das von Ihnen erwartete Programm soll folgende Aufgaben erfüllen:

a)
Die Daten sollen entweder von stdio oder einer als Argument angegebenen Datei in ein Array (z.B. persList vom Typ PersList) eingelesen werden. Dieses soll bei den weiteren Aufgaben nicht verändert werden!
b)
Diese Personendaten werden anschließend sortiert nach Name (famName) und Alter (birthDate). Dazu werden zwei Indexfelder verwendet, die die Sortierung enthalten.
Sei ageList das Indexfeld (vom Typ IndexList), so soll gelten:
persList[ageList[i]] <= persList[ageList[i+1]], f.a. i im Indexbereich
Der Vergleich "<=" ist natürlich entsprechend dem Vergleichkriterium anzupassen: "<=" heißt beim Alter "nicht älter als", beim Namen "lexikografisch kleiner gleich".
c)
Die Sortierfunktion (Algorithmus z.B. lineares Sortieren) soll als Parameter das Array persList, die Anzahl der tatsächlich belegten Elemente (oberster gültiger Index), die Prozedur, die den Vergleich bestimmt, sowie das Ergebnisfeld (Indexfeld) erhalten.
d)
Das Programm soll durch Prozeduren gut strukturiert sein und als Ausgabe an stdout die sortierten Personendaten liefern. Fehlermeldungen sind nach stderr zu schreiben!

Bitte beachten Sie, daß dieses Programm in den nächsten Übungen weiter ausgebaut werden soll!

Viel Erfolg!


SAI || Vorlesungen im SS 97 || Programmieren II / Allg. Informatik II || Übungen

Franz Schweiggert, 22.04.1997