einstieg:weiteredatentypen:start
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
— | einstieg:weiteredatentypen:start [2024/08/31 12:03] (aktuell) – angelegt - Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Die Datentypen float, double ====== | ||
+ | Wir haben bisher nur den Datentyp '' | ||
+ | ===== float ===== | ||
+ | <WRAP center round info 60%> | ||
+ | Variablen vom Datentyp '' | ||
+ | </ | ||
+ | Falls es Dich genauer interessiert, | ||
+ | Führe das folgende Beispielprogramm in Einzelschritten aus und schau' Dir dabei den Inhalt des Reiters " | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | float radius = 1.5; | ||
+ | float umfang = 2 * 3.14159 * radius; | ||
+ | float flaecheninhalt = 3.14159 * radius * radius; | ||
+ | |||
+ | println(" | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | | ||
+ | <WRAP center round tip 60%> | ||
+ | '' | ||
+ | **Besonderheit von LearnJ:** | ||
+ | Die Programmiersprache auf dieser Website speichert'' | ||
+ | </ | ||
+ | |||
+ | ==== Ganzzahldivision/ | ||
+ | **Rätsel: | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | |||
+ | int a = 12; | ||
+ | int b = 6; | ||
+ | float c = b/a * 100; | ||
+ | println(c); | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | |||
+ | Je nach Datentyp der Operatoren wirkt der Operator ''/'' | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | |||
+ | println(5/ | ||
+ | println(5.0/ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | === Erklärung: === | ||
+ | Da beide Operanden der Division in Zeile 1 ganzzahlige Werte sind, wird die Division als Ganzzahldivision ausgeführt, | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ===== double ===== | ||
+ | <WRAP center round info 60%> | ||
+ | Variablen vom Datentyp '' | ||
+ | Ein '' | ||
+ | </ | ||
+ | |||
+ | **Einfaches Beispiel:** \\ | ||
+ | Ein Kapital von 1000 € wird jährlich mit 3 % verzinst. Wie viel Geld ist nach 0, 1, 2, ... Jahren auf dem Konto? | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | double kapital = 1000; | ||
+ | double zinssatzInProzent = 3; | ||
+ | |||
+ | for(int i = 0; i < 6; i++){ | ||
+ | | ||
+ | | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | ==== Die Klasse Math ==== | ||
+ | Zum Rechnen mit '' | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | println(" | ||
+ | println(" | ||
+ | println(" | ||
+ | println(" | ||
+ | println(" | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | <WRAP center round tip 60%> | ||
+ | Die Klasse '' | ||
+ | </ | ||
+ | |||
+ | ===== Runden von Zahlen ===== | ||
+ | Kann man im Programm aus einem '' | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | double zahl1 = 82.6; | ||
+ | double zahl2 = 3.4; | ||
+ | |||
+ | println(" | ||
+ | |||
+ | println(" | ||
+ | println(Math.round(zahl1) + "; " + Math.round(zahl2)); | ||
+ | |||
+ | println(" | ||
+ | println(Math.ceil(zahl1) + "; " + Math.ceil(zahl2)); | ||
+ | |||
+ | println(" | ||
+ | println(Math.floor(zahl1) + "; " + Math.floor(zahl2)); | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | |||
+ | ==== Runden auf eine vorgegebene Zahl von Nachkommastellen ==== | ||
+ | Wie kann man eine Zahl beispielsweise auf 3 Nachkommastellen runden? Löse das Problem mit Hilfe der oben angegebenen Funktionen! | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | double zahl = 82.632876; | ||
+ | |||
+ | println(" | ||
+ | |||
+ | println(" | ||
+ | |||
+ | // Ergänze die folgende Zeile durch einen geeigneten Term, | ||
+ | // der für jeden beliebigen Wert in der Variable zahl das | ||
+ | // richtige Ergebnis liefert! | ||
+ | double zahlGerundet = | ||
+ | println(zahlGerundet); | ||
+ | |||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | [[.loesungRunden: | ||
+ | |||
+ | |||
+ | |||
+ | ===== Zufallszahlen ===== | ||
+ | Die Methode Math.random() ermittelt bei jedem Aufruf eine neue Zufallszahl im Intervall $[0 \ldots 1[$: | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | for(int i = 1; i <= 5; i++){ | ||
+ | | ||
+ | } | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | ==== Ganzzahlige Zufallszahl aus der Menge $\{0; 1; 2; \ldots 98; 99\}$ ==== | ||
+ | Ganzzahlige Zufallszahlen aus der Menge $\{a, a+1, \ldots b-1, b\} (mit\ a, b\in \mathbb{N})$ erhält man mit der Methode '' | ||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | int zahl = Random.randint(0, | ||
+ | println(" | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | <WRAP center round tip 80%> | ||
+ | Viele Programmiersprachen bieten nur eine Methode wie '' | ||
+ | </ | ||
+ | |||
+ | ==== Rationale Zufallszahl aus der Menge $[a, b[$ ==== | ||
+ | ... erhältst Du mit der Methode '' | ||
+ | |||
+ | ==== Aufgabe 1: ==== | ||
+ | Schreibe ein Programm, das eine ganzzahlige Zufallszahl aus der Menge $\{5; 6; 7; \ldots 11; 12\}$ ausgibt, indem es die Methode '' | ||
+ | **[[.zufallszahlloesung: | ||
+ | |||
+ | ==== Aufgabe 2: ==== | ||
+ | Schreibe ein Programm, das den Benutzer auffordert, eine Zahl einzugeben und **ohne Benutzung der Klasse Math** die Wurzel dieser Zahl berechnet und ausgibt. | ||
+ | |||
+ | < | ||
+ | |||
+ | <div class=" | ||
+ | |||
+ | <script type=" | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | |||
+ | </ | ||
+ | \\ \\ | ||
+ | == Tipp: == | ||
+ | Verwende beispielsweise das [[https:// | ||
+ | \\ \\ | ||
+ | [[.loesungaufgabe2: |