Sie sind auf Seite 1von 3

Institut fr Angewandte und Numerische Mathematik

Prof. W. Drer Dr. G. Bohlender

Einstieg in die Informatik und algorithmische Mathematik


Programmieren mit C++

SS 2011 Aufgabenblatt 1
Bearbeitungszeitraum: 20.04.2011 03.05.2011

Aufgabe 1 (Freiwillig) Editieren, Compileraufruf, Programmausfhrung Geben Sie den nachfolgend aufgefhrten Programmtext ein, rufen Sie den C++ Compiler auf, korrigieren Sie dann die im Text enthaltenen Fehler und lassen Sie das korrigierte Programm ablaufen. Speichern Sie das Programm unter dem Namen richtig.cpp ab. include <iostream> int main() { int a b, c, d; cout << endl; caut << "Herzlich willkommen beim C-Programmierkurs!" << endl << endl; cout < "Bitte zwei natuerliche Zahlen < 64 eingeben: " << endl; cin >> a >> b; if (a > b) { c = a / b; d = a - c * b; else { c = b / a d = b - c * a; } cout << "Ergebnis: " << C << " mit Rest: " << D << endl; return 0; } Knnen Sie sich vorstellen, was das Programm leisten soll?

Aufgabe 2 (Pichtaufgabe bis 03.05.2011) Polarkoordinaten Alternativ zu kartesischen Koordinaten (x, y, z) kann ein Punkt P im dreidimensionalen Anschauungsraum auch in Polarkoordinaten der Form (r, , ) angegeben werden. Dabei bezeichnet r den Abstand des Punktes vom Nullpunkt des Koordinatensystems, den Winkel im Bogenma, den der Ortsvektor von (x, y, 0) mit der xAchse einschliet, und den Winkel, den der Ortsvektor von P mit der zAchse einschliet. Legt man fr die Polarkoordinaten die Wertebereiche 0 r < , < , 0 fest, so erhlt man eindeutig1 alle Punkte des Raumes. Den Zusammenhang zwischen kartesischen und Polarkoordinaten erkennt man an folgender Grak:

Wir betrachten zwei Programme pol2kart und kart2pol, die jeweils von der einen Form der Darstellung im Anschauungsraum in die andere umwandeln. Dabei gilt fr die Umwandlung von Polarkoordinaten in kartesische Koordinaten: x = r sin() cos() , y = r sin() sin() , z = r cos() und fr die Umwandlung von kartesischen Koordinaten in Polarkoordinaten: x2 + y 2 + z 2 , y falls x = 0 , = arctan x z falls r = 0 . = arccos r r= Die Programme sollen nun jeweils die Komponenten vom Typ double eines Punktes in der einen Darstellung einlesen und daraus die Komponenten des Punktes, wiederum vom Typ double, in der anderen Darstellung berechnen und ausgeben.
1

mit der Festlegung = 0 fr Punkte auf der zAchse und (0, 0, 0) fr den Koordinatenursprung

Das Programm kart2pol zur Umrechnung von kartesischen in Polarkoordinaten nden Sie auf den ILIAS-Seiten zur Vorlesung. Schreiben Sie in Anlehnung an dieses Programm das Programm pol2kart fr die umgekehrte Umrechnung von Polarkoordinaten in kartesische Koordinaten. Versehen Sie Ihr Programm dabei mit verstndlicher Ausgabe, damit ein mglicher Benutzer Ihres Programms versteht, was dieses leistet. Beziehen Sie <cmath> in Ihr Programm ein, um die Standardfunktionen Sinus, Cosinus, Wurzel, Arcustangens und Arcuscosinus auswerten zu knnen. Die entsprechenden Namen in C++ lauten dann: sin, cos, sqrt, atan und acos. Dabei muss das Argument einer Standardfunktion in Klammern gesetzt werden. Beispielsweise weist das folgende Programmstck nherungsweise den Wert sin(2) an die Variable x zu: const double pi = 4.0 * atan(1.0); // etwa 3.141592653589793 double x; x = sin(2.0 * pi); // sollte naeherungsweise 0.0 ergeben Bei der Ein- und Ausgabe von Winkeln im Bogenma sollen die Winkel jeweils (nherungsweise) als Vielfache von angegeben werden. D. h., falls beispielsweise /2 gemeint ist, soll lediglich 0.5 eingegeben werden mssen dies entspricht einem rechten Winkel von 90 Grad. Wird umgekehrt /2 als Ergebnis einer Umwandlung geliefert, so soll das Ergebnis in der Form : Ergebnis: ... phi = pi * 0.5 .... ausgegeben werden. Verwenden Sie dabei den oben denierten Wert 4.0 * atan(1.0) als Approximation fr . Testen Sie Ihre Programme mit den Wertetripeln (1, 1, 1), (1, 0, 1), (1, 1, 0) fr Punkte in kartesischen Koordinaten und mit den Wertetripeln (1, /2, /2), (1, , /2), (16, /2, 0) fr Punkte in Polarkoordinaten. Versuchen Sie, die Ergebnisse berschlagsweise nachzuvollziehen.

Aktuelle Informationen zur Vorlesung und zum Praktikum nden Sie in ILIAS: https://ilias.rz.uni-karlsruhe.de/goto_rz-uka_crs_100189.html Die Webseite dieser Vorlesung nden Sie unter: http://www.math.kit.edu/ianm2/lehre/einstieginfo2011s/