Grundlagen der Programmiersprache C für Studierende der

Werbung
Grundlagen der Programmiersprache C für Studierende der
Naturwissenschaften
Sommersemester 2015
Albert-Ludwigs-Universität Freiburg
Dipl.-Math. P. Schreier
Übungen Teil 1
Aufgabe 1 (Einlesen und Zuweisen von Variablen, 4 Punkte)
Schreiben Sie ein Programm, das zwei int-Werte von der Konsole einliest und in Variablen a,b
abspeichert. Lassen Sie sich die beiden Variablen ausgeben. Vertauschen Sie den Inhalt der
Variablen und geben Sie sie erneut aus.
Aufgabe 2 (Berechnung von Maximum und Minimum, 4 Punkte)
Schreiben Sie ein Programm, das das Maximum und Minimum zweier über die Konsole einzulesender Gleitpunktzahlen berechnet und ausgibt. Sie brauchen nur die arithmetischen Grundoperationen und die Funktion fabs aus der Standardbibliothek math.h. Überlegen Sie sich
dazu eine Formel, um Maximum und Minimum zweier Zahlen a, b mit Hilfe des Absolutbetrags
auszudrücken.
Aufgabe 3 (Lösungen der quadratischen Gleichung, 4 Punkte)
Die Lösungen der quadratischen Gleichung
x2 + px + q = 0
sind für p2 > 4q durch
(1)
p √
p √
x1 = − + D, x2 = − − D
2
2
2
mit D = p4 − q > 0 gegeben. Schreiben Sie ein Programm, das Koeffizienten p, q von der
Konsole einliest und falls möglich die Nullstellen des Polynoms ausgibt. Stellen Sie sicher, dass
die vom User eingegeben Werte die Bedingung D > 0 erfüllen. Andernfalls soll das Programm
einen Fehler ausgeben. Testen Sie die berechneten Nullstellen, in dem Sie sie in die quadratische
Gleichung einsetzen und geben Sie das Ergebnis mit hinreichend vielen Nachkommastellen aus.
Bonus zu Aufgabe 3 (Satz von Vieta)
Die Addition zweier Zahlen a, b ∈ R ist schlecht konditioniert, d.h. der relative Fehler der
Eingangsdaten a, b wird verstärkt, wenn
a ≈ −b gilt. Nach dem Satz von Vieta gilt x1 · x2 = q.
√
Für den Fall, dass 4|q| p2 ⇒ D ≈ | p2 | ist eine der beiden Additionen in (1) schlecht
konditioniert. Können Sie für diesen Fall den Algorithmus aus Aufgabe 3 verbessern?
Abgabe bis Sonntag 03.05.2015
Herunterladen