Übungsaufgaben zu Gleitkommazahlen
Aufgabe 1: Durchschnittliche Niederschlagsmenge
Legen Sie für das Übungsblatt eine neue Sketch an und schreiben Sie dann in der Quellcodedatei
Programmcode für die Berechnung der durchschnittlichen Niederschlagsmenge für die drei Monate April, Mai und Juni.
Deklarieren und initialisieren Sie zu diesem Zweck für jeden Monat eine int-Variable und weisen Sie dieser einen Wert zu.
Berechnen Sie dann den Durchschnittswert als Gleitkommazahl (float)
und speichern diesen in einer weiteren Variable. Geben Sie schließlich
in der folgenden Weise alle Variablenwerte auf die Konsole aus:
Link auf die Processing Reference zu Gleitkommazahlen:
float
Verwenden Sie das Tabulatorzeichen \t, um die Zahlen auszurichten. Zeilenwechsel
innerhalb von Zeichenketten können mit \n erzwungen werden. Dies ist hier allerdings
nicht erforderlich.
Aufgabe 2: Fläche eines Kreises
Schreiben Sie ein neues Programm, in dem zunächst eine Variable für
den Radius r eines Kreises deklariert wird, aus diesem Wert dann die Fläche (float)
des Kreises berechnet und dieser Wert schließlich
in der unten dargestellten Weise auf die Konsole ausgegeben wird.
Die Konstante
steht durch die Mathematikbibliothek
bereits zur Verfügung. Benutzt wird die Konstante, indem der Name benutzt wird: PI
Beispielablauf für einen Radius von 10:
Was passiert wenn wir für die Fläche anstatt eines float
ein double verwenden?
Aufgabe 3: Exponentialfunktion
Kommentieren Sie den Code in Ihrer Sketch aus und übernehmen Sie dann den folgenden Code in Ihre Sketch:
float wert = 32;
println("e hoch " + wert + " ergibt " + exp(wert));
Nachdem in der vorigen Aufgabe die Konstante
bzw. PI zum Einsatz
kam, benutzen wir jetzt die Funktion bzw. Methode exp der
Mathematikbibliothek. Im Rahmen unserer Programmiersprache werden mathematische Funktionen als Methoden bezeichnet. Warum das so ist wird später geklärt, wenn wir zu dem Thema objektorientierte Programmierung kommen. Die Methode exp dient zur
Berechnung der Exponentialfunktion ex.
Benutzt bzw. aufgerufen wird die
Methode, indem man ihren Namen verwendet: exp(wert)
Die Methode exp liefert einen Zahlenwert, der einer Variable zugewiesen
werden kann oder direkt in einem Ausdruck oder einer Ausgabeanweisung
benutzt werden muss. Anderenfalls verschwindet dieser. Der Wert, den die
Methode liefert, ist eine Gleitkommazahl und wird im Beispiel direkt in
der Ausgabeanweisung benutzt.
Die Zeichenkette für die Ausgabe in der Methode println oben hat den folgenden Aufbau:
Zeichenkette1 +
Variable + Zeichenkette2
+ Ausdruck
Dabei besteht der Bestandteil "Ausdruck" nur aus dem Aufruf der Methode exp.
Mit Hilfe des Pluszeichens können Zeichenketten nicht nur mit Variablen,
sondern auch mit weiteren Zeichenketten und Ausdrücken zu einer
Gesamtzeichenkette verbunden werden. Ein Methodenaufruf repräsentiert für sich
allein also schon einen Ausdruck, kann aber auch Teil eines größeren
Ausdrucks sein.
Eine Gesamtzeichenkette kann aus beliebig vielen
Teilzeichenketten und Variablen bzw. Ausdrücken bestehen.
Beachten Sie, wie die obige Programmausgabe in mehreren Schritten aus
Zeichenketten und Variablen- sowie Methodenwerten zusammengesetzt wird.
Führen Sie die Sketch aus und vergleichen Sie die
Programmausgabe mit dem Ausgabebefehl oben.
Programmausgabe:
e hoch 32.0 ergibt 7.8962957E13
Erhöhen Sie dann schrittweise den Wert des Exponenten wert
und führen Sie das Programm aus, bis ein Problem auftritt. Wann tritt
das Problem auf und wie äußert sich dies? Woran könnte dies liegen?
Aufgabe 4: Trigonometrie
Um den Sinus eines Gleitkommawertes als Gleitkommawert zu
berechnen, verwenden Sie die Sinusmethode aus der Mathematikbibliothek:
sin(wert)
Der wert, d. h. das Argument der Methode, wird in
Bogenmaß angegeben und nicht in Grad. Der Cosinus wird
folgendermaßen berechnet:
cos(wert)
Schreiben Sie ein neues Programm, in dem ein Bogenmaßwert als Gleitkommazahl (float)
in einer Variable gespeichert und folgendes berechnet wird:
- Der Sinus von 0.3 Bogenmaß. Das Ergebnis wird in einer Variablen
gespeichert.
- Der Cosinus von 0.3 Bogenmaß. Das Ergebnis wird in einer anderen
Variablen gespeichert.
- Die Summe des Quadrats von jedem dieser Werte (verwenden Sie die
Variablen). Das Ergebnis wird in einer dritten Variablen gespeichert.
- Geben Sie die Werte der drei Variablen aus.
Die Ausgabe sollte in etwa so aussehen.
Testen Sie neben 0.3 ein paar weitere Werte. Was stellen Sie jeweils
fest?
Aufgabe 5: Grad in Bogenmaß
Es ist manchmal schwierig in Bogenmaß zu denken, weil wir daran gewöhnt
sind, mit Grad zu arbeiten. In den grundlegenden Mathematikfunktionen
der Computer wird aber i. d. R. Bogenmaß verwendet. Erinnern Sie sich,
dass 180 Grad in Bogenmaß dem Wert von
entspricht. Um einen in Grad gegebenen
Winkel in Bogenmaß umzurechnen, benutzen Sie die folgende Anweisung:
bogenmass = grad * PI/180
Editieren Sie die vorherige Methode in der Weise, dass sie nun einen
Winkel von 30 Grad verarbeiten kann.
Aufgabe 6: Das Ohmsche Gesetz
Das Ohmsche Gesetz setzt den Widerstand eines elektrischen
Geräts in Beziehung zu dem elektrischen Strom, der durch das
Gerät fließt und der angelegten Spannung. Das Gesetz ist:
R = U/I
Hierbei ist U die Spannung (gemessen in Volt), I die Stromstärke
(gemessen in Ampere) und R ist der Widerstand (gemessen in Ohm).
Schreiben Sie ein Programm, in dem Integer-Variablen für die Spannung und den
Widerstand eines Gleichstromgeräts deklariert und initialisiert werden.
Das Programm soll dann die
Stromstärke, die durch das Gerät fließt, berechnen und ausgeben.
Verwenden Sie hierfür Gleitkomma-Arithmetik.
Ausgabe des Programms:
Hinweis
Da U und R als ganze Zahlen gespeichert werden, müssen
Sie eine explizite Typumwandlung (type cast) durchführen, um die
Gleitkomma-Division durchzuführen. Ändern Sie die Gleichung in:
I = (float) U/R
Die Typumwandlung wird zuerst ausgeführt, wodurch U als Gleitkommazahl
durch einen Integerwert geteilt wird. Insgesamt ergibt sich
eine Gleitkommazahl.
Aufgabe 7: Stromkosten
Schreiben Sie ein Programm, das die Stromkosten eines elektrischen
Geräts berechnet. Im Programm werden zuerst Variablen für die Kosten je
Kilowattstunde in Cent und die Anzahl der verbrauchten
Kilowattstunden definiert. Tragen Sie jeweils float-Gleitkommawerte
ein.
Sie erhalten bestimmt eine andere Ausgabe:
Die Stromkosten betragen 64.26199 Euro
Da es nichts kleineres als Cent gibt, muss nach der zweiten Kommastelle gerundet werden.
println("Die Stromkosten betragen " + round(kosten*100)/100.0 + " Euro");
Aufgabe 8: Fallender Stein
Wenn ein Stein von einem Turm fällt, nimmt er an Geschwindigkeit zu,
bis er die Erde erreicht hat. Die dabei zurückgelegte Strecke wächst
quadratisch über der Zeit nach dem "Weg-Zeit-Gesetz":
Hier ist s die Strecke in m, die in der Zeit t in
Sekunden zurückgelegt wurde. g ist die
Standard-Fallbeschleunigung: g = 9,80665 ≈ 9.81 m/s². Schreiben
Sie ein Programm, in dem eine float-Variable für die verbrauchte Zeit definiert und
mit deren Wert die zurückgelegte Strecke berechnet und ausgegeben wird:
Die Methode pow(x, y)
aus der Mathematikbibliothek liefert die Potenz xy.
Aufgabe 9: Mittelwertberechnung
Wenn es darum geht, zu einer Menge von Zahlen den Mittelwert zu
bestimmen, so wird zumeist das arithmetische Mittel berechnet:
Es gibt allerdings Situationen, in denen andere Mittelwertbildungen
sinnvoller sind. Ist man z. B. an dem durchschnittlichen Wachstum einer
Größe interessiert, wobei sich die einzelnen Wachstumsschritte
gegenseitig beeinflussen, wie z. B. beim Zinseszins, so muss das geometrische
Mittel benutzt werden:
Daneben gibt es aber z. B. auch das harmonische Mittel, welches
z. B. bei der Berechnung von Durchschnittsgeschwindigkeiten angewendet
wird:
Schreiben Sie ein Programm, das drei Gleitkommazahlen in float-Variablen speichert und für diese das arithmetische, geometrische und harmonische Mittel berechnet
und ausgibt:
Lernvideo
zu geometrischem und harmonischem Mittelwert (im Labor sind Kopfhörer erforderlich).
Hinweis
Das Wurzelziehen geschieht ebenfalls mit der
pow-Methode.
Aufgabe 10: Logarithmus
Schreiben Sie ein Programm, in dem eine Gleitkommazahl
als float-Wert und eine Basis b als int-Wert
gespeichert und dann der Logarithmus zur Basis b berechnet und ausgegeben wird.
Für die Logarithmusberechnung kennt Processing den natürlichen
Logarithmus mit der Zahl e als Basis und
umgesetzt mit der Methode
log(x) (mit ).
Die Umrechnung von Logarithmen unterschiedlicher Basen geschieht an
Hand folgender Formel:
Der Logarithmus zur Basis 2 einer Zahl
ist beispielsweise definiert als:
wenn .
Beispiele:
- ;
also ist
- ; also ist