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 $T$ 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:
$z(t + \Delta t) \approx v(t) \Delta t$ (First Point Approximation)
und in kleinen Zeitschritten $\Delta t$ so lange die Bahn des Steines als Funktion der Zeit verfolgen, bis die Gesamtzeit $T$ 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, $ \gamma = 1/(N \sigma^{3}) \sum(x_{i} - \overline{x})^{3}$.
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