Dr. Andreas Borchert Institut für Angewandte Informationsverarbeitung 31. Oktober 2006
Christian Ehrhardt Blatt 2


Uni Logo



Allgemeine Informatik III (WS 2006/2007)


Abgabetermin 7.11.2006

Etwas zum Präprozessor (5 Punkte)

Hätte Doris Day seinerzeit schon etwas über den C-Präprozessor gewußt, hätte Ihr Lied Que Sera Sera vielleicht anders ausgesehen. Eine mögliche Version wollen wir in dieser Aufgabe erarbeiten.
Wir beginnen mit dem Originaltext, der auf der Homepage der Vorlesung heruntergeladen werden kann (um Satzzeichen und andere Dinge, die den Präprozessor stören könnten, bereinigt). Diesen Text werden wir jetzt schrittweise umarbeiten, so daß erst der Aufruf des C-Präprozessors den Originaltext wieder zum Vorschein bringt. Das kann nach jedem Schritt durch den Aufruf von gcc -E überprüft werden. Dabei müssen allerdings Leerzeilen und Zeilen, die mit # beginnen, ignoriert werden.

Einige Makros

Identifizieren Sie mindestens 4 wiederkehrende Textstücke und definieren Sie dafür entsprechende Makros, die dann statt dem Originaltext verwendet werden. Auch für Autor und Titel des Liedes sollten Makros definiert werden.

Mehr Dateien

Zunächst stören die Makrodefinitionen aus der vorherigen Teilaufgabe im eigentlichen Text. Verbannen Sie diese in eine separate Datei, die eingebunden wird. Des weiteren kann der immer wiederkehrende Refrain ebenfalls in eine eigene Datei verbannt werden.

Die Strophen

Die ersten beiden Strophen beginnen recht ähnlich. Verwenden Sie für diese beiden Strophenanfänge die Datei strophe.h, die Sie auf der Homepage der Vorlesung herunterladen können. Damit das funktioniert, werden Sie weitere Makrodefinitionen benötigen. Sollten Sie gar eine existierende Makrodefinition wieder loswerden wollen, geschieht das mit #undef MAKRONAME.
Sollte hier (in strophe.h oder anderswo) eines der Makros aus der ersten Teilaufgabe sinnvoll sein, so soll dieses natürlich verwendet werden. Darüber hinaus darf die Datei strophe.h selbst nicht verändert werden.

Ein- und Ausgabe (5 Punkte)

Schreiben Sie ein Programm, das zu einer Reihe von Zahlen jeweils folgende Dinge ausgibt: Dabei soll die erste Zahl, die Obergrenze und die Schrittweite zu Beginn von der Tastatur eingelesen werden. Orientieren Sie sich bei der Ausgabe an dem folgendend Aufruf der Musterlösung:
Anfangswert: -10
Schrittweite: 13.2
Ende: 150

   Wert    | Exponential|    Wurzel  | Negativ? | gross? 
-----------+------------+------------+----------+--------
-10.00     |-1.0000E+01 |        NaN | ja       |   nein
3.20       | 3.2000E+00 |   1.788854 | nein     |   nein
16.40      | 1.6400E+01 |   4.049691 | nein     |   nein
29.60      | 2.9600E+01 |   5.440588 | nein     |   nein
42.80      | 4.2800E+01 |   6.542171 | nein     |   nein
56.00      | 5.6000E+01 |   7.483315 | nein     |   nein
69.20      | 6.9200E+01 |   8.318654 | nein     |   nein
82.40      | 8.2400E+01 |   9.077445 | nein     |   nein
95.60      | 9.5600E+01 |   9.777525 | nein     |   nein
108.80     | 1.0880E+02 |  10.430724 | nein     |     ja
122.00     | 1.2200E+02 |  11.045361 | nein     |     ja
135.20     | 1.3520E+02 |  11.627553 | nein     |     ja
148.40     | 1.4840E+02 |  12.181954 | nein     |     ja
Folgende Dinge sind dabei noch zu beachten:

Organisatorisches

Beginnend mit dem 7. November (also mit der Besprechung der Lösung zu diesem Blatt) beginnen die Übungen immer erst um 15:30h.

Historisches

Das Lied Que Sera Sera stammt aus dem 1956 von Alfred Hitchcock gedrehten Film Der Mann der zuviel wußte (The Man Who Knew Too Much). Das Lied spielt in dem Film eine zentrale Rolle und wird auch im Film von Doris Day gesungen, die eine der Hauptrollen spielt. Wer den Film noch nicht kennt, dem sei er hiermit wärmstens empfohlen.

Christian Ehrhardt 2006-10-31