Zur Startseite×
Informatik 2019
Sekundarstufe I
 

 Suchen

Seite: cbaa_index
Diese Seite wurde aktualisiert am 15.07.2020

LOGIN
Benutzer:
Passwort:
 
Quelle: https://nwm2.net-schulbuch.de/index.php
Druckversion vom 18.05.2024 14:38 Uhr
Startseite Software erstellen Entscheidungen treffen Bedingte Wiederholung Einführung

Einführung zu bedingten Wiederholungen

 

Betrachte das nebenstehende Bild einer Spirale ganz genau.
Wie könnte diese Spirale entstanden sein?

Aufgabe 1:

Versuche ein „Kochrezept“ zum Zeichnen einer solchen Spirale aufzuschreiben. Nach deinem „Rezept“ soll auch jemand die Spirale zeichnen können, der dieses Bild nicht kennt.

 

Wir schlagen dir ein Experiment vor, dessen Beobachtung dich der Lösung näher bringt.

 Experiment

Vorbereitungen

Du benötigst zwei Stifte und einen dünnen Faden. Um den einen Stift wird der Faden mit einer losen Schlaufe gelegt. Am anderen Stift wird der Faden so stramm gebunden, dass sich der Stift nicht mehr im Faden drehen kann.

Durchführung

Du bittest deine Banknachbarin, den festgebundenen Stift in der Mitte eines Papierbogens (am besten recyclest du eine Zeitung)  unverrückbar festzuhalten. Mit dem anderen Stift fährst du über das Blatt, wobei die Schnur gespannt sein muss. Zeichne solange, bis sich das Band ganz aufgewickelt hat.

Wir übertragen jetzt das Experiment auf den Computer.

Wir wissen, dass die Kreise im Grafikfenster unseres Computers durch Vielecke angenähert werden. Wir verwenden ein 36-Eck. Das Aufwickeln der Schnur bewirkt eine Verkürzung des Radius. Für das 36-Eck bedeutet das, dass an jeder Ecke der Radius und damit die Seitenlänge ein klein wenig kürzer geworden ist. Folgende Anweisungen müssen wiederholt durchgeführt werden:

     Stift.vorbewegen (Seitenlänge)
     Stift.rechtsdrehen (10)
     Seitenlänge.verkürzen

Die Frage ist: Wann brechen wir diese Wiederholung ab? Offensichtlich doch dann, wenn die Seitenlänge fast Null ist, sagen wir einmal 0.1! Wir stellen dir eine Möglichkeiten vor, solche Wiederholungen in deinen Programmen zu organisieren.

   Seitenlänge := 25   
   SOLANGE Seitenlänge > 0.1 WIEDERHOLE
        Stift,vorbewegen (Seitenlänge)
        Stift.rechtsdrehen (10)
        Seitenlänge = Seitenlänge - 0.1
   ENDE WIEDERHOLE

In vielen Programmierumgebungen kann man die bedingte Wiederholung mit besonderen Schlüsselworten formulieren. Wir sprechen dann von einer iterativen Formulierung. In anderen Programmiersprachen werden bedingte Wiederholungen sehr elegant durch Selbtsaufrufe von Prozeduren realisiert. Man nennt das rekursive Formulierung.

PYTHON formuliert bedingte Wiederholungen mit dem Schlüsselwort WHILE. In LOGO verwendet man gern Selbstaufrufe, also die rekursive Schreibweise. Wegen des bedeutenden Unterschieds, stellen wir hier beide Versionen vor.

PYTHON LOGO
import turtle

turtle.mode ("logo")

Laenge = 25
while Laenge > 0.1:
     turtle.forward (Laenge)
     turtle.right (10)
     Laenge = Laenge - 0.1
   
turtle.exitonclick ()
PR Spiralabschnitt.zeigen :Länge
     WENN :Länge < 0.1 DANN RÜCKKEHR
     VORWÄRTS :Länge
     RECHTS 10
     Spiralabschnitt.zeigen :Länge - 0.1
ENDE

BILD
VOLLBILD
Spiralabschnitt.zeigen 25

Wir werden rekursive und iterative Formulierungen nebeneinander verwenden.

Beide Formen beschreiben dieselbe neue Art der Wiederholung. Für das Beenden der Wiederholung geben wir eine Abbruchbedingung an. Die Wiederholung heißt deshalb bedingte Wiederholung. Eine Anweisung innerhalb der zu wiederholenden Anweisungsliste muss eine Abbruchbedingung sein. Immer, wenn bei der Abarbeitung der Anweisungen die Abbruchbedingung erreicht ist, wird überprüft, ob sie erfüllt ist. Nur dann, wenn sie erfüllt ist, wird die Wiederholung sofort abgebrochen.

Es müssen nicht beide Formen in jeder Programmierumgebung möglich sein.

 

Aufgabe 2:

Übertrage eine der obigen Version, wie das in deiner Programmierumgebung möglich ist, und lasse sie mit verschiedenen Werten ausführen. 

Aufgabe 3:

Die abgebildete Spirale unterscheidet sich von der vorherigen. Die Länge, um die sich der Zeichenstift vorbewegt, verändert sich hier nicht um einen festen Betrag, sondern etwa so:

      Länge := Länge * 0.99

a) Implementiere für sie eine geeignete Prozedur.

b) Beschreibe den Unterschied zwischen den beiden Spiralen möglichst genau.

Aufgabe 4:

Du kannst die Spiralen aus den Aufgaben 2 und 3 auch „rückwärts“ entstehen lassen. Die Spirale entsteht dann von innen nach außen. Übertrage diesen Vorgang auf den Computer und verwende eine iterative oder rekursive Formulierung wie in Aufgabe 2.

Aufgabe 5:

Sowohl in PYTHON als auch in LOGO sind iterative und rekursive Lösungen möglich.

Wenn du die iterative Lösung implementiert hast, versuche jetzt eine rekursive Lösung.

Wenn du die rekursive Lösung implementiert hast, versuche jetzt eine iterative Lösung zu finden.

 

 

©2024 NET-SCHULBUCH.DE
09.30  0.1326  7.4.33