31
Robot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es vornehmer "Problemlösen mit Hilfe von Algorithmen") im Vordergrund. Als Entwicklungsumgebung für unsere Programme verwenden wir "Robot Karol". Mit Hilfe eigener Anweisungen kann hier ein virtueller kleiner Roboter über den Bildschirm gesteuert werden. Dabei kann er Mauern aus Ziegeln legen oder entfernen bzw. Markierungen längs seines Weges legen oder entfernen. Robot Karol ist eine speziell für SchülerInnen entwickelte einfache Entwicklungsumgebung und ist unter folgender Internetadresse frei verfügbar: www.schule.bayern.de/karol/ Einordnung in den Lernbereich Gegenstand des Lernbereichs ist das Steuern und Regeln von technischen, biologischen und chemischen Anlagen und Prozessen. Schematisch lassen sich solche Vorgänge mit Hilfe eines Regelkreises darstellen (s. Abbildung). In unserem Fall ist die zu steuernde Anlage unser kleiner, virtueller Miniroboter Karol. Er ist in der Lage über Sensoren Signale aus seiner Umwelt aufzunehmen (z.B. "Stehe ich vor einer Wand?" oder "Liegt vor mir ein Ziegel?"). Die aufgenommenen Signale verarbeitet Karol mit Hilfe so genannter Algorithmen, die ihm der Programmierer eingibt. Im Ergebnis der Abarbeitung dieser Anweisungen ermittelt Karol wie er sich im weiteren Verlauf verhalten und auf die Signale aus seiner Umwelt reagieren soll. Über seine Aktoren (Hände und Füße) setzt Karol die Anweisungen in die Praxis um, indem er durch seine Welt läuft und dabei Ziegel und Markierungen legt oder entfernt. Karol ist also ein sehr schönes Beispiel für einen Regelkreis. Unsere Aufgabe wird es sein Anweisungen zu schreiben, wie Karol auf Signale aus seiner Umwelt reagieren und entsprechend handeln soll. Die Oberfläche der Entwicklungsumgebung Robot Karol - Einführung http://www.mirko-hans.de/info/profil/nawi/algo/einfuehrung_robot_kar... 1 von 3 11.09.2011 10:08

Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Embed Size (px)

Citation preview

Page 1: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Robot Karol - Einführung

Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es vornehmer"Problemlösen mit Hilfe von Algorithmen") im Vordergrund. Als Entwicklungsumgebung für unsere Programme verwendenwir "Robot Karol". Mit Hilfe eigener Anweisungen kann hier ein virtueller kleiner Roboter über den Bildschirm gesteuertwerden. Dabei kann er Mauern aus Ziegeln legen oder entfernen bzw. Markierungen längs seines Weges legen oder entfernen.

Robot Karol ist eine speziell für SchülerInnen entwickelte einfache Entwicklungsumgebung und ist unter folgenderInternetadresse frei verfügbar: www.schule.bayern.de/karol/

Einordnung in den Lernbereich

Gegenstand des Lernbereichs ist das Steuern und Regeln von technischen,biologischen und chemischen Anlagen und Prozessen. Schematisch lassen sichsolche Vorgänge mit Hilfe eines Regelkreises darstellen (s. Abbildung).

In unserem Fall ist die zu steuernde Anlage unser kleiner, virtueller Miniroboter Karol. Er ist in der Lage über Sensoren Signaleaus seiner Umwelt aufzunehmen (z.B. "Stehe ich vor einer Wand?" oder "Liegt vor mir ein Ziegel?"). Die aufgenommenenSignale verarbeitet Karol mit Hilfe so genannter Algorithmen, die ihm der Programmierer eingibt. Im Ergebnis der Abarbeitungdieser Anweisungen ermittelt Karol wie er sich im weiteren Verlauf verhalten und auf die Signale aus seiner Umwelt reagierensoll. Über seine Aktoren (Hände und Füße) setzt Karol die Anweisungen in die Praxis um, indem er durch seine Welt läuft unddabei Ziegel und Markierungen legt oder entfernt.

Karol ist also ein sehr schönes Beispiel für einen Regelkreis. Unsere Aufgabe wird es sein Anweisungen zu schreiben, wieKarol auf Signale aus seiner Umwelt reagieren und entsprechend handeln soll.

Die Oberfläche der Entwicklungsumgebung

Robot Karol - Einführung http://www.mirko-hans.de/info/profil/nawi/algo/einfuehrung_robot_kar...

1 von 3 11.09.2011 10:08

Page 2: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Der Bildschirm von Karol ist viergeteilt (siehe Abbildung oben).

Oben links: Mit einem Rechtsklick in das Programmfenster (Eingabe, Programmtest) können alle verfügbaren Befehleund Strukturen angezeigt und gewählt werden. Natürlich können die Anweisungen auch "von Hand" geschrieben werden.Die Abarbeitung der Anweisungen durch das Programm erfolgt von links nach rechts und von oben nach unten.Oben rechts: Die Welt von Karol (steuerbar durch Tastatur, Maus oder Programm) veranschaulicht den Programmablauf.Unten links: Das Anweisungsfenster zeigt alle zur Verfügung stehenden Befehle und Strukturen zum Programmieren.Aus diesem Grund ist es nicht nötig, die Befehle auswendig zu lernen.In der Mitte: Die Symbolleiste dient zum Speichern, Öffnen, Ausführen und Testen von Programmen.Unten rechts: Hinweise und Meldungen (Programmname, Name der Welt oder eventuelle Fehlermeldungen während desProgrammablaufs) werden im rechten unteren Teilfenster angezeigt.

Nützliche Programmierhinweise

Programmcode wird bereits während der Eingabe auf Korrektheit überprüft. Bei korrekt erkannter Schreibweise werdenKontrollstrukturen schwarz, vordefinierte Bedingungen und Anweisungen blau dargestelltKommentare für den Programmierer beginnen mit // und dienen der übersichtlichen Gestaltung. Kommentare übermehrere Zeilen müssen in geschweifte Klammern {...} gesetzt werden.Eingerückte Zeilen demonstrieren deren logische Zusammengehörigkeit. Besonders wichtig ist dies bei komplexerenAnweisungen.Will man eine bestimmte vordefinierte Welt zu einem bestimmten Programm gleich mit öffnen, muss die Welt vorherper Hand aufgebaut und im gleichen Ordner unter dem gleichen Namen wie das Programm gespeichert werden.

Die Konfiguration von Karol

Karol lässt sich über das Menü Einstellungen -> Karol konfigurieren.

Aufgabe: Konfigurieren Sie Karol so, dass er folgende Eigenschaften erfüllt:

Karol soll überprüfen können, wie viele Ziegel er bei sich trägt. Er soll maximal 10 Ziegel tragen können und aktuell 3Ziegel tragen.Karol soll maximal einen Ziegel überspringen können.Bei einem Programmfehler bricht das Programm ab.

Steuern von Karol im Direktmodus (Handsteuermodus)

Über die Symbolleiste in der Mitte der Oberfläche erreicht man die Steuerbefehle für Robot Karol. Die Sensoren sind imDirektmodus nicht verfügbar.

Aufgabe: Bewegen Sie Robot Karol durch seine Welt und lassen Sie ihn verschiedene Aktionen ausführen. Überprüfen Sie auchsein Verhalten bei folgenden Aktionen:

6 Ziegel übereinander stapeln,einen Ziegel auf eine Marke legen,auf verschiedene und von verschiedenen Stufen einer Treppe springen.

Ein erstes Beispielprogramm: Robot Karol holt Material

Robot Karol - Einführung http://www.mirko-hans.de/info/profil/nawi/algo/einfuehrung_robot_kar...

2 von 3 11.09.2011 10:08

Page 3: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Aufgabe: Karol will einen Stapel aus drei Ziegeln bearbeiten. Dazu muss er ihn erst holen (s. Abbildung). Schreiben Sie eineinfaches Programm für dieses Problem!

Ausgangssituation Endzustand

Hinweise:

Die Ausgangssituation (siehe linkes Bild) müssen Sie zunächst im Direktmodus erzeugen. Speichern Sie danach dieerzeugte Welt ab.Das Programm sollte wegen der besseren Lesbarkeit in die Anweisungen Programm ... *Programmeingeschlossen werden.

Theoretischer Exkurs: Wiederholung Algorithmen

Die Steuerung von Karol erfolgt durch die Angabe einer Folge von Anweisungen, die vom Programmierer erstellt undanschließend vom Roboter abgearbeitet werden. Eine solche Folge von Anweisungen, die so formuliert sind, dass sie voneiner automatisch arbeitenden Maschine abgearbeitet werden können nennt man einen Algorithmus. Der NameAlgorithmus geht zurück auf den arabischen Mathematiker Al-Chwarizmi, der in seinem Mathematiklehrbuch eine Reihevon Rechenverfahren zur Lösung mathematischer Probleme beschrieb. In der lateinischen Übersetzung wurde ausAl-Chwarizmi Al-gorismus und später Algorithmus.Mit Algorithmen haben Sie sich schon im Informatikunterricht der Klasse 8 beschäftigt.Aufgabe: Wiederholen Sie hierzu im LB Informatische Grundbildung auf den Seiten 10 bis 13 die Definition,Eigenschaften und Darstellungsmöglichkeiten von Algorithmen!

Robot Karol - Einführung http://www.mirko-hans.de/info/profil/nawi/algo/einfuehrung_robot_kar...

3 von 3 11.09.2011 10:08

Page 4: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Einfache Sequenzen

Damit Karol sich bewegt oder andere Tätigkeiten ausführt, muss man ihmentsprechende Anweisungen (oder auch Befehle) geben. Karol wird die entsprechendenAnweisungen dann in die Tat umsetzen.

Übung 1

Karol soll eine gerade Reihe von 5 Ziegelsteinen legen. Das Ergebnis der Abarbeitungdes Programms ist in der linken Abbildung dargestellt. Wegen der besserenÜbersichtlichkeit ist das Ergebnis der Aufgabe auch noch einmal im 2D-Modus zusehen. Überlegen Sie, welche Anweisungen nacheinander für die Lösung der Aufgabenotwendig sind! Schreiben und testen Sie das Programm!

Zur Lösung der Übung 1 muss Karol mehrere Anweisungen nacheinander abarbeiten.Eine Folge solcher nacheinander auszuführender Anweisungen heißt Sequenz.

Eine Folge von Anweisungen, die hintereinander ausgeführt werden, heißtSequenz (Folge). Im speziellen Fall kann eine Sequenz auch aus keiner oder einerAnweisung bestehen.

Übung 2

Schreiben Sie ein Programm, in dem Karol eine Reihe von Ziegelsteinen im Zickzacklegt (siehe Abbildungen)!

Einfache Sequenzen

1 von 3

Page 5: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Übung 3

Ändern Sie Ihr Programm aus Übung 2 so ab, dass Karol die Ziegelsteine über Eck legt(siehe Abbildungen)!

Theoretischer Exkurs: Übersetzer (Compiler und Interpreter)

Wie arbeitet der Computer eigentlich das Programm ab? Es ist kaum zu glauben, dassder Computer Anweisungen wie Schritt oder Hinlegen versteht. Deshalb muss einComputerprogramm vor seiner Abarbeitung erst in so genannte Maschinensprache (eineFolge von Nullen und Einsen, d.h. es fließt Strom (entspricht einer Eins) oder es fließtkein Strom (entspricht einer Null)) übersetzt werden.

Arbeiten Sie den folgenden Abschnitt durch und lösen Sie die folgenden Aufgaben:

Erläutern Sie die Vorgehensweise eines Compilers bzw. Interpreters beimÜbersetzen des Quellcodes in Maschinensprache!Vergleichen Sie die Tätigkeit dieser maschinellen Übersetzer mit der einesmenschlichen Dolmetschers bzw. eines Übersetzers!Überlegen Sie, ob Karol einen Interpreter oder einen Compiler zum Übersetzendes Quellcodes verwendet!

Übersetzung des Programms:

Bevor ein Programm ausgeführt werden kann, muss der Quellcode noch inMaschinensprache übersetzt werden. Hier unterscheidet man zwei Möglichkeiten:

Einfache Sequenzen

2 von 3

Page 6: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Ein Compiler überträgt zuerst den gesamten Quellcode von derProgrammiersprache in ein für den Computer ausführbaresMaschinenprogramm. Erst nach Abschluss des gesamtenÜbersetzungsvorganges kann das Programm ausgeführt werden. Nach derÜbersetzung des Quellcodes liegt ein ausführbares Programm vor (z.B.*.exe), so dass der Übersetzungsvorgang später nicht noch einmalwiederholt werden muss.Ein Interpreter überträgt den Quellcode schrittweise, Anweisung fürAnweisung, in die Zielsprache und führt die Anweisung anschließend sofortaus. Dieser Vorgang muss bei jeder Ausführung des Programms wiederholtwerden.

Übung 4

Lassen Sie Karol Ihre Initialen (d.h. die Anfangsbuchstaben Ihres Vor- undNachnamens) legen!

Einfache Sequenzen

3 von 3

Page 7: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Karol aus objektorientierter Sicht

Objektorientierte Programmierung - ein wenig Theorie

Seit etwa 1990 hat sich in der Informatik das Prinzip der Objektorientierungdurchgesetzt. Dabei werden real existierende Objekte durch Datenstrukturen imComputer nachgebildet. Diese werden mit bestimmten Eigenschaften und Fähigkeitenversehen. Das folgende Beispiel aus der Textverarbeitung soll zeigen, dass dieseHerangehensweise an das Verarbeiten von Daten nicht nur auf die Programmierungbezogen ist, sondern eine in allen Bereichen der Informatik gängige Methode ist.

Die Klasse "Zeichen" der Textverarbeitung

Eigenschaften Schriftstil Schriftart Schriftgröße Schriftposition Schriftfarbe

Eigenschaftswertefett,unterstrichen,...

Arial,TimesNewRoman,...

8 Punkt, 12Punkt, ...

hochgestellt,tiefgestellt, ...

schwarz,rot, ...

Methoden Loeschen(), Kopieren(), Einfuegen()

Wie man sieht ist jedes Objekt einer Klasse durch entsprechende Eigenschaften undEigenschaftswerte gekennzeichnet. Um eine Eigenschaft eines Objekts zu ändernbraucht man bestimmte Methoden. Damit das Objekt eine seiner Eigenschaften ändertmuss es eine Botschaft erhalten, die einer seiner Methoden entspricht.

In der folgenden Tabelle werden die soeben genannten Begriffe noch etwasausführlicher erläutert. Die Erläuterung bezieht sich nun weniger aufStandardanwendungen sondern mehr auf das objektorientierte Programmieren (OOP).

Fachbegriff Erläuterung

Klassebezeichnet alle Objekte, welche die gleiche Struktur unddie gleichen Methoden besitzen ("Bauplan" für dieObjekte)

ObjektExemplar einer Klasse; Objekte der selben Klasse habendie gleichen Eigenschaften; grundlegende Bestandteileeiner Anwendung

Eigenschaft Merkmale der Objekte

Eigenschaftswertmögliche Merkmalsausprägungen der jeweiligenEigenschaft

Methodeverändert die Eigenschaften eines Objektes bzw. gibtAuskunft über die momentanen Eigenschaften desObjektes

Karol aus objektorientierter Sicht

1 von 3

Page 8: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Botschaft,Nachricht

dient der Kommunikation zwischen verschiedenenObjekten; ruft Methoden auf, welche die Eigenschaftenvon Objekten verändern

Übung 1

Öffnen Sie die auf Ihrem Computer installierte Tabellenkalkulation und notierenSie die dort vorhandenen Klassen!Legen Sie in Ihrem Hefter eine Tabelle wie die obige zur Klasse Zeichen in derTextverarbeitung an und notieren Sie dort für eine Klasse der Tabellenkalkulationeinige mögliche Eigenschaften, Eigenschaftswerte und Methoden!

Übung 2

Öffnen Sie ein auf Ihrem Computer installiertes Grafikprogramm (z.B. Paint) undnotieren Sie mindestens drei Beispiele für dort vorhandene Klassen!Legen Sie wiederum in Ihrem Hefter eine Tabelle an und notieren Sie dort füreine Klasse des Grafikprogramms einige mögliche Eigenschaften,Eigenschaftswerte und Methoden!

Karol aus objektorientierter Sichtweise

Aus objektorientierter Sicht ist Karol ein Objekt der Klasse Roboter und Weltein Objekt der Klasse Welt. Beide Klassen lassen sich durch ihre Eigenschaftenund Methoden beschreiben.

Welt

Eigenschaften

x-Größe

y-Größe

...

Methoden

NeueWeltErzeugen()

Öffnen()

Speichern()

...

Übung 3

Erstellen Sie in Ihrem Hefter eine weitere Tabelle, in der Sie einige Eigenschaften undMethoden der Klasse Roboter zusammenstellen!

Objektorientierte Programmierung mit Karol

Karol aus objektorientierter Sicht

2 von 3

Page 9: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Natürlich kann man mit Karol auch objektorientiert programmieren. Das folgendeBeispiel zeigt ein Programm für Karol, das in objektorientierter Schreibweise notiertwurde.

Typisch für die objektorientierte Programmierung ist die Punktschreibweise(Objekt.Methode()). Leider erhöht diese Schreibweise den Aufwand für dasSchreiben des Quelltextes erheblich, so dass wir auf diese Schreibweise verzichtenwerden und unsere Programme wie gehabt in der einfachen Notation schreiben.

Karol aus objektorientierter Sicht

3 von 3

Page 10: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 11: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 12: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 13: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 14: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Wiederholungen mit fester Anzahl

Bei vielen Programmen, z.B. beim Legen einer Reihe von 6 Ziegeln, muss immer wieder"das Gleiche gemacht werden" (Hinlegen - Schritt -> Hinlegen - Schrittusw.). Karol muss sechsmal einen Stein ablegen und anschließend einen Schritt machen,d.h. er wiederholt die Sequenz Hinlegen - Schritt insgesamt sechsmal. SolcheWiederholungen kommen sehr oft vor. Deshalb gibt es dafür eine eigene AnweisungWiederholung mit fester Anzahl.

Einführungsbeispiel

Ein Vorschlag zur Lösung unseres Problems könnte folgendermaßen aussehen:

Leider ist dieser Vorschlag sehr unklar formuliert, da aus dem Programmtext nichthervorgeht welche Anweisungen Karol wiederholen soll:

a) Nur die Anweisung Hinlegen,b) die Anweisungen Hinlegen und Schritt oderc) alle drei Anweisungen?

Übung 1

Überlegen Sie, wie das Ergebnis der Fälle a) bis c) aussehen würde! Kontrollieren Sieanschließend Ihre Überlegungen, indem Sie diese mit den Lösungen vergleichen.

Sie sehen also, dass bei einer Wiederholung immer ganz genau angegeben werden muss,welche Anweisungen wiederholt werden sollen. Für die Fälle a) bis c) müssen dieAnweisungen dementsprechend wie folgt aussehen:

Übung 2

Geben Sie die Programmtexte ein und testen Sie die drei Programme! (Hinweis: DasEinrücken der zu wiederholenden Anweisungen ist nicht notwendig, es verbessert aberdie Lesbarkeit des Programmtextes.)

Wiederholungen mit fester Anzahl

1 von 3

Page 15: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Zusammenfassung

Die Wiederholung mit fester Anzahl wird verwendet, wenn eine Sequenzmehrfach ausgeführt werden soll und die Anzahl der Wiederholungen bereitsvorher feststeht.

Wiederhole n mal

Sequenz

*Wiederhole

Die Anweisungsfolge innerhalb der Wiederholungsanweisung wird dann so oftausgeführt, wie die Zahl n vorgibt. Die Wiederholung mit fester Anzahl wird auchoft als Zählschleife bezeichnet.

Das Struktogramm als grafische Darstellung des Programmtextes

Neben der Darstellung des Programmes in Form des Programmtextes gibt es noch eineweitere Form der Darstellung des Programmes in grafischer Form: das Struktogramm.Das Struktogramm steigert die Übersichtlichkeit, vor allem bei komplexerenProgrammen. Aus diesem Grund wird es in der Praxis sehr oft verwendet, um sich dasProgramm vor der eigentlichen Programmierung am Computer grafisch zuveranschaulichen. Für unser Einführungsbeispiel sehen die Struktogrammefolgendermaßen aus:

Das Struktogramm ist eine grafische Darstellung von Programmtexten.

Regeln für das Zeichnen von Struktogrammen

Sequenzen von Anweisungen werdenjeweils von einem Rechteck umrandet.

Wiederholungen mit fester Anzahl

2 von 3

Page 16: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Wiederholungen werden von denvorangegangenen und folgendenAnweisungen durch waagerechteStriche abgetrennt. Die zuwiederholende Sequenz wird in einkleineres, inneres Rechteckeingetragen, vor dem die Anzahl derWiederholungen angegeben ist.

Anzeigen von Struktogrammen in der Entwicklungsumgebung ROBOT KAROL

In der Entwicklungsumgebung ROBOT KAROL kann man sich das Struktogramm einesProgramms anzeigen lassen: Menü Struktogramm. Es gibt die Möglichkeit dasStruktogramm auszudrucken, in die Zwischenablage zu kopieren, bzw. als Grafikabzuspeichern.

Übung 3

Öffnen Sie eines Ihrer erstellten Beispielprogramme und lassen Sie sich dasStruktogramm dazu anzeigen!

Übungen zu Anweisungen mit fester Anzahl der Wiederholung

Übung 4 - Sechs Ziegel

Formulieren Sie die Methode SechserReiheLegen mit Hilfe derWiederholung mit fester Anzahl!

a.

Testen Sie auch Methoden für das Bauen des Turms und der Doppeltreppe (sieheEinführungsbeispiel a) und c))!

b.

Übung 5 - Trepp' auf, Trepp' ab

Lassen Sie Karol eine Treppe wie in nebenstehenderAbbildung bauen! Dabei kann Karol auf zwei völligverschiedene Arten vorgehen.

Karol legt zuerst die unterste Reihe (Methode Reihe7Legen), geht zurück(Methode Laufe6), legt die nächste Reihe (Methode Reihe5Legen) usw.

a.

Karol legt das rechte Ende, geht einen Schritt vor, legt den Stapel mit den zweiZiegelsteinen (Methode Lege2), geht wieder einen Schritt vor usw.

b.

Wiederholungen mit fester Anzahl

3 von 3

Page 17: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 18: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 19: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es
Page 20: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Bedingte Wiederholungen

Wiederholungen mit fester Anzahl genügen nicht

Karol soll irgendwo in seiner Welt platziert sein und eineZiegelreihe bis zur Wand legen. Er darf aber nicht gegen eineWand laufen!

Wie würden Sie Karol anleiten, die Aufgabe zu erfüllen? Warumgeht das nicht mit der Wiederholung mit fester Anzahl? Wasmuss Karol in Erfahrung bringen können?

Lösung: Karol muss in Erfahrung bringen können, wann er die Wand erreicht hat. Ermuss die Sequenz Hinlegen - Schritt solange wiederholen, solange er die Wandnoch nicht erreicht hat. Da vorher nicht bekannt ist wo Karol steht, ist eineunterschiedliche Anzahl von Wiederholungen der Sequenz nötig. Eine Wiederholung mitfester Anzahl scheidet deshalb aus.

Bedingungen

Zur Lösung der Aufgabe ist es notwendig, Karol die Botschaft "Stehst du vor einerWand?" zu senden. Karol antwortet auf diese Frage mit wahr oder falsch. Um aufdiese Botschaft reagieren zu können, hat Karol die Methode IstWand(), welche diegewünschte Antwort liefert.

Im Sinne unserer Problematik "Steuern und Regeln" verfügt der Roboter über Sensorenmit denen er seine Umgebung wahrnehmen kann. Mit ihrer Hilfe kann er z.B.entscheiden, ob folgende Aussagen zutreffen:

Der Roboter steht vor einem Hindernis.Der Roboter steht vor einem Ziegel.

Der Sensor meldet "wahr", wenn die zugehörige Frage mit "Ja" beantwortet wird, bzw."falsch", wenn die Antwort "Nein" lautet.

Methoden und Ausdrücke, die nach ihrer Ausführung den Wahrheitswert "wahr"oder "falsch" annehmen, heißen Bedingungen oder Prädikate.

Beispiele für Bedingungen

Methode Bedeutung

IstWand()Liefert wahr, wenn Karol vor einer Wand steht und falsch, wennvor ihm keine Wand ist.

IstZiegel()Liefert wahr, wenn auf dem Feld vor Karol ein Ziegel liegt undfalsch, wenn auf dem Feld vor ihm kein Ziegel liegt.

Bedingte Wiederholungen

1 von 5

Page 21: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

IstMarke()Liefert wahr, wenn das Feld auf dem Karol steht, markiert ist, undfalsch, wenn dieses Feld nicht markiert ist.

IstNorden()

Liefert wahr, wenn Karol in Richtung Norden blickt, und falsch,wenn dies nicht der Fall ist. Ein ähnliches Prädikat gibt es natürlichauch für die anderen Himmelsrichtungen.

Karol kennt zu jeder dieser Methoden auch eine zweite mit gegenteiliger Bedeutung(NichtIstWand(), NichtIstZiegel() NichtIstMarke(),NichtIstNorden()). Die Methode NichtIstWand() liefert wahr, wenn vor Karolkeine Wand steht, und falsch, wenn vor ihm eine Wand ist.

Bedingungen mit Wiederholung

Die Bedingte Wiederholung wird verwendet, wenn eine Sequenz solangewiederholt werden soll, wie eine Bedingung wahr ist. Sie hat folgende Form:

Anweisungstext Struktogramm

wiederhole solange Bedingung

Sequenz

*wiederhole

Die Sequenz innerhalb der Wiederholung wird in Abhängigkeit von der Bedingunggar nicht, einmal oder mehrfach abgearbeitet.

Jetzt können wir unsere Beispielaufgabe lösen:

Anweisungstext Struktogramm

wiederhole solange NichtIstWand

Hinlegen

Schritt

*wiederhole

Übung 1:

Schreiben Sie nun ein Programm, welches Karol, unabhängig von seinem Standpunkt,eine Ziegelreihe bis zur nächsten Wand in seiner Blickrichtung legen lässt!

Übungsaufgaben

Bedingte Wiederholungen

2 von 5

Page 22: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Übung 2: Zimmer verschönern

Vereinbaren Sie eine Methode ZurWandGehen, die Karol bis zur Wand vor ihmgehen lässt!

a.

Vereinbaren Sie eine Methode ZurEckeGehen, die Karol in die Ecke links vorihm schickt! Verwenden Sie dafür Ihre Methode ZurWandGehen!

b.

Karol soll den Rand des Zimmers mit Ziegelsteinen belegen (siehe Abbildungunten links). Der Startpunkt ist beliebig. Hinweis: Lassen Sie Karol erst in die Eckelinks vor ihm gehen. Dort beginnt er mit dem Auslegen und dort hört er am Endeauch wieder auf.

c.

Erstellen Sie eine Welt mit einer ungeradzahligen Seitenlänge und Breite! Karolsoll wiederum irgendwo im Zimmer stehen. Er soll nun eine Mustergirlande amRand des Zimmers legen, d.h. er legt nur jeden zweiten Ziegel. (siehe Abbildungunten rechts)

d.

Übung 3: Lastentransport

Entwerfen Sie eine Methode Transportiere, die es Karol ermöglicht, einenZiegelstapel, der vor ihm steht, um drei Felder nach rechts zu versetzen. Achtung!Die Eigenschaft "Anzahl der Ziegel, die Karol maximal hoch-/tiefspringen kann",muss hier geändert werden.

a.

Entwerfen Sie eine Methode Addieren, mit der Karol einen Ziegelstapel aufeinen zweiten Stapel setzt, der sich drei Felder rechts vor ihm befindet (sieheAbbildung)!

b.

Übung 4: Aufräumen

Vereinbaren Sie eine Methode Aufraeumen, mit der Karol alle Ziegelsteine aufhebt,die er auf seinem geraden Weg zur Wand vor sich sieht. Dabei dürfen sich auf jedemFeld beliebig viele Ziegelsteine befinden (siehe Abbildung). Verwenden Sie dafür diebereits vorgefertigte Welt, die Sie sich hier herunterladen können!

Bedingte Wiederholungen

3 von 5

Page 23: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Übung 5: Lange Treppe

Karol soll Reihe für Reihe eine Treppe von der Stelle, wo er steht, bis zur Wand bauen(siehe Abbildung). Hinweis: Ehe Karol eine Reihe Ziegel zur Wand legt, legt er zunächsterst einen, stellt sich darauf und markiert das Feld. Dann weiß er, wie weit er für dienächste Reihe zurückgehen muss.

Übung 6: Staubsauger

Von einer Wand des Raumes zu einer anderen Wand liegt eine Kette von Ziegelsteinen.Die Steine am Anfang und am Ende haben nur einen Nachbarstein. Jeder andere Steinhat genau zwei Nachbarsteine (jedoch nicht diagonal). Über Eck dürfen sich die Ziegelberühren. Die bereits vorgefertigte Welt können Sie hier herunterladen.

Zu Beginn steht Karol auf dem Kettenanfang und blickt zur Kette. Er soll dieganze Kette der Reihe nach aufheben. Entwickeln Sie ein Programm dafür!

a.

Testen Sie Ihr Programm mit einer anderen Kette!b.Karol steht anfangs irgendwo im Raum (siehe Abbildung). Er muss zuerst denAnfang der Kette finden und dann mit dem Programm aus a) die ganze Ketteaufheben.

c.

Bedingte Wiederholungen

4 von 5

Page 24: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Übung 7: Mähen

Karol steht vor einem Viereck aus Ziegeln. Er soll alle Steine einsammeln. ZurVereinfachung dürfen Sie davon ausgehen, dass Karol an einer Ecke des Vierecks stehtund in Richtung Ziegelsteine blickt (siehe Abbildung). Die fertige Welt können Sie hierherunterladen.

Bedingte Wiederholungen

5 von 5

Page 25: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Bedingte Anweisungen

In vielen Situationen müssenEntscheidungen getroffenwerden. Je nachdem ob einebestimmte Situation eingetretenist oder nicht muss man sich fürdie eine oder andere Alternativeentscheiden (siehe rechts).

Auch Robot Karol steht oft vor solchen Entscheidungen. Je nachdem welche Signale ervon seinen Sensoren empfangen hat, muss er unterschiedlich reagieren. Betrachten wirzur Erläuterung folgendes Beispiel:

Vor dem Invertieren Nach dem Invertieren

Karol soll zur gegenüberliegenden Wand laufen. Wenn auf seinem Weg dahin ein Ziegelliegt, soll er ihn aufheben. Wenn er jedoch ein leeres Feld vorfindet, soll er einen Ziegelablegen.

Karol muss also abhängig von einer Bedingung (Liegt auf dem Feld vor mir ein Ziegel?)von zwei möglichen Sequenzen (Ziegel aufheben bzw. Ziegel hinlegen) eine auswählen,die er ausführen soll. Man nennt diese Situation eine bedingte Anweisung oder auchzweiseitige Entscheidung.

Bedingte Anweisungen

1 von 3

Page 26: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Struktogramm Anweisungstext

Wenn die Bedingung zutrifft (also "wahr" ist), wird die Sequenz 1 im dann-Teilausgeführt. Sonst, d.h. wenn die Bedingung "falsch" ist, wird die Sequenz 2 imsonst-Teil ausgeführt.

Kehren wir nun zu unserem Beispiel zurück. Die bedingte Anweisung für dasInvertieren eines Feldes lautet also folgendermaßen:

Struktogramm Anweisungstext

Aufgabe:

Ergänzen Sie nun den Rest des Programms! Karol soll von seinem Standpunkt aus biszur gegenüberliegenden Wand laufen und dabei alle Felder nacheinander invertieren.Die vorgefertigte Welt für das Programm können Sie hier herunterladen.

Aufgaben

Übung 1: Eine Reihe auffüllen

Die Ausgangssituation für diese Aufgabe ist die gleiche wie in unseremEinführungsbeispiel. Karol steht wiederum vor einer lückenhaften Reihe von Ziegeln.Wieder soll er zur gegenüberliegenden Wand laufen. Diesmal soll er allerdings dieZiegelreihe nicht invertieren, sondern auffüllen. Dies bedeutet, dass die Ziegelreihe amEnde keine Lücken mehr beinhalten darf. Verwenden Sie für diese Aufgabe wiederumdie gleiche vorgefertigte Welt wie in unserem Einführungsbeispiel!

Übung 2: Subtrahieren

Erstellen Sie ein Programm bei dem Karol von einem Stapeldrei Felder rechts von ihm so viele Steine wegnimmt, wie aufeinem Stapel vor ihm liegen (siehe Abbildung rechts)! Einevorgefertigte Welt für dieses Programm finden Sie hier!Wenn er nichts mehr subtrahieren kann (Minuend kleiner als

Bedingte Anweisungen

2 von 3

Page 27: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Subtrahend), soll er die Steine auf ein Feld 4 Felder rechtsvon ihm ablegen (negatives Ergebnis!)! Eine vorgefertigteWelt für dieses Programm finden Sie hier!

Übung 3: Raum auslegen

Ein Teil der Felder in Karols Raum ist mit einemZiegel belegt (siehe Abbildung rechts). Einevorgefertigte Welt finden Sie hier! Entwerfen Sieeine Anweisungsfolge, welche die noch freienFelder ebenfalls mit einem Ziegel belegt!Überlegen Sie sich zunächst eine Strategie wie Sievorgehen wollen, um das Problem zu lösen!

Übung 4: Wandern auf schmalen Pfaden

Achtung! Bei dieser Aufgabe handelt es sich um eine Aufgabe mit erhöhtemSchwierigkeitsgrad!

Karol läuft auf einer Kette von Ziegelsteinen von einem Ende zum anderen Ende, ohnedie Steine aufzuheben. Er darf unterwegs die Ziegelsteinkette nicht verlassen. AchtenSie darauf, dass er wirklich von einem Ende der Kette bis zum anderen Ende läuft! Einevorgefertigte Welt finden Sie hier!

Hinweis: Um zu verhindern, dass Karol wieder zurück läuft, wird ein besuchter Stein miteiner Marke belegt.

Übung 5: Leuchtschrift

Karol hat eine schöne, große Leuchtschriftgesehen, bei der die Buchstaben und derHintergrund abwechselnd aufleuchten. Erwill diese Leuchtschrift mit Markierungennachbauen (siehe Abbildung rechts). Einevorgefertigte Welt finden Sie hier!

Schreiben Sie ein Programm, das, ähnlich wie in unserer Beispielaufgabe, denganzen Raum mit Markierungen invertiert! Orientieren Sie sich an der Strategiedes Programms "Raum auslegen"!

a.

Vollenden Sie das Programm von Aufgabe a) in der Form, dass die Schriftinsgesamt 10-mal invertiert wird!

b.

Bedingte Anweisungen

3 von 3

Page 28: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Spezialfälle bedingter Anweisungen

Einseitige Auswahl

Beispiel: Viele Ziegel

Karol bekommt den Auftrag insgesamt einhundert Ziegel abzulegen. Da er nicht so hochreicht, kann er sie nicht alle vor sich aufstapeln. Deshalb legt er sie hintereinander.Dabei muss er aufpassen, dass er nicht an eine Wand stößt. Außerdem soll Karoll amAnfang nicht vor einer Wand stehen.

Überlegen Sie, wie eine Lösung unseres Problems aussehen könnte!

Ein Lösungsvorschlag könnte folgendermaßen aussehen:

Struktogramm Anweisungstext

Auffällig im Vergleich zu den zweiseitigen Anweisungen ist, dass Karol nur dann auf dieÜberprüfung der Bedingung reagieren muss, wenn er tatsächlich vor einer Wand steht.Steht er hingegen nicht vor einer Wand, braucht er auch nicht zu reagieren und fährtganz einfach mit der weiteren Ausführung des Programms fort. Diesen Spezialfall einerbedingten Anweisung nennt man eine einseitige Entscheidung. Der sonst-Teil derzweiseitigen Entscheidung wird nicht benötigt und im Programmtext einfachweggelassen.

Eine bedingte Anweisung heißt einseitig, wenn der sonst-Teil fehlt. Falls dieBedingung "falsch" ist, wird die Sequenz 1 im Programmablauf übergangen.

Struktogramm Anweisungstext

Spezialfälle bedingter Anweisungen

1 von 3

Page 29: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Aufgaben zur einseitigen Entscheidung

Übung 1: Reihe mit Löchern

Entwerfen Sie eine Folge von Anweisungen, mit der Karolvon seiner momentanen Position ausgehend, eineZiegelreihe zur gegenüberliegenden Wand legt. Dabei soller nur auf jedes zweite Feld einen Ziegel ablegen (sieheAbbildung rechts). Testen Sie Ihre Lösung, wenn Karoleine geradzahlige Anzahl von Feldern bzw. eineungeradzahlige Anzahl von Feldern vor der Wand steht!

Übung 2: Im Sumpf

Karol soll über Ziegelwege aus einem Sumpfherausfinden (siehe Abbildung rechts) . Damit er anden Abbiegungen und Abzweigungen weiß wie ergehen muss, hat ein Freund vorher den Weg erkundet.Wenn der Weg nach links führt, hat dasAbzweigungsfeld bzw. die Kurve eine Markierung,sonst nicht. Erstelle ein Programm, das Karol wiederaus dem Sumpf führt. Eine vorgefertigte Welt findenSie hier!

Hinweis: Achten Sie darauf, dass Karol richtigreagiert, wenn er das Ende des Weges erreicht hat undnicht wieder zurück in den Sumpf läuft!

Verschachtelte bedingte Anweisungen

Auswahlanweisungen lassen sich, ähnlich wie Wiederholungsanweisungen,schachteln.

Karol soll ein beliebiges Grundstück umrunden,das durch Ziegelsteine eingezäunt ist. Die Feldermit den Ziegelsteinen haben mindestens eine Seitegemeinsam (siehe Abbildung rechts). Dazu musseine Strategie entwickelt werden, die Karol dazubringt, bei einem beliebigen Grundstück immeram Zaun entlang zu laufen.

Aufgabe: Beschreiben Sie die verschiedenenSituationen, die auf Karols Weg um dasGrundstück auftreten können! Überlegen Sie wie

Spezialfälle bedingter Anweisungen

2 von 3

Page 30: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es

Karol in der jeweiligen Situation reagieren muss!

Karol muss unterwegs immer auf zwei Bedingungen achten:

Befindet sich rechts ein Hindernis?1.Befindet sich vor ihm ein Hindernis?2.

Umgangssprachlich formuliert muss die Lösung für das Problem folgendermaßen lauten:

Wenn die erste Bedingung "wahr" ist, muss noch die zweite Bedingung geprüftwerden.Wenn die zweite Bedingung "wahr" ist, dann dreht sich Karol nach links, sonstgeht er einen Schritt geradeaus.Wenn die erste Bedingung "falsch" ist, dann dreht sich Karol nach rechts undgeht anschließend einen Schritt vorwärts.

Das Struktogramm unserer Lösungsstrategie sieht folgendermaßen aus:

Man spricht hier von einer verschachtelten Anweisung, da sich die zweite bedingteAnweisung völlig in der Anweisungsfolge des dann-Teils der ersten bedingtenAnweisung befindet. Natürlich wäre es auch denkbar, dass sie sich im sonst-Teil derersten bedingten Anweisung befindet.

Damit Karol immer wieder um das Hindernis rennt, sollendie bedingten Anweisungen in eine Endlosschleifeeingebettet werden (Anweisungstext siehe rechts).

Um zu prüfen, ob sich rechts von Karol ein Ziegelbefindet, ist ein neues PrädikatIstRechtsZiegel notwendig. DenAnweisungstext dieses Prädikats sehen Sie rechtsdargestellt.

Aufgabe: Schreiben und testen Sie nun das Programm zur Umrundung des Hindernisses!Die vorgefertigte Welt finden Sie hier!

Spezialfälle bedingter Anweisungen

3 von 3

Page 31: Robot Karol - Einführung - Mirko · PDF fileRobot Karol - Einführung Im Informatikteil des Lernbereichs "Messen Steuern Regeln" steht das Programmieren (der Informatiker nennt es