Name: _____________________________________________ Matrikel-Nr.: __________

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

Pseudonym: __________________ (nur wenn Sie möchten, daß Ihr Klausurergebnis als Aushang 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: 18. Juni 1997 um 18:00 im Raum B-301

Ergebnisse: 25. Juni 1997 um 17:30 im Vorlesungsraum

Die Klausurnote (rot) wird abwärts gerundet vergeben. Übungsnote (blau), Semesternote (gelb):

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, ca. 11 Programmzeilen): Das Modul mit der Spezifikation in der Datei MDATOBJ.ADS stellt ein abstraktes Datenobjekt für bestimmte Zwecke zur Verfügung. Um es benutzen zu können, muß seine Operation Initialisieren aufgerufen werden, die ein String-Parameter (den Namen des Objekts) braucht. Die parameterlose Operation Umwandeln führt die notwendigen Berechnung aus; die Ergebnisse werden auf dem Bildschirm mit Hilfe der Operation Ausgeben ausgegeben; hierzu müssen zwei Positive-Parameter als Bildschirmkoordinaten angegeben werden.

Das Modul stellt nicht nur ein abstraktes Datenobjekt zur Verfügung, sondern exportiert auch den abstrakten Datentyp TDaten, 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 zwei Datenobjekte bedient: ein abstraktes (namenloses) Objekt und ein Objekt vom ADT. Initialisieren Sie beide (mit einem beliebigen Namen), dann lassen Sie die Berechnungen durchführen. Lassen Sie schließlich die Ergebnisse am Bildschrim (an der Position 10, 20) anzeigen.

Lösung auf dem Extrablatt Nr. _________ ( 0 5 10 15 20 25 30 35 40 )

_______________________________________________________________________________________

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

type TFahrzeug is tagged record

Preisklasse: Natural := 5;

Beschreibung: String := "";

end record;

um eine neue Komponente Ersatz, der ein Verweis auf ein anderes Fahrzeug darstellt.

Lösung:

( 0 5 10 15 20 )

Name: _____________________________________________ Matrikel-Nr.: __________

_______________________________________________________________________________________

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 exportieren immer eine Operation.

( ) Falsch

Grund:

( ) Richtig Die Dokumentationsphase folgt der Implementierungsphase

( ) Falsch und findet noch vor der Integration statt.

Grund:

( ) Richtig Jedes Objekt vom Typ File_Type beinhaltet genau eine Datei auf der

( ) Falsch Festplatte oder auf der Diskette.

Grund:

( ) Richtig Die Schnittstelle eines Moduls enthält sein Gedächtnis, sowie

( ) Falsch alle Operationen, mit denen es manipuliert werden kann.

Grund:

( ) Richtig In der Analysephase jedes Software-Projekts werden

( ) Falsch Datenflußdiagramme erstellt.

Grund:

( ) Richtig Die gesamte Qualität eines Softwareprodukts wird vom Auftraggeber

( ) Falsch (vom Benutzer) überprüft.

Grund:

( ) Richtig Verweisobjekte können sowohl auf dem Stapel

( ) Falsch wie auch auf der Halde gespeichert werden.

Grund:

( ) Richtig Bei der Vererbug werden entweder neue Operationen oder neue Datenkomponenten

( ) Falsch einem abstrakten Datentyp hinzugefügt.

Grund:

( 0 5 10 15 20 25 30 35 40 )

_______________________________________________________________________________________

Aufgabe 4. (20 Punkte, 10 Min, ca. 7 Programmzeilen): Schreiben Sie die Spezifikation einer Modulschablone auf, deren Ausprägung ein abstraktes Datenobjekt (ADO) vom beliebigen Datentyp realisiert. Es soll Mutatoren zum Füllen und Entleeren, einen Informator über den Inhalt und über den Füllzustand exportieren.

Lösung:

Fortsetzung auf dem Extrablatt Nr. _________ ( 0 5 10 15 20 )

Name: _____________________________________________ Matrikel-Nr.: __________

_______________________________________________________________________________________

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

type TStapel is record

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

Spitze: Natural;

end record;

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

Lösung auf dem Extrablatt Nr. ________________ ( 0 5 10 15 20 25 30 )

_______________________________________________________________________________________

Aufgabe 6. (30 Punkte, 10 Min): Kennzeichnen Sie jede der folgenden Qualitätsmerkmalen von Software mit E oder I, je nach dem, ob es sich um eine interne oder externe Qualität handelt. Schreiben Sie auch eine kurze Definition dazu:

Qualität E / I Definition
benutzerfreundlich    
konsistent    
robust    
zuverlässig    
kompakt    
berechenbar    
angemessen    

( 0 5 10 15 20 25 30 )

_______________________________________________________________________________________

Aufgabe 7. (20 Punkte, 15 Min, ca. 3 Programmzeilen + Zeichnung): Die folgende Prozedur trägt ein neues Element in eine vorwärts verkettete ADO-Liste ein:

  1. procedure Eintragen (Element: TElement) is
  2. Temp: constant Knoten := new TKnoten'(Wert, null);
  3. begin
  4. Anker.Verbindung := Temp;
  5. Anker := Temp;
  6. 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 (einen Teil der) Schnittstelle des Moduls auf, das diese Operation exportiert.

Lösung :

( 0 5 10 15 20)