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

Übungen zu Programmieren II / Allg. Informatik II SS 97
Blatt 5 (22.05.97 - 05.06.97)


Aufgabe 5 (15 Punkte)

Das bisherige Programm zur Verwaltung von Personendaten soll nun auf Listen (statt Arrays) umgestellt werden. Dazu seien folgende Definitionsmodule (in Anlehnung an Blatt 4) gegeben:

DEFINITION MODULE Persons;
  FROM StdIO IMPORT FILE;

  TYPE
     PersDat; 
     (* hidden type: pointer to a person's record*)

  PROCEDURE WriteRec(f: FILE; pers: PersDat);
  (* f - open stream for writing 
   * writes data with one blank as separator 
   *)
     
  PROCEDURE ReadRec(f:FILE; VAR pers: PersDat):BOOLEAN;
  (* f - open stream for reading !
   * reads one record assuming whitespace as separator
   * TRUE, if done, otherwise FALSE
   *)
END Persons.


DEFINITION MODULE PersonsList;
  (* based on module ``Persons'' *)
  FROM StdIO IMPORT FILE;
  TYPE
     PersList; 
     (* hidden type: pointer to a list's element
      * which is a record with two components,
      * one of type Persons.PersDat,
      * the other pointing to the next list element
      *) 
			
  PROCEDURE InitPersList(fromFile: FILE;
			 VAR persList: PersList): BOOLEAN;

   (* Procedure Persons.ReadRec is used
    * all data from file ``fromFile'' are stored in
    * list ``persList''
    * returns FALSE, if error
    *)

  PROCEDURE WritePersList(to: FILE; persList: PersList);
   (* the whole list is written to open stream ``to''
    * Procedure Persons.WriteRec is used
    *)
END PersonsList.

Implementieren Sie die zugehörigen Implementationsmodule sowie ein Hauptprogramm, das zum Test eine Liste aus einer als Argument übergebenen Datei einliest und wieder auf die Standardausgabe ausgibt. Viel Erfolg!


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

Franz Schweiggert, 20.05.1997