30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis...

Post on 06-Apr-2015

108 views 2 download

Transcript of 30.03.20151Schleifen. Rosette 2 Ziel Strategie gehe zur Mitte bewege den Stift um 100 zeichne Kreis...

11.04.23 1

SchleifenSchleifen

RosetteRosette

11.04.23 2

Ziel

Strategie

gehe zur Mittebewege den Stift um 100zeichne Kreis mit Radius 100

drehe die Blickrichtung um 60

gehe zur Mittebewege den Stift um 100zeichne Kreis mit Radius 100

Programmieren durch Programmieren durch KopierenKopieren

11.04.23 3

Analyse mit dem Analyse mit dem DebuggerDebugger

11.04.23 4

Haltepunkt setzen

Attributwerte des Stifts ausgeben

schrittweise abarbeiten

Wiederholung steuernWiederholung steuern

11.04.23 5

pen.bewegeBis(300, 300); pen.bewegeUm(100); pen.zeichneKreis(100);

pen.dreheUm(60);

Die Befehle müssen wiederholt werden,Bis die Blickrichtung des Stiftes 360 ist.

do-while-Schleifedo-while-Schleife

11.04.23 6

VariationenVariationen

11.04.23 7

Wie muss der Quelltext verändert werden,damit die nebenstehende Figur entsteht?

while-Schleifewhile-Schleife

11.04.23 8

SchleifenSchleifen

11.04.23 9

Um einen bestimmten Teil des Programms mehrfach auszuführen, werden Schleifen verwendet:•Sie können variabel festlegen, wie oft oder bis zum Eintreffen welcher Bedingung die Schleife durchlaufen werden soll.•Durch Verwendung von Schleifen wird Programmcode gespart.

Aufbau einer SchleifeAufbau einer Schleife

11.04.23 10

Eine Schleife besteht aus einer Schleifensteuerung und dem Schleifenrumpf.

SchleifensteuerungEntscheidet, ob oder wie oft die Anweisungen im Schleifenrumpf wiederholt werden sollen.

Schleifenrumpf:Er umfasst die Anweisungen, die wiederholt werden sollen.

SteuerungsartenSteuerungsarten

11.04.23 11

Schleifensteuerung

Schleifenrumpf

Schleifensteuerung

Schleifenrumpf

kopfgesteuerte Schleife u. fußgesteuerte Schleife

Kopfgesteuerte SchleifeKopfgesteuerte Schleife

11.04.23 12

Schleifensteuerung

Schleifenrumpf

• Die Prüfung, ob die Anweisungen im Schleifenrumpf ausgeführt werden, erfolgt gleich zu Beginn.

• Ist das Kriterium erfüllt, wird der Schleifenrumpf durchlaufen und anschließend erfolgt erneut eine Prüfung.

• Falls das Kriterium bereits zu Beginn nicht erfüllt ist, wird der Schleifenrumpf gar nicht ausgeführt.

Fußgesteuerte SchleifeFußgesteuerte Schleife

11.04.23 13

Schleifensteuerung

Schleifenrumpf

• Zuerst werden die Anweisungen des Schleifenrumpfs ausgeführt.

• Dann erfolgt die Prüfung, ob ein weiterer Durchlauf erfolgen soll.

• Der Schleifenrumpf wird also immer mindestens einmal ausgeführt.

while-Schleifewhile-Schleife

11.04.23 14

while (Bedingung) { // Anweisungen}

In den runden Klammern steht eine Bedingung, die den Wert true (wahr) oder false (falsch) liefern muss.Der Schleifenrumpf wird durch geschweifte Klammern festgelegt.

Ist die Bedingung erfüllt (true), werden die Anweisungen im Schleifenblock ausgeführt und anschließend wird erneut die Bedingung geprüft.

Ist die Bedingung nicht erfüllt (false), wird der Schleifenkörper übersprungen und das Programm nach der while-Anweisung fortgesetzt.

Die Schleife ist kopfgesteuert.

VergleichsoperatorenVergleichsoperatoren

11.04.23 15

==überprüft zwei Ausdrücke auf Gleichheit!=überprüft zwei Ausdrücke auf Ungleichheit>liefert true, wenn der erste Ausdruck größer als der zweite ist<liefert true, wenn der erste Ausdruck kleiner als der zweite ist>=liefert true, wenn de erste Ausdruck größer als der zweite ist oder gleich dem zweiten ist<=liefert true, wenn der erste Ausdruck kleiner als der zweite ist oder gleich dem zweiten ist

do-while-Schleifedo-while-Schleife

11.04.23 16

do {// Anweisungen} while (Bedingung)

Hinter dem Schlüsselwort do steht der Schleifenrumpf in geschweiften Klammern. Hinter dem Schleifenrumpf steht das Schlüsselwort while und in runden Klammern, die Bedingung, die die Schleife steuert.

Der Schleifenrumpf wird mindestens einmal ausgeführt.

Ist die Bedingung true, wird der Schleifenkörper erneut ausgeführt.

Ist die Bedingung nicht erfüllt (false), wird die do-while-Anweisung beendet und das Programm fortgesetzt.

PolygonPolygon

11.04.23 17

1. int maximalLaenge = 400;2. int ablenkWinkel = 90; 3. int zuwachs = 9;

Bei der nebenstehenden Figur sind folgende Werte gewählt worden:

Testen Sie auch folgende Werte:

400 400 200 400

90 154 60 165

9 2 1 1

SternStern

11.04.23 18

AnalyseAnalyse

11.04.23 19

Durch die Befehle in den Zeilen 23 bis 29 wird eine Raute gezeichnet.

Der Befehl in Zeile sorgt für die passende Startposition für die nächste Raute.

Die Schleife wird durch die Zählung der Rauten gesteuert.i gibt die Nummer der Raute an, die gerade gezeichnet wird.

for-Schleifefor-Schleife

11.04.23 20

for-Anweisungfor-Anweisung

11.04.23 21

Die for-Anweisung zeichnet sich durch eine kompakte Schreibweise aus und wird häufig verwendet, wenn die Anzahl der Schleifendurchläufe zuvor bereits bekannt ist.

Die for-Schleife ist eine kopfgesteuerte Schleife.

Jede for-Schleife lässt sich auch durch eine while-Schleife formulieren.

Aufbau einer Aufbau einer for-Anweisungfor-Anweisung

11.04.23 22

for (Initialisierungsteil; Bedingungsteil; Aktualisierungsteil) { // Anweisungen}

InitialisierungsteilEine Variable, die als Zähler dienen soll, wird definiert und initialisiert.

BedingungsteilEs wird eine Bedingung wie bei einer while-Anweisung formuliert.

AktualisierungsteilHier kann angegeben werden, wie sich der Wert der Zählvariablen nach jedem Schleifendurchlauf verändert.

DeckchenDeckchen

11.04.23 23

TeilfigurenTeilfiguren

11.04.23 24

Bei jeder Teilfigur werden sieben Kreise gezeichnet.

Der Radius wird von innen nach außen größer.

Zwei benachbarte Kreise durchdringen sich.

Implementieren Sie den Zeichner mit Hilfe zweier ineinander geschachtelter Schleifen. Untersuchen Sie mit Hilfe des Debuggers den Gültigkeitsbereich der lokalen Variablen.

DebuggerDebugger

11.04.23 25

Ein Debugger ist ein Softwarewerkzeug , mit dem man eine kontrollierte Ausführung eines Quelltextes durchführen kann.

Haltepunkt setzen

schrittweise durchlaufen

Wertekontrollieren

SchachbrettSchachbrett

11.04.23 26

Jede Zeile besteht aus acht Quadraten.

Insgesamt gibt es acht Zeilen.

Es werden abwechselnd schwarze und weiße Quadrate gezeichnet.

KontrollstrukturenKontrollstrukturen

11.04.23 27

if-Anweisungenif-Anweisungen

11.04.23 28

Bei vielen Problemstellungen ist die Verarbeitung von Anweisungen von Bedingungen abhängig.

Nur wenn die Bedingung erfüllt ist, wird die betreffende Anweisung (oder der Anweisungsblock) ausgeführt. Andernfalls wird die Anweisung übersprungen.

Für die Steuerung eines solchen Programmablaufs stellt Java die einseitige if-Anweisung zur Verfügung.

if (Bedingung) { // Anweisungen}

if-else-Anweisungenif-else-Anweisungen

11.04.23 29

Bei if-else-Anweisung werden bestimmte Anweisungen durchgeführt, falls die Bedingung erfüllt ist.

Falls die Bedingung nicht erfüllt ist, werden andere Bedingungen durchgeführt.

Da hier bei beiden Fällen alternative Anwendungen ausgeführt werden, wird die if-else-Anweisung auch als zweiseitige if-Anweisung bezeichnet.

if (Bedingung) { // Anweisungen} else { // Anweisungen}

if-Anweisungif-Anweisung

11.04.23 30

Die Bedingung steht in runden Klammern hinter dem Schlüsselwort if.Falls die Bedingung erfüllt ist, wird der erste Anweisungsblock abgearbeitet, andernfalls wird der zweite Anweisungsblock abgearbeitet.

KontrollstrukturenKontrollstrukturen

11.04.23 31

Der Oberbegriff für Schleifen und Verzweigungen ist Kontrollstruktur.