q1: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, ob der Ausdruck (Expression) true ist oder false. Im Falle true wird die Schleife noch einmal ausgeführt. Da die Prüfung am Ende stattfindet, wird die DO-WHILE-Schleife immer mindestens einmal ausgeführt.

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:

public void jButton1_ActionPerformed(ActionEvent evt)
  {
    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));
 

Aufgabe 1

      int n=0;
     do
     {
        n = n+1;
     }
     while(n<10);
int k=1;
     int n=1;
     do
     {
        k++;
        n = n*k;
     }
     while(k<4);
 
 int k = 0;
     while(k<5)
     {
        k++;
     }
     int n = 1;
     int k = 1;
     while(k<10)
     {
        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? Lösung

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, die innere die Teiler der Testzahl. Gehe mit folgenden Schritten vor:

  1. Überlege, was eingegeben und was ausgegeben wird.
  2. Spiele die Überlegungen für dich selbst mit Zahlen zwischen 100 und 110 durch.
  3. Erstelle ein Struktogramm.
  4. Erstelle das JAVA-Programm.
  5. Teste das Programm für die Obergrenze 110.
  6. Überlege, welche Verbesserungen möglich sind, damit die Suche schneller wird.

Lösung

  • /var/www/infowiki/data/pages/q1/weitere_schleifenarten.txt
  • Zuletzt geändert: 2017/07/11 15:32
  • von admin03