Benutzer-Werkzeuge

Webseiten-Werkzeuge


einstieg:weiteredatentypen:start

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
einstieg:weiteredatentypen:start [2020/10/20 14:43] – [Aufgabe: Ganzzahlige Zufallszahl aus der Menge $\{0; 1; 2; \ldots 98; 99\}$] Martin Pabsteinstieg:weiteredatentypen:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 3: Zeile 3:
 ===== float ===== ===== float =====
 <WRAP center round info 60%> <WRAP center round info 60%>
-Variablen vom Datentyp ''float'' können rationale Zahlen (näherungsweise) zu speichern. Die Bezeichnung dieses Datentyps ist eine Kurzform für "floating point number", auf Deutsch "Fließkommazahl" oder "Gleitkommazahl".+Variablen vom Datentyp ''float'' können rationale Zahlen (ggf. näherungsweise!) speichern. Die Bezeichnung dieses Datentyps ist eine Kurzform für "floating point number", auf Deutsch "Fließkommazahl" oder "Gleitkommazahl".
 </WRAP> </WRAP>
  
 Falls es Dich genauer interessiert, in welcher Form diese Zahlen gespeichert werden, findest Du in [[https://de.wikipedia.org/wiki/Gleitkommazahl|Wikipedia eine gute Darstellung]]. Schön anschaulich ist auch [[https://www.youtube.com/watch?v=gc1Nl3mmCuY|dieses Video]]. \\ \\  Falls es Dich genauer interessiert, in welcher Form diese Zahlen gespeichert werden, findest Du in [[https://de.wikipedia.org/wiki/Gleitkommazahl|Wikipedia eine gute Darstellung]]. Schön anschaulich ist auch [[https://www.youtube.com/watch?v=gc1Nl3mmCuY|dieses Video]]. \\ \\ 
-Führe das folgende Beispielprogramm in Einzelschritten aus und schau' Dir den dabei den Inhalt des Reiters "Variablen" auf der rechten Seite an!+Führe das folgende Beispielprogramm in Einzelschritten aus und schau' Dir dabei den Inhalt des Reiters "Variablen" auf der rechten Seite an!
 <HTML> <HTML>
  
Zeile 27: Zeile 27:
 ''float''-Werte in **Java** entsprechen Dezimalzahlen mit ungefähr 7 gültigen Ziffern und verbrauchen jeweils 4 Byte Speicherplatz. Da es nur endlich viele ($2^{32}$) verschiedene ''float''-Werte gibt, decken sie nur einen kleinen Teil aller (unendlich vielen!) rationalen Zahlen ab, und auch diesen nicht gleichmäßig: Die durch ''float''-Werte exakt darstellbaren Zahlen liegen um die Zahl 0 herum am dichtesten. Ihre Dichte nimmt sowohl in positiver als auch in negativer Richtung von 0 an immer weiter ab, siehe [[https://upload.wikimedia.org/wikipedia/commons/8/8f/Exakt_darstellbare_Gleitkommazahlen.png|hier]]. \\ \\  ''float''-Werte in **Java** entsprechen Dezimalzahlen mit ungefähr 7 gültigen Ziffern und verbrauchen jeweils 4 Byte Speicherplatz. Da es nur endlich viele ($2^{32}$) verschiedene ''float''-Werte gibt, decken sie nur einen kleinen Teil aller (unendlich vielen!) rationalen Zahlen ab, und auch diesen nicht gleichmäßig: Die durch ''float''-Werte exakt darstellbaren Zahlen liegen um die Zahl 0 herum am dichtesten. Ihre Dichte nimmt sowohl in positiver als auch in negativer Richtung von 0 an immer weiter ab, siehe [[https://upload.wikimedia.org/wikipedia/commons/8/8f/Exakt_darstellbare_Gleitkommazahlen.png|hier]]. \\ \\ 
 **Besonderheit von LearnJ:** **Besonderheit von LearnJ:**
-Die Programmiersprache auf dieser Website speichert''float''-Werte intern als ''double''-Werte (siehe unten), rechnet also immer mit doppelter Genauigkeit (ca. 14 gültige Ziffern). Die Ursache dafür liegt im Browser, in dem Du diese Website betrachtest. Er kennt nur einen einzigen Datentyp für Zahlen, der von der Genauigkeit her den ''double''-Werten in Java entspricht.+Die Programmiersprache auf dieser Website speichert''float''-Werte intern als ''double''-Werte (siehe unten), rechnet also immer mit doppelter Genauigkeit (ca. 14 gültige Ziffern). Die Ursache dafür liegt im Browser, mit dem Du diese Website betrachtest. Er kennt nur einen einzigen Datentyp für Zahlen, der von der Genauigkeit her den ''double''-Werten in Java entspricht.
 </WRAP> </WRAP>
  
Zeile 90: Zeile 90:
  
 for(int i = 0; i < 6; i++){ for(int i = 0; i < 6; i++){
-   println("Kaptital nach " + i + " Jahren: " + kapital);+   println("Kapital nach " + i + " Jahren: " + kapital);
    kapital = kapital + kapital * zinssatzInProzent/100;    kapital = kapital + kapital * zinssatzInProzent/100;
 } }
Zeile 199: Zeile 199:
 </HTML> </HTML>
  \\ \\   \\ \\ 
-==== Aufgabe: Ganzzahlige Zufallszahl aus der Menge $\{0; 1; 2; \ldots 98; 99\}$ ====+==== 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 ''Random.randint(a, b)''.
 <HTML> <HTML>
  
Zeile 205: Zeile 206:
  
 <script type="text/plain" title="Test1.java"> <script type="text/plain" title="Test1.java">
-int zahl = Math.floor(Math.random()*100); +int zahl = Random.randint(0, 99); 
-println("Zufallszahl: " + zahl); +println("Zufallszahl: " + zahl);</script>
-</script>+
  
 </div> </div>
  
 </HTML> </HTML>
- \\ \\  +<WRAP center round tip 80%> 
-Starte das Programm mehrmals hintereinander, um verschiedene Zufallszahlen zu sehen. +Viele Programmiersprachen bieten nur eine Methode wie ''Math.random()'', die Zufallszahlen aus dem Intervall $[0,1[$ zurückliefertWie man mit ihrer Hilfe ganze Zufallszahlen aus einer Menge $\{a, a+1, \ldots b-1, b\} (mit\ a, b\in \mathbb{N})$ berechnet, [[.zufallszahlloesung:start|erkläre ich Dir hier an einer Beispielaufgabe.]] 
-== Erklärung == +</WRAP> 
-  - Math.random() ergibt eine rationale Zahl aus dem Intervall $[0 \ldots 1[$. +  
-  - Math.random() * 100 ergibt eine rationale Zahl aus dem Intervall $[0 \ldots 100[$. +==== Rationale Zufallszahl aus der Menge $[a, b[$ ==== 
-  Math.floor() macht aus allen Zahlen aus dem Intervall $[0 \ldots 1[$ die 0aus allen Zahlen aus dem Intervall $[1 \ldots 2[$ die 1, ..., und aus allen Zahlen aus dem Intervall $[99 \ldots 100[$ die 99\\ \\  +..erhältst Du mit der Methode ''Random.randdouble(ab)''.
-Falls es Dir schwerfälltdiese Erklärung zu verstehen, schauDir die Lösung der folgenden Aufgabe an, sie erklärt das Vorgehen anhand anschaulicher Grafiken!+
  
 ==== Aufgabe 1: ==== ==== Aufgabe 1: ====
-Schreibe ein Programm, das eine ganzzahlige Zufallszahl aus der Menge $\{5; 6; 7; \ldots 11; 12\}$ ausgibt! \\ \\ +Schreibe ein Programm, das eine ganzzahlige Zufallszahl aus der Menge $\{5; 6; 7; \ldots 11; 12\}$ ausgibt, indem es die Methode ''Math.random()'' verwendet und daraus geeignete Zufallszahlen berechnet! \\ \\ 
 **[[.zufallszahlloesung:start|Lösung mit ausführlicher Erklärung]]** **[[.zufallszahlloesung:start|Lösung mit ausführlicher Erklärung]]**
  
einstieg/weiteredatentypen/start.1603197808.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki