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

Übungen zu Programmieren II / Allg. Informatik II SS 97
Blatt 7 (12.06.97 - 19.06.97)


Aufgabe 7 (30 Punkte)

Das bisherige Programm zur Verwaltung von Personendaten soll nun auf rekursiven Prozeduren umgestellt werden.

Dazu sind die im folgenden abgedruckten Module vorgegeben:

DEFINITION MODULE Items;
(*bisher hiess dieses Modul ``Persons.d''*)
  FROM StdIO IMPORT FILE;
  TYPE Item; 
  PROCEDURE WriteItem(f: FILE; obj: Item);
  PROCEDURE ReadItem(f:FILE; VAR obj: Item):BOOLEAN;
END Items.

DEFINITION MODULE Lists;
(* basiert auf Modul ``Items.d'' *)
   FROM StdIO IMPORT FILE;
   TYPE List;
   PROCEDURE isEmpty(l: List):BOOLEAN;
   PROCEDURE bListA1(f: FILE; n: CARDINAL):List;
   (* rekursive Erzeugung einer einfach verketteten
    * Liste mit n Elementen;
    * die Elemente stehen in der Liste in derselben
    * Reihenfolge wie sie gelesen werden, also ``aufsteigend''
    *)
   PROCEDURE bListA2(f: FILE; n: CARDINAL; VAR p:List);
   (* wie bListA1, nur via VAR-Parameter *)

   PROCEDURE bListD1(f: FILE; n:CARDINAL): List;
   (* rekursive Erzeugung einer einfach verketteten
    * Liste mit n Elementen;
    * die Elemente stehen in der Liste in umgekehrter 
    * Reihenfolge wie sie gelesen werden, 
    * also ``absteigend'' (descending)
    *)
   PROCEDURE bListD2(f: FILE; n:CARDINAL; VAR p: List);
   (* wie bListD1, nur via VAR-Parameter *)

   PROCEDURE printListA(f: FILE; p:List);
   (* rekursive Ausgabe der Listenelemente von `vorne her' *)
   PROCEDURE printListD(f: FILE; p:List);
   (* rekursive Ausgabe der Listenelemente von `hinten her' *)
END Lists.

Beide Definitionsmodule wie auch ein Hauptmodul Main.m2, das Modul Items.m2 und eine Datei mit Testdaten phone.list können aus dem Katalog

/www/thales/ftp/pub/vorlesungen/ss97/prog/blatt7

kopiert werden.

Implementieren Sie das Modul Lists.m2!

Viel Erfolg!


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

Franz Schweiggert, 11.06.1997