Home > Informatik > Stufe EF > Folge 4 > Folge 4.3

Folge 4.3: Weitere Aufgaben zu Schleifen

Neben den while-Schleifen, wie wir sie in der Folge 4.2 kennengelernt haben, gibt es zwei weitere Schleifentypen in der Programmiersprache Java, die do-while-Schleifen und die for-Schleifen. Wir wollen uns zunächst mit den do-while-Schleifen beschäftigen.

do-while-Schleifen

Aufgabe 4.3-1

Betrachten Sie folgendes Flussdiagramm:

  1. Informieren Sie sich auf der Lexikon-Seite "do-while-Schleifen" über diesen neuen Schleifentyp und schauen Sie sich den zum Flussdiagramm zugehörigen Java-Quelltext an
  2. Erläutern Sie dann, in welchen Punkten sich do-while-Schleifen von normalen while-Schleifen unterscheiden.
  3. Begründen Sie auch, warum do-while-Schleifen manchmal vorteilhafter sein können als while-Schleifen.
  4. Erläutern Sie das farbige Syntaxdiagramm unten auf der Abbildung.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

do-while-Schleifen

In diesem Lexikon-Artikel finden Sie alle wichtigen Informationen zu den do-while-Schleifen.

weitere Aufgaben

Übung 4.3-2

In einer sondierenden Java-Methode

public int summe(int n)

soll die Summe der Zahlen 1, 2, 3, ... , n berechnet und als int-Wert zurück geliefert werden. Für n = 6 würde diese Methode zum Beispiel den Wert 1 + 2 + 3 + 4 + 5 + 6 = 21 zurück liefern.

Implementieren Sie diese Methode mit Hilfe einer do-while-Schleife.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

Übung 4.3-3

Nach einer alten Sage wurde der Erfinder des Schachspiels zum König gerufen, der ihn für seine Erfindung belohnen wollte. Auf die Frage, was er sich wünsche, antwortete der Schachspieler, dass der König ihm auf das erste Feld des Schachbretts 1 Reiskorn legen sollte, auf das zweite Feld 2 Körner, auf das dritte Feld 4 Körner, auf das vierte Feld wieder das Doppelte und so weiter.

Der König dachte: "Was für ein Dummkopf! Hätte er sich doch Gold gewünscht oder etwas anderes Schönes, aber nur Reiskörner?".

Schreiben Sie eine Methode, mit deren Hilfe Sie das oben geschilderte Vorgehen simulieren können.

public int felder(int reiskoerner)

Der Methode übergeben Sie als Parameter die Zahl der erwünschten Reiskörner, beispielsweise 10.000, und die Methode gibt die Zahl der Felder zurück, die der König mit Reiskörnern belegen muss, um die gewünscht Zahl zu erhalten. Die Berechnung muss mit Hilfe einer do-while-Schleife erfolgen.

Für eine gewünschte Zahl von 1.000 Reiskörnern sind 1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 Körner auf die Felder zu legen, benötigt werden also 9 Felder. Ein Schachbrett hat aber 8 x 8 = 64 Felder.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

Übung 4.3-4

Eine Fibonacci-Folge ist die Zahlenfolge

1, 1, 2, 3, 5, 8, 13, 21, 34, ...

Finden Sie die "Regel" oder "Formel" für diese Zahlenfolge heraus und geben Sie die nächsten zwei Zahlen dieser Folge an.

1. Schreiben Sie eine Methode

public int fib(int n)

welche Ihnen die n.te Fibonacci-Zahl zurückliefert. Mit dem Parameter n = 6 würden sie beispielsweise die Fibonacci-Zahl 8 erhalten. Verwenden Sie eine normale while-Schleife oder eine do-while-Schleife; Ihre Wahl!

2. Testen Sie diese Methode im Konstrukor, indem Sie fib(n) in einer while-Schleife für die Zahlen n=1 bis n=20 aufrufen.

3. Stellen Sie den Algorithmus, den Sie entwickelt haben, als Flussdiagramm graphisch dar.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

Übung 4.3-5

1. Schreiben Sie eine Java-Methode, die die Summe der folgenden Brüche berechnet:

1 + 1/2 + 1/3 + 1/4 + 1/5 + ...

public double bruchSumme(int n)

Für n=3 würden Sie zum Beispiel die Summe 1 + 1/2 + 1/3 = 1,833 erhalten. Verwenden Sie eine normale while-Schleife oder eine do-while-Schleife; Ihre Wahl!

2. Testen Sie diese Methode für die Zahlen von 1 bis 200, indem Sie die Methode in einer Schleife im Konstruktor aufrufen.

3. Testen Sie mit Hilfe der Methode, ob irgendwann, also bei sehr großen Zahlen für n, ein Grenzwert erreicht wird, oder ob die Summen kontinuierlich ansteigen, allerdings mit immer kleinerem Zuwachs.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

Übung 4.3-6

Betrachten Sie den folgenden Quelltext:

while (true)
{
   i++;
   if (i >= 100) break;
   x = x+i;
   if (x >= 150) break;
}
  1. Probieren Sie am Computer aus, ob der Quelltext funktioniert.
  2. Beschreiben Sie, unter welchen Bedingungen die Schleife terminiert (beendet wird).
  3. Erläutern Sie die Aufgabe des break-Befehls.
  4. Formulieren Sie einen alternative und gleichwertigen Quelltext, der ohne diesen break-Befehl auskommt.

Lösungsvorschlag (nur für Lehrpersonen, Zugangsdaten erforderlich)

Seitenanfang -