Ü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) f = π r 2 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:

  1. Der Sinus von 0.3 Bogenmaß. Das Ergebnis wird in einer Variablen gespeichert.
  2. Der Cosinus von 0.3 Bogenmaß. Das Ergebnis wird in einer anderen Variablen gespeichert.
  3. Die Summe des Quadrats von jedem dieser Werte (verwenden Sie die Variablen). Das Ergebnis wird in einer dritten Variablen gespeichert.
  4. 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

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":

s = 1 2 g t 2

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:

m a = 1 n a 1 + a 2 + ... + a n

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:

m g = a 1 a 2 ... a n n

Daneben gibt es aber z. B. auch das harmonische Mittel, welches z. B. bei der Berechnung von Durchschnittsgeschwindigkeiten angewendet wird:

m h = n i = 1 n 1 x i ,  mit  x i > 0 .

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

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 log e mit der Zahl e als Basis und umgesetzt mit der Methode log(x) (mit x > 0 ).

Die Umrechnung von Logarithmen unterschiedlicher Basen geschieht an Hand folgender Formel:

log b ( x ) = log e ( x ) log e ( b )

Der Logarithmus zur Basis 2 einer Zahl x ist beispielsweise definiert als: log 2 ( x ) = n wenn 2 n = x .

Beispiele: