gcc -E
) zu sehen ist. Leerzeilen und Zeilen mit
einem #
am Anfang können dabei ignoriert werden.
LIB
für
``let it be'' verwenden, ersparen Sie
sich in den folgenden Aufgaben etwas Arbeit.
makros.h
verlegen. Ebenso sollen Sie den Refrain in die Datei
refrain.h
packen. Verwenden Sie aber auch dort die vorhin definierten
Makros.
strophe.h
von der Vorlesungshomepage,
indem Sie erst die passenden Makros definieren und danach die Datei einbinden.
Sie sollen die Datei strophe.h
nicht verändern und es dürfen auch keine
Warnings generiert werden! Eine Makrodefinition können Sie mit #undef
entfernen.
Hier wollen wir lediglich das Satzstück ``let it be'' durch ``write in C''
ersetzen - allerdings nur, wenn das Makro WRITEINC
definiert ist!
Makros können nicht nur in Dateien, sondern auch auf der Kommandozeile
via gcc -DWRITEINC=...
definiert
werden. Der Wert kann weggelassen werden und ist standardmäßig 1.
Beispiel zu dieser Aufgabe:
$ gcc -E letitbe.c [...] let it be [...] $ gcc -DWRITEINC -E letitbe.c [...] write in C [...]
Schauen Sie sich das Programm tabelle.c
genau an und erweitern Sie es,
damit es einen Anfangswert, eine Schrittweite und ein Ende einliest
und zu jeder Zahl im entsprechenden Intervall folgendes ausgibt: Die Zahl
selbst zuerst linksbündig mit 2 Nachkommastellen, dann in
Exponentialschreibweise mit 4 Nachkommastellen. Danach rechtsbündig die
Wurzel der Zahl. Die letzten beiden Felder geben an, ob die Zahl negativ ist
und ob sie betragsmäßig größer als 100 ist (man fabs
). Das
linke Feld soll linksbündig sein, das rechte rechtsbündig.
Verwenden Sie außerdem statt ja
und nein
zwei Makros, mit denen
man durch eine einzige Änderung die Antworten z.B. durch yes
und
no
ersetzen kann.
Achten Sie genau auf eine saubere, bündige Ausgabe! Hier eine Beispielausgabe:
$ ./tabelle Anfangswert: -110 Schrittweite: 33.7 Ende: 140 Wert | Exponential| Wurzel | Negativ? | gross? -----------+------------+------------+----------+-------- -110.00 |-1.1000E+02 | NaN | ja | ja -76.30 |-7.6300E+01 | NaN | ja | nein -42.60 |-4.2600E+01 | NaN | ja | nein -8.90 |-8.9000E+00 | NaN | ja | nein 24.80 | 2.4800E+01 | 4.979960 | nein | nein 58.50 | 5.8500E+01 | 7.648529 | nein | nein 92.20 | 9.2200E+01 | 9.602083 | nein | nein 125.90 | 1.2590E+02 | 11.220517 | nein | ja
Viel Erfolg!