2. Übung
Bearbeitung vom 1.11.06 - 7.11.06
Aufgabe 1: Tutorial
Blättern Sie noch einmal durch den 1. Teil eines kleinen C++ Tutorials auf unser Webseite
www.physik.rwth-aachen.de/~harm/aixphysik/physikDV/index.html
Aufgabe 2: Fehlersuche
In dem Programm Celsius.cc sind uns einige Syntaxfehler eingeschlichen. Compilieren Sie das
Programm und korrigieren Sie die Fehler. Läuft das Programm fehlerfrei, wenn es die Compilerphase
überstanden hat ?
Aufgabe 3: Datentypen
Schreiben Sie ein Programm, welches die Größe (in Bytes) folgender fundamentaler Typen berechnet und ausgibt:
char, short int, int, long int, float,double, unsigned char, unsigned short int, unsigned int,
unsigned long int.
Aufgabe 4. Prioritaeten
Gegeben seien die Variablen int x = 1, int y = 0. . Welche der folgenden Ausdrücke sind
true , welche false ?
a) x&&y b) x||y
c) !(x&&y) d) !x&&y
e) x>y&&y==0 f) x<y||!y
Aufgabe 5: for und while Loops
Schreiben Sie die folgende while Anweisung in eine äquivalente for Anweisung um:
i=0;
while (i<max_length) {
cin >> ch;
if(ch == '?') quest_count++;
i++;
}
Aufgabe 6: Diskretisierungs- Algorithmen
a) Kopieren Sie das Programm well.cc aus der Vorlesung und ändern Sie es so, daß bei Eingabe einer Gesamtzeit
zwischen dem Loslassen des Steines und dem Hören des Aufpralls die Tiefe des Brunnens ausgegeben wird.
b) In vielen Problemen ist eine analytische Lösung nicht möglich.
Man kann dann eine Diskretisierung schreiben:
(First Point Approximation)
und in kleinen Zeitschritten so lange die Bahn des Steines als Funktion der Zeit verfolgen,
bis die Gesamtzeit erreicht ist. Überprüfen Sie mit Hilfe dieser Diskretisierung
Ihre analytische Lösung.
Aufgabe 7: Sortieren von Zahlen
a) In dem File bernulli.txt haben wir einige Ergebnisse eines Zufallszahlengenerators einer Binomial-
Verteilung abgespeichert.
a) Bestimmen Sie mit Hilfe des Programms mean.cc aus der Vorlesung den Zentralwert,
die Standardabweichung und die sogenannte
Schiefe (Skewness) der Verteilung,
.
b) Kopieren Sie die Routine qintsort.cc in das Programm. Dieses ist eine Integer Version des
allgemeinen QuickSort Verfahrens. Zunächst wird ein Trennwert, in dieser Version des Programms die
Mitte des Arrays, festgelegt. In jedem Sortierdurchgang werden von links bis zum Trennwert der Reihe
nach die Werte, die größer als der Trennwert sind, mit dem jeweils ersten Wert von rechts vertauscht,
der kleiner als der Trennwert ist. Die beiden Teilarrays werden mit einer Rekursion
nach dem gleichen Verfahren sortiert.
Der Trennwert selbst ist nach dieser Operation bereits richtig sortiert und braucht nicht mehr
berücksichtigt zu werden.
Ergänzen Sie den Code durch sinnvolle Kommentare.
c) Ergänzen Sie das Programm so, daß die Zahlen des Files bernulli.txt der Größe nach sortiert
werden.
Harm Fesefeldt
2006-10-31