Name: _____________________________________________ Matrikel-Nr.: __________

Platz: _______ erster ( ) zweiter ( ) letzter ( ) Versuch

Pseudonym: __________________ (nur wenn Sie möchten, daß Ihr Klausurergebnis im Internet veröffentlicht wird)

Unterlagen und Hilfsmittel sind nicht zugelassen. Kommunikation während der Klausur ist nur mit dem Dozenten erlaubt, der Mißverständnisse und Unklarheiten klären kann. Schreiben Sie die Lösungen auf diese Blätter, gegebenenfalls auf ein numeriertes leeres Blatt mit Ihrem Namen; kennzeichnen Sie die Aufgabennummer eindeutig. Geben Sie alle Blätter (auch die Schmierblätter) ab. Für falsche oder nicht einleuchtende Lösungen bekommen Sie grundsätzlich keine Punkte. Wenn aber aus Ihren Notizen oder Bemerkungen ersichtlich ist, daß Ihr Gedankengang richtig war, können Sie Teilpunkte bekommen. Sie verlieren jedoch diese Möglichkeit, wenn Abschreiben oder Kommunikation während der Klausur nachgewiesen werden kann. Der Kern der Fragen wurde kursiv gesetzt. Neben der Punktzahl der einzelnen Aufgaben steht als Orientierung ein geschätzter maximaler Zeitaufwand (insg. 90 Minuten). Bei manchen Aufgaben steht als Orientierungder Anzahl der Programmzeilen in der Musterlösung. In den letzten 15 Minuten werden keine Fragen mehr beantwortet.

Klausurtermin: 10. 10. 1997 um 12:15 im Raum B-301

Die Klausurnote (rot) wird abwärts gerundet vergeben. Übungsnote (blau). Die Nachklausurnote (gelb) wird mit Iher Semesternote von der EDV der TFH gemittelt:

5 15 25 35 45 55 65 75 85 95 105 115 125 135 145 155 165 175 185 195

0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190 200

6,0 5,7 5,3 5,0 4,7 4,3 4,0 3,7 3,3 3,0 2,7 2,3 2,0 1,7 1,3 1,0


Aufgabe 1. (40 Punkte, 20 Min): Das Modul mit der Spezifikation in der Datei MPOT.ADS stellt einen Ganzzahleimer als abstraktes Datenobjekt zur Verfügung. Um es am Bildschirm sehen zu können, muß seine parameterlose Operation Show aufgerufen werden. Die Operation mit einem Integer-Parameter Fill füllt den Datenbehälter mit einer Ganzzahl; die parameterlose Operation Empty entleert den Eimer, bevor er mit einer neuen Zahl gefüllt werden kann.

Das Modul stellt nicht nur ein abstraktes Datenobjekt zur Verfügung, sondern exportiert auch den abstrakten Datentyp TPot, um eine beliebige Anzahl von Objekten anlegen zu können. Sie können mit den parametrisierten Versionen der obigen Methoden manipuliert werden.

Schreiben Sie nun eine Ada-Hauptprozedur, die drei Datenobjekte bedient: ein abstraktes (namenloses) Objekt und zwei benannte Objekte vom ADT. Zeigen Sie alle drei an, und füllen Sie sie nacheinander mit je zwei unterschiedlichen Zahlen (insgesamt 6 Zahlen).


Aufgabe 2. (20 Punkte, 10 Min): Erweitern Sie den Datentyp

type TKreis is tagged record

Radius: Float;

Farbe: TColor;

end record;

um eine neue Komponente Naechster (der ein Verweis auf einen anderen Kreis darstellt), um Kreise verketten zu können. Erzeugen Sie 3 Kreise und fügen Sie sie in eine Kette zusammen.


Aufgabe 3. (40 Punkte, 15 Min): Kreuzen Sie die richtigen Antworten an und geben Sie Ihre Begründung mit Stichworten dazu. Ohne Begründung gilt Ihre Antwort als falsch.

( ) Richtig Datenabstraktionsmodule importieren immer Operationen.

( ) Falsch

Grund:

( ) Richtig In der Entwurfsphase werden

( ) Falsch die Module eines Softwaresystems definiert.

Grund:

( ) Richtig Jedes Objekt vom Typ File_Type muß geöffnet werden,

( ) Falsch bevor eine andere Operation ausgeführt werden kann.

Grund:

( ) Richtig Die Schnittstelle eines Moduls enthält keine Variablen.

( ) Falsch

Grund:

( ) Richtig Die Methode Strukturierte Analyse ist geeignet,

( ) Falsch das Gedächtnis der Module zu definieren.

Grund:

( ) Richtig Die Qualität eines Softwareprodukts hängt davon ab,

( ) Falsch wie gut man es in der Implementierungsphase programmiert.

Grund:

( ) Richtig Verweisobjekte befinden sich entweder auf der Halde

( ) Falsch oder in Ausnahmefällen auf dem Stapel.

Grund:

( ) Richtig Bei der Typvererbug werden einem abstrakten Datentyp

( ) Falsch immer neue Komponenten hinzugefügt.

Grund:


Aufgabe 4. (20 Punkte, 10 Min): Schreiben Sie die Spezifikation einer Moduls auf, das ein abstraktes Datenobjekt (ADO) für Kleinbuchstaben realisiert. Es soll Mutatoren zum Füllen und Entleeren, einen Informator über den Inhalt und über den Füllzustand exportieren.


Aufgabe 5. (30 Punkte, 10 Min): Schreiben Sie den Rumpf der Persistenzoperation Speichern (String-Parameter als Dateiname) des abstrakten Datentyps mit der folgenden Definition auf:

type TWarteschlange is record

Speicher: is array (Natural range 1 .. Max) of TElement;

Aeltester, Juengster: Natural;

end record;

Benutzen Sie eine Ausprägung von Sequential_IO. Die Ausnahmen können Sie vernachlässigen.


Aufgabe 6. (30 Punkte, 10 Min): Schreiben Sie 3 außere und 3 innere Qualitätsmerkmale von Software mit einer kurzen Definition auf:

Qualitätsmerkmal

Definition

äußere

innere


Aufgabe 7. (20 Punkte, 15 Min): Die folgende Prozedur trägt ein neues Element in eine rückwärts verkettete ADO-Liste ein:

  1. procedure Eintragen (Element: TElement) is
  2. begin
  3. Anker.Verbindung := new TKnoten'(Element, Anker);
  4. end Eintragen;

Zeichnen Sie die Datenstruktur (mit mindestens 3 Elementen) auf. Tragen Sie die Veränderungen, die die obige Methode bewirkt, in Ihre Zeichnung ein und versehen Sie sie mit den Nummern der bewirkenden Programmzeilen.

Schreiben Sie auch ein kurzes Benutzerprogramm auf, das diese Operation testet.