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/13 13:12] – [Zufallszahlen] Martin Pabsteinstieg:weiteredatentypen:start [2021/12/29 11:29] (aktuell) – Externe Bearbeitung 127.0.0.1
Zeile 1: Zeile 1:
-<WRAP center round todo 60%> 
-Diese Seite ist noch eine Baustelle! 
-</WRAP>  
- 
 ====== Die Datentypen float, double ====== ====== Die Datentypen float, double ======
 Wir haben bisher nur den Datentyp ''int'' zum Speichern von ganzzahligen Werten kennengelernt. Es wird Zeit, dass wir auch andersartige Daten speichern können!  Wir haben bisher nur den Datentyp ''int'' zum Speichern von ganzzahligen Werten kennengelernt. Es wird Zeit, dass wir auch andersartige Daten speichern können! 
 ===== 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 31: 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 94: 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 203: 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 209: 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 0, aus 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)''.
  
 ==== 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]]**
  
Zeile 244: Zeile 240:
 == Tipp: == == Tipp: ==
 Verwende beispielsweise das [[https://de.wikipedia.org/wiki/Heron-Verfahren#Geometrische_Veranschaulichung_des_Heron-Verfahrens|Heron-Verfahren]] ([[https://www.youtube.com/watch?v=-wEJzyHB5us|hier ein Video]]) oder [[https://www.youtube.com/watch?v=Pcnb-IkkrXM|Intervallschachtelung]]. Verwende beispielsweise das [[https://de.wikipedia.org/wiki/Heron-Verfahren#Geometrische_Veranschaulichung_des_Heron-Verfahrens|Heron-Verfahren]] ([[https://www.youtube.com/watch?v=-wEJzyHB5us|hier ein Video]]) oder [[https://www.youtube.com/watch?v=Pcnb-IkkrXM|Intervallschachtelung]].
 + \\ \\ 
 +[[.loesungaufgabe2:start|Hier geht's zur Lösung.]]
einstieg/weiteredatentypen/start.1602587568.txt.gz · Zuletzt geändert: 2021/12/29 11:29 (Externe Bearbeitung)

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki