Universit¨ at Paderborn Fakult¨ at V (EIM) Institut f¨ ur ET & IT
ANGEWANDTE DATENTECHNIK (SOFTWARETECHNIK)
Prof. Dr.-Ing. F. Belli
WS 2012/2013
Ubung 7 ¨
Ubungen zum Fach Grundlagen der Datenverarbeitung ¨
Ubung 7, Rechner¨ ¨ ubungen am 03.12. und 04.12.2012 (Poolraum - P7.2.02.1)
Aufgabe 1:
Betrachten Sie die nachfolgenden Deklarationen:
(I)
struct complex {
float real;
float imag;
} cmpl_zhl;
(II)
typedef struct complex {
float real;
float imag;
} cmpl_zhl;
(III)
typedef struct {
float real;
float imag;
} cmpl_zhl;
1. Erkl¨aren Sie diese Deklarationen und zeigen Sie die Unterschiede auf! Definieren Sie zu jedem dieser Datentypen mindestens eine Variable!
2. Stellen Sie ¨ahnliche Deklarationen f¨ur die Konstrukteenum (z.B. f¨ur Wochentage) und
unionauf (z.B. f¨ur die DatenName undMatrikelnummer eines Studenten) mit entsprechenden Definitionen von Variablen!
Aufgabe 2:
Andern Sie Aufgabe 1 aus der ¨¨ Ubung 6 ab: Die Multiplikation von 2 komplexen Zahlen soll durch eine Funktion realisiert werden:
Implementieren Sie eine Funktion, die als Call-by-value realisiert wird:
struct complex complexMul(struct complex cmpl_zhl1, struct complex cmpl_zhl2) Implementieren Sie eine weitere Funktion, die Call-by-reference simuliert:
void complexMulByRef(struct complex *zhl1, struct complex *zhl2, struct complex *ergebnis) Aufgabe 3:
Schreiben Sie ein C-Programm, welches zwei Matrizen (10x10 Elemente) elementweise addiert. Legen Sie dazu drei Felder mit jeweils zwei Dimensionen an und initialisieren Sie die zwei zu addierenden Matrizen mit selbstgew¨ahlten Werten. Geben Sie nach der Addition alle drei Matrizen auf die Konsole aus.
Aufgabe 4:
Gegeben sei folgendes C-Programm-Fragment mitgoto-Anweisungen:
start: scanf(" %c", &x);
if(x==’a’) goto a;
if(x==’b’) goto b;
goto fail;
a: scanf(" %c", &x);
if(x==’b’) goto b;
goto fail;
b: scanf(" %c", &x);
if(x==’c’) goto accept;
goto fail;
fail: return FAIL;
accept: return ACCEPT;
1. Gl¨atten Sie das Programm-Fragment ad-hoc (manueller L¨oschungsversuch der goto’s.).
2. (Hausaufgabe) Zeichnen Sie den Programmab- laufplan (PAP) des Programm-Fragments.
3. (Hausaufgabe) Gl¨atten Sie den PAP mit Hilfe des Algorithmus, welcher in der Vorlesung vor- gestellt wurde.
4. (Hausaufgabe) Erstellen Sie das gegl¨attete C-Programm.
5. (Hausaufgabe) Erstellen Sie das Struktogramm aus der gegl¨atteten Variante.