Lösungsbeispiel: Alles zusammen T3VectorAllInclusive.cpp (html, source),
Lösungsbeispiel:
Header My3Vector.h (html, source),
Implementation My3Vector.cpp (html, source),
Testprogramm T3Vector.cpp (html, source)
Kompilieren:
g++ -o T3Vector T3Vector.cpp My3Vector.cpp
int main() { double x = 3.; My3Vector a(1.,1.,0.); My3Vector b(-1.,1.,0.); My3Vector c = a + b; My3Vector d = a * x; // von rechts My3Vector e = x * a; // von links }
Lösungsbeispiel: Header myvec.h, Code myvec.cpp, Testprogramm tvec.cpp.
Und zur Anschauung noch die ThreeVector Klasse aus der CLHEP Klassenbibliothek (Utility Classes for Particle Physics): Header ThreeVector.h, source code ThreeVector.cc, ThreeVector.icc
(a) Probieren Sie das Programm aus und Erweitern dann die
StatCalc Klasse
um Methoden zur Berechnung und Ausgabe von Minimum und Maximum.
(c) In semester.dat
finden Sie die Semesterzahl
bis zum Physikdiplom für zufällig ausgewählte Studenten. Die ersten 100 Einträge sind von Studenten der LMU, die restlichen 100
von Studenten der TUM. Lesen Sie die Daten ein und füllen LMU bzw TUM Zahlen jeweils in ein
StatCalc Objekt.
Sind die Mittelwerte im Rahmen der Schwankungen konsistent ?
(d) Überlegen Sie wie man das Problem aus
(c) (mehrere Statistiken parallel führen) in einer prozeduralen Sprache (Fortran, C)
angehen könnte, d.h. ohne Klassen und Objekte, nur mit Arrays und Funktionen.
(a) Wieviele Zeilen enthält der Text ?
(b) Finden Sie die String Funktion die Gross-Buchstaben in Klein-Buchstaben umwandelt und transformieren sie damit den ganzen Text.
(c) Wie oft kommt das Wort Vernunft in dem Text vor ?
Hinweis: Mit getline( istream in, string s ) kann man eine ganze Zeile in einen String einlesen. Rückgabewert kann für File-Ende Test genommen werden (liefert 0).
int main() { MyLVector c(1.000001,1.,0.,0.); MyLVector d(2.,1.,1.,0.); MyLVector e(1.000001,-1.,0.,0.); cout << "angle c, e = " << c.Angle(e) << endl; // My3Vector-Methode cout << "mass d = " << d.Mass() << endl; // MyLVector-Methode cout << "mass c+e = " << c.Mass(e) << endl; ...
Lösungsbeispiel: Header MyLVector.h, Code MyLVector.cpp, Testprogramm TLVector.cpp.
Erstellen Sie eine C++ Klasse für Mondfähre, welche Datenelemente, welche Methoden werden benötigt?
Lösungsbeispiel aus Buch Coding for Fun mit C++ mondlandung.cpp.
Modifizieren Sie das Programm, z.B. zufällige Starthöhe, zufällige Variation des Schubfaktors, etc.