• Keine Ergebnisse gefunden

Programming by Contract

N/A
N/A
Protected

Academic year: 2022

Aktie "Programming by Contract"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

BERGISCHE UNIVERSIT ¨AT GESAMTHOCHSCHULE WUPPERTAL

GAUSS-STRASSE 20 42097 WUPPERTAL (Korrespondenzanschrift) 42119 WUPPERTAL (Lieferanschrift) TELEX 8 592 262 bughw TELEFAX (0202) 439-2901 TELEFON (0202) 439-1

Fachbereich 7

MATHEMATIK

Prof. Dr. Hans-J ¨urgen Buhl Praktische Informatik / Numerik

e-mail: Juergen.Buhl@math.uni-wuppertal.de

Programming by Contract

WS 2003/2004 – ¨ Ubungsblatt 5 11. Dezember 2003

Ausgabe: 1. Dezember 2003

Aufgabe 1. Spezifikation des arithmetischen Mittelwerts (Version A) Es werde der arithmetische Mittelwert durch

Z := (X+Y)/2 berechnet.

Spezifizieren Sie durch

a) Definitionsbereich (genau!) b) Wertebereich

c) Definition des Resultats d) Eigenschaften des Resultats

e) Vor- und Nachbedingungen, Nebeneffekte

Aufgabe 2. Spezifikation des arithmetischen Mittelwerts (Version B) Es werde der arithmetische Mittelwert durch

Z :=X+ (Y −X)/2 berechnet.

Spezifizieren Sie durch

a) Definitionsbereich (genau!) b) Wertebereich

c) Definition des Resultats d) Eigenschaften des Resultats

e) Vor- und Nachbedingungen, Nebeneffekte

1

(2)

Aufgabe 3. Spezifikation des arithmetischen Mittelwerts (Version C)

function arithMittel( x, y : real ) : real;

begin

if (sign(x) = sign(y)) then

arithMittel := x + (y - x)/2 else

arithMittel := (x + y)/2;

end { arithMittel } Spezifizieren Sie durch

a) Definitionsbereich (genau!) b) Wertebereich

c) Definition des Resultats d) Eigenschaften des Resultats

e) Vor- und Nachbedingungen, Nebeneffekte Aufgabe 4. Eigenschaften von arithMittel

Sind alle der w¨unschenswerten Eigenschaften

1. arithMittel soll so genau, wie im Gleitkomma-Raster m¨oglich, sein (außer evtl. im Underflow-Bereich).

2. arithMittelsoll immer zwischen x und y liegen.

3. Falls zwischen x und y mindestens ein weiterer Rasterpunkt des Gleitkommasystems liegt, so sollarithMittelstreng zwischenxund y liegen.

4. Es soll nie ein Overflow auftreten k¨onnen.

5. Underflow soll nur in dem Falle auftreten d¨urfen, wenn das (exakte) Ergebnis im Absolutwert kleiner alsFLT MIN ist.

erf¨ullt?

2

Referenzen

ÄHNLICHE DOKUMENTE

• Dazu werden die abgeleiteten Observatoren durch eine Nachbedingung unter Be- nutzung einer oder mehrerer wesentlicher Observatoren spezifiziert. • Modifikatoren werden durch

• Invarianten einer Komponente sind allgemeine, unver¨anderliche Konsistenzbe- dingungen an den Zustand einer Komponente, die vor und nach jedem Aufruf eines Dienstes gelten!.

Geben Sie in Beispielen an, wie sich die Vorbedingungen, die Nach- bedingungen und die Invarianten in einer Kindklasse relativ zu denje- nigen einer Elternklasse verhalten sollten,

Zeigen Sie, dass das Parkplatzproblem genau eine L¨ osung der am Ende von Kapitel 3.1 spezifizierten Art f¨ ur alle Eingabegr¨ oßen besitzt, die die Vorbedingungen erf¨ ullen?.

Gehen Sie analog vor beim Beispiel zur Berechnung einer nichtnega- tiven ganzzahligen Potenz einer ganzen Zahl nach dem Algorithmus von Seite 29 der

[r]

Konzipieren Sie gem¨ aß Seite 38 der Materialsammlung eine eigene Ex- ceptionhierarchie unter der Ahnenklasse exception und benutzen Sie diese Exceptions in geeigneten Methoden

Testen Sie auch hier das Programm durch vor¨ ubergehendes absichtlich- es Einbauen von Fehlern in die Algorithmen, um die Zusicherungen greifen zu