i

Verschachtelte Schleifen

Bisher hast du gesehen, dass es mit Hilfe von Schleifen möglich ist, bestimmte Befehlsfolgen mehrfach ausführen zu lassen. In einer solchen Befehlsfolge kann sogar selbst wiederum eine Schleife enthalten sein.

Ein typisches Beispiel von zwei ineinander verschachtelten Schleifen lässt die Schildkröte ein zweidimensionales Punktraster zeichnen.

Es gibt eine äußere Schleife for i ... und eine innere Schleife for j ..., wobei die äußere Schleife die innere Schleife enthält, sowie eine große Schachtel eine kleinere Schachtel enthalten kann. In der äußeren Schleife wird die Variable i von 1 bis 9 hochgezählt. Für jeden Wert von i werden 4 Punkte übereinander gezeichnet. Das übernimmt die innere Schleife mit Variable j, innerhalb derer die Schildkröte zum richtigen Ort bewegt und der Punkt gezeichnet wird. Die Koordinaten des richtigen Ortes werden aus den Variablen i und j berechnet.

Abhängigkeiten der inneren von der äußeren Schleife

Im obigen Beispiel ist das Verhalten der inneren Schleife praktisch bei jedem Durchlauf der äußeren das gleiche — wenn man einmal von den unterschiedlichen Koordinaten im Befehl goto(i*20,j*20) absieht. Jedes Mal zeichnet die innere Schleife 5 Punkte.

Beim folgenden Programm hängt die Anzahl der Durchläufe der inneren Schleife — und damit die Anzahl der gezeichneten Punkte in der jeweiligen Spalte — vom Wert der Variablen i ab,

Aufgabe 1: Ausgabe mit print

Füge in die obigen Programme den Befehl print(i,j) jeweils vor goto(...) ein. Interpretiere die Ergebnisse.

Aufgabe 2: Routine statt Verschachtelung

Andreas mag Programme mit verschachtelten Schleifen nicht; er begründet:

"Die innere Schleife tut ja in der Regel etwas Bestimmtes, dann kann man die Schleife auch in eine Routine auslagern und ihr einen Namen geben, der dem Leser sagt, was die innere Schleife tut. In der äußeren Schleife ruft man dann einfach die Routine auf."

Ändere die beiden Programme oben so ab, dass jeweils die innere Schleife in eine Routine ausgelagert wird. Beschreibe auch, worin sich die beiden Routinen (außer der Befehlsfolge) unterscheiden.

Aufgabe 3: Namensschildern über- und nebeneinander

Bisher wurden ja nur mehrere Namensschilder übereinander gedruckt. Schreibe ein Programm zur Erstellung von Namensschildern, das drei Spalten von Namensschildern druckt, und so (bei einem möglichen Ausdrucken) Papier spart.

Aufgabe 4: Variables Raster von Namensschildern

Das Programm aus dre letzten Aufgabe könnte bei langen Namen wie "Klaus Günther Karl Georg" Probleme machen, weil keine drei Namensschilder nebeneinander passen.

Umgekehrt dürfte es beim Namen "Max" ruhig auch mehr Namensschilder nebeneinander geben.

Passe dein Programm so an, dass es die Anzahl der Spalten sinnvoll von der Länge des Namens abhängt.

Suche

v
100.102.4.3
dev.inf-schule.de/entwuerfe/python_online/wiederholungen/verschachtelte_schleifen
dev.inf-schule.de/100.102.4.3
dev.inf-schule.de/@/page/izfh9q4lu5w6KR3u

Rückmeldung geben