Universität Ulm - Abteilung Angewandte Informationsverarbeitung
2.Übungsblatt (31.10.00 bis 07.11.00)
zur Vorlesung Allgemeine Informatik III (WS 00/01)
Bitte ein Bit!
Aufgabe 1 (2 Punkte)
Geben Sie jeweils einen (maschinenunabhängigen) Bit-Verknüpfungsausdruck unter C an, der
a) die höchste 2er-Potenz repräsentiert, die als Integer auf
der Maschine (durch den Compiler) darstellbar ist
b) die höchste Integerzahl repräsentiert, die auf der Maschine
(durch den Compiler) darstellbar ist
Schreiben Sie ein C-Makro #define setze(a,n), das das n.te Bit der Integerzahl a setzt.
Bsp.: setze(5,2) liefert 7 als Resultat (Warum wohl?)
Testen Sie das Ergebnis von 1b), indem Sie durch eine for-Schleife
nacheinander alle Bits einer Integerzahl setzen.
Aufgabe 3 (4 Punkte)
Schreiben Sie ein C-Makro max3(a,b,c), das das Maximum der 3 Zahlen a, b und c zurückgibt. Schreiben Sie zum Vergleich eine Programmsequenz von if-Statements, die nach dem Durchlaufen in der int-Variable max das Maximum von a,b und c enthält:
#define max3(a,b,c) /* still to do */
int main() {
int a, b, c, m1, m2;
a = 5; b = 6; c = 1; m1 = 0;
/* Programmsequenz if-statements hier einfügen
*/
....
/* am Ende soll m1 das Maximum (hier: 6) enthalten
*/
m2 = max3(a, b, c);
if (m2!=m1)
puts("wer war das?");
else
puts("die Welt ist in
Ordnung!");
}
Aufgabe 4 (1 Punkt)
Erweitern Sie das Shellskript gc aus der Vorlesung
thales$ cat gc
gcc -o $1 $1.c
dahingehend, dass es eine weitere Option an den gcc durchreichen kann (z.B. -Wall).
Hinweis: