C++

2. Übung

Aufgabe 1

Benutze eine der vorgestellten Routinen zur Berechnung der Fakultät und schreibe ein Programm, welches ein kleines Menü ausgibt und nach der Zahl fragt, oder 'q' oder 'Q' für Ende, und die Fakultät ausgibt. Es sollte noch die Grenzen testen, in denen das Programm überhaupt funktioniert. (Auf den meisten 32Bit Prozessoren hat ein unsigned int einen Wertebereich von Null bis 2^32-1).

Aufgabe 2

Schreibe ein Programm, welches Fibonaccizahlen berechnet. Bilde sowohl die rekursive als auch die nicht rekursive Version. Welche Version ist schneller? Teste dies!

Aufgabe 3

Wie kann eine beliebige while-Schleife in eine do...while-Schleife umgeformt werden?

Aufgabe 4

Schreibe Funktionen, um auf Felder (als Beispieltyp double) wie in Pascal zugreifen zu können. Dazu wird eine Struktur benötigt. Sie soll PascalFeld heißen. Wie sieht die Definition aus? Schreibe eine Funktion, welche ein Feld initialisiert und eine Funktion für den Zugriff. Deklaration:

PascalFeld Generiere_Feld(int untere_G, int obere_G);
PascalFeld Generiere_Feld(int obere_G);
double &Zugriff(PascalFeld &feld, int index);

//Beispielbenutzung:

int main() {
        PascalFeld feld = Generiere_Feld(-4, 4);
        for(int i = -4; i <=4; ++i) Zugriff(feld, i) = i * i;
}

Wenn ein Zugriffsfehler auftritt, soll das Programm hart mit Fehlermeldung abgebrochen werden! (Hierzu dient die Funktion "exit(int rueckgabecode);").


Robert Krawczyk