BERGISCHE UNIVERSIT ¨ AT WUPPERTAL
GAUSS-STRASSE 20 42119 WUPPERTAL TELEFAX (0202) 439-2901 TELEFON (0202) 439-0 WWW www.uni-wuppertal.de
Fachbereich C
MATHEMATIK UND NATURWISSENSCHAFTEN Fachgruppe Mathematik und Informatik
Softwareg¨ ute
WS 2010/11 – ¨ Ubungsblatt 7 Ausgabe: 6. Dezember 2010
Abgabe: bis sp¨atestens 13. Dezember 2010 an julius.bielecki@googlemail.com
Prof. Dr. Hans-J¨urgen Buhl Praktische Informatik / Numerik
E-Mail: buhl@math.uni-wuppertal.de
WWW: http://www.math.uni-wuppertal.de/∼buhl
Aufgabe 1. Quantoren Lesen Sie in
http://userserv.fh-reutlingen.de/∼hug/artikel/ForumWI01%20SdV.pdf uber die Benutzung von Quantoren (was ist das?) nach. Welchen Ein-¨ satz sehen Sie f¨ur diese (Pr¨adikatenlogik)? Was kann man ohne sie nicht spezifizieren?
Aufgabe 2. Spezifikation des arithmetischen Mittelwerts
Schreiben Sie eine Spezifikation einer Funktion zur Berechnung des arithmetischen Mittelwerts zweier double-Argumente. Wo auf dem Zahlenstrahl sollte das Ergebnis in Bezug auf die beiden Argumente liegen? Welche anderen Eigenschaften sollte das Ergebnis mit den bei- den Argumenten verkn¨upfen?
Aufgabe 3. Implementierungsversuch: arithmetischen Mittelwert Es werde der arithmetische Mittelwert durch
Z := (X+Y)/2 beziehungsweise durch
Z :=X+ (Y −X)/2 berechnet.
Wie unterscheiden sich die Ergebnisse dieser beiden Algorithmen von- einander? (Wann liefert jeder der beiden Algorithmen einen Wert un- gleich Unendlich, wann den Wert NaN?)
Wann sollte deshalb der Algorithmus 1, wann der Algorithmus 2 be- nutzt werden?
1
Aufgabe 4. eine Fallstudie zur Implementierbarkeit von DbC in C++
Lesen Sie in
http://dbcpp.sourceforge.net/Design By Contract.html#Other Approaches
uber die Sourceforge-Fallstudie¨ dbcpp, DbC als C++-Bibliothek m¨oglichst vollst¨andig bereitzustellen. Beurteilen Sie nach
http://dbcpp.sourceforge.net/Writing Contracts.html die Umst¨andlichkeit, mit der bei direkter Benutzung dieser Bibliothek Software geschrieben werden muß.
Schreiben Sie dazu eine zu
http://dbcpp.sourceforge.net/Quick Start.html#A Complete Example
analoge Klasse str in der gem¨aß Ottosen vorgeschlagenen C++- Erweiterung
http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2006/n1962.html
und vergleichen Sie nach Lesbarkeit, technischem Aufwand beim Pro- grammschreiben, ...
2