Programmieren lernen mit Robot Karol: Unterschied zwischen den Versionen
(→Parameter) |
(→Einseitige bedingte Anweisung) |
||
Zeile 454: | Zeile 454: | ||
|width=300px | | |width=300px | | ||
|} | |} | ||
+ | |||
+ | |||
+ | ==Übungsaufgaben== |
Version vom 12. März 2014, 13:23 Uhr
Inhaltsverzeichnis |
Das Programm
Robot Karol ist eine Programmierumgebung mit einer Programmiersprache, die zum Erlernen des Programmierens und zur Einführung in die Algorithmik in der Schule gedacht ist. Das Programm ist Freeware und kann über den Link Karol heruntergeladen werden. |
Die Oberfläche
Die Programmoberfläche von Karol ist zweigeteilt: Auf der linken Seiten befindet sich der sogenannte Editor, in dem die Programme geschrieben werden. Auf der rechten Seite ist Karols Welt, in der das verfasste Programm ausgeführt werden kann. |
Objekte
In Karos Welt gibt es einige Objekte, die von Karo verteilt und wieder eingesammelt werden können.
|
Die Bewegungmöglichkeiten von Karol
Die Bewegungsmöglichkeiten von Karol sind recht übersichtlich. Mit den angegebenen Anweisungen kann das entsprechende Verhalten gesteuert werden. |
Verhalten | Anweisung |
---|---|
ein Schritt vorwärts | Schritt |
eine Vierteldrehung nach links | LinksDrehen |
eine Vierteldrehung nach rechts | RechtsDrehen |
einen Ziegel vor sich hinlegen | Hinlegen |
einen Ziegel vor sich entfernen | Aufheben |
eine gelbe Marke unter sich legen | MarkeSetzen |
eine gelbe Marke unter sich entfernen | MarkeLöschen |
Karols Welt
Erste Programme
Das Programm "Robot Karol" ermöglicht es uns, dem Roboter, der sich in seiner Welt bewegen und Aufgaben erfüllen kann, Anweisungen zu geben. Durch eine Anweisung (z.B. "Schritt") sendet man eine Botschaft an ein Objekt (z.B. Karol), das darauf mit der zugehörigen Methode reagiert (z.B. Schritt() ).
|
Aufgabe
Karol soll eine U-Form abschreiten
Lösung
umgangssprachlich formuliert | Karolprogramm |
---|---|
|
Schritt |
Eine solche Folge von Anweisungen bezeichnet man als Algorithmus. Ein Algorithmus ist eine endliche Folge aus eindeutigen und ausführbaren Anweisungen zur Lösung eines allgemeinen Problems. |
Aufgaben:
|
Selbstdefinierte Methoden
Parameter
Mit Hilfe eines Parameters oder Übergabewertes können wir Programme flexibler gestalten, ohne ganze Programmteile neu schreiben zu müssen. Beispielsweise können wir das Programm
Schritt Schritt Schritt Hinlegen Hinlegen Hinlegen
kürzer schreiben als
Schritt(3) Hinlegen(3)
Wir übergeben dabei in der Klammer hinter dem Methodenaufruf die Anzahl der Wiederholungen. Neben Schritt und Hinlegen kann man auch Aufheben mit einem Parameterwert verwenden.
Parameter können auch im Zusammenhang mit selbstdefinierten Anweisungen verwendet werden:
Anweisung Seite(X) Schritt(X) LinksDrehen *Anweisung Seite(5) Seite(3) Seite(5) Seite(3)
Mit dieser Anweisung können wir Karol ein Rechteck beliebiger Größe bauen lassen, in diesem Fall ein Rechteck der Größe 3x5. Zu beachten ist, dass als Parameter in Anweisungen grundsätzlich X zu verwenden ist.
Aufgabe 1: Karol soll mit Hilfe von Anweisungen mit Parameterwert einen Irrgarten bauen.
Wiederholung mit fester Anzahl
Aufgabe:
Karol soll vier Ziegel in einer Reihe hintereinander legen. Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Bei größerer Zahl von Wiederholungen erweist sich das Ganze als ungünstig. Bessere Lösung: Wiederholung mit fester Anzahl
wiederhole n mal Anweisungen *wiederhole Die günstigere Lösung für unsere Aufgabe sieht dann wie folgt aus: wiederhole 4 mal hinlegen schritt *wiederhole Aufgabe 1: Karol soll mit Ziegeln ein Quadrat auslegen.
Beispiel: Karol soll einen Quadratrand auslegen. Lösung wiederhole 4 mal wiederhole 3 mal Hinlegen Schritt *wiederhole LinksDrehen *wiederhole Der Quadratrand besteht aus vier Seiten (äußere Schleife). Jede Seite besteht wiederum aus drei Ziegeln (innere Schleife).
|
Wiederholung mit Anfangsbedingung
Bestimmte Problemstellungen lassen sich mit den bisherigen Methoden und Kontrollstrukturen
nicht zufrieden stellend bearbeiten. Die Lösung der Aufgabe „Gehe bis zur nächsten
Wand“ hängt von der Startposition Karols ab. Um unabhängig von der Ausgangsstellung zu
sein, muss Karol eine Methode kennen, die eine Anfrage, ob er noch weitergehen kann, mit
WAHR oder FALSCH beantwortet. Der Aufruf derartiger Methoden wird mit „Bedingung“
umschrieben.
Karol hat auch Methoden, mit denen er auf eine Anfrage mit WAHR oder FALSCH antwortet. Der Aufruf einer Methode dieser Art heißt Bedingung.
Bei der Bedingung IstZiegel ist auch ein Parameterwert möglich, d.h. man kann z.B. eine Anweisung nur dann durchführen lassen, wenn zwei Ziegel vor Karol liegen (wenn istZiegel(2) dann Anweisung) Aufgabe: Karol soll, solange er nicht an eine Wand anstößt, vorwärts gehen.
Die Anweisungen im Wiederholungsteil werden so oft wiederholt, solange die Bedingung WAHR ergibt. Die Überprüfung der Bedingung erfolgt am Anfang jeder Wiederholung. Sprache Karol: wiederhole solange Bedingung Anweisungen *wiederhole Aufgabe 1: Aufgabe 2: |
Zweiseitige bedingte Anweisung
Das Programm für die Lösung der Aufgabe "Karol soll von einem beliebigen Punkt an der Wand
aus einmal an der Wand entlang genau eine Runde laufen und dabei seine Ziegel hinlegen", lässt
sich dadurch vereinfachen, dass wir ihn bei jedem Schritt entscheiden lassen, was er als nächstes
tut: Bedingte Anweisung (zweiseitig): Sprache Karol: wenn Bedingung dann Anweisungen1 sonst Anweisungen2 *wenn Aufgabe 1: Aufgabe 2: Aufgabe 3: |
Einseitige bedingte Anweisung
Aufgabe: Bedingte Anweisung (einseitig): Wenn die Bedingung WAHR ergibt, werden die Anweisungen ausgeführt. Sprache Karol: wenn Bedingung dann Anweisungen *wenn Lösung der obigen Aufgabe: wiederhole solange NichtIstWand wenn NichtIstZiegel dann Hinlegen *wenn Schritt *wiederhole Aufgabe: |