Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
e2:zusammenfassung_e1 [2017/07/11 15:30] – admin03 | e2:zusammenfassung_e1 [2017/07/11 15:30] (aktuell) – admin03 | ||
---|---|---|---|
Zeile 101: | Zeile 101: | ||
**jButton: | **jButton: | ||
Verwendete Methoden: brauchen wir vorläufig nicht! | Verwendete Methoden: brauchen wir vorläufig nicht! | ||
- | |||
- | ==== Weitere Schleifenarten ==== | ||
- | |||
- | Die Aufgabe 10 zu Ulams Folge aus dem Kapitel 8 ist nur ungünstig mit einer FOR-Schleife zu lösen. Es gibt zwei weitere Schleifenarten in JAVA, bei denen die Zahl der Durchläufe nicht bekannt sein muss. Sinnvoll ist hier eine DO-WHILE-Schleife oder eine WHILE-Schleife. | ||
- | Eine DO-WHILE-Schleife besitzt folgendes Syntax-Diagramm: | ||
- | {{ : | ||
- | Der Schleifenrumpf wird ausgeführt und dann wird überprüft, | ||
- | |||
- | Die WHILE-Schleife prüft ihre Bedingung bereits am Anfang und wird daher nicht zwangsläufig einmal ausgeführt: | ||
- | |||
- | {{ : | ||
- | |||
- | Wir programmieren die Aufgabe 10 zur Ulam-Folge aus dem Kapitel 8 noch einmal mit einer DO-WHILE-SCHLEIFE: | ||
- | <code JAVA> | ||
- | { | ||
- | long zahl = Long.parseLong(jTextField1.getText()); | ||
- | long zaehler = 0; | ||
- | // komplizierte Schleife: | ||
- | do | ||
- | { | ||
- | if (zahl % 2 == 0) | ||
- | zahl = zahl/2; | ||
- | else | ||
- | zahl = zahl*3 + 1; | ||
- | zaehler++; | ||
- | } | ||
- | while (zahl != 1) ; | ||
- | jTextField2.setText(Long.toString(zaehler)); | ||
- | </ | ||
- | |||
- | |||
- | ==== Aufgaben zu DO-WHILE- und WHILE-Schleifen ==== | ||
- | === Aufgabe 1 === | ||
- | <code Java> | ||
- | do | ||
- | { | ||
- | n = n+1; | ||
- | } | ||
- | | ||
- | </ | ||
- | <code Java>int k=1; | ||
- | int n=1; | ||
- | do | ||
- | { | ||
- | k++; | ||
- | n = n*k; | ||
- | } | ||
- | | ||
- | </ | ||
- | <code Java> int k = 0; | ||
- | | ||
- | { | ||
- | k++; | ||
- | } | ||
- | int n = 1; | ||
- | int k = 1; | ||
- | | ||
- | { | ||
- | n=n*2; | ||
- | k++; | ||
- | } | ||
- | </ | ||
- | === Aufgabe 2 === | ||
- | Löse die Strafarbeit des kleinen Gauß mit einer WHILE und einer DO-WHILE-Schleife. | ||
- | === Aufgabe 3 === | ||
- | Löse Ulams Folge mit einer WHILE-Schleife. Welchen Vorteil hat diese Lösung? | ||
- | === Aufgabe 4 === | ||
- | Die Weltbevölkerung betrug im Januar 2006 ca. 6,5 Milliarden Menschen. Sie wächst jedes Jahr um 1,8%. Bestimme mit einem Programm das Jahr, an dem eine eingebbare Obergrenze überschritten wird. Wie würdest du diese Aufgabe rechnerisch lösen? | ||
- | === Aufgabe 5 === | ||
- | Ein Käfer kriecht auf einen Halm, in dessen Mitte er sitzt, zufällig jede Minute 1 cm nach rechts oder 1 cm nach links mit gleicher Wahrscheinlichkeit. Schreibe eine Simulation, die prüft, nach wie viel Schritten der Käfer den rechten Rand des Halms 7cm von seinem Startpunkt entfernt erreicht. Solche Probleme bezeichnet man als „Irrfahrten“. | ||
- | === Aufgabe 6 === | ||
- | Schreibe ein Programm, das alle Primzahlen bis zu einer vorgegebenen Obergrenze sucht. Als Hilfe: es handelt sich hier um zwei geschachtelte Schleifen, wobei die äußere die Testzahlen durchläuft, | ||
- | - Überlege, was eingegeben und was ausgegeben wird. | ||
- | - Spiele die Überlegungen für dich selbst mit Zahlen zwischen 100 und 110 durch. | ||
- | - Erstelle ein Struktogramm. | ||
- | - Erstelle das JAVA-Programm. | ||
- | - Teste das Programm für die Obergrenze 110. | ||
- | - Überlege, welche Verbesserungen möglich sind, damit die Suche schneller wird. | ||
- | |||
- | |||
- | |||
- | |||
- | |||