Robot Karol - ein Lehrgang 1. Wir steuern Robot Karol mit Maus und Tastatur Du kannst Robot Karol mit der Maus steuern. Klicke dazu einfach auf die Pfeile oder Buchstaben. Wenn Robot Karol deinem Befehl nicht „gehorchen“ kann, dann gibt es unten eine Fehlermeldung. Hinweis: Du kannst natürlich auch die Buchstaben und Pfeiltasten auf der Tastatur benützen. Wo kann ich Robot Karol herunterladen? https://www.mebis.bayern.de/infoportal/faecher/mint/inf/robot-karol/ 2. Einfache Befehle Schritt Linksdrehen oder Rechtsdrehen Hinlegen oder Aufheben Markesetzen oder Markelöschen Karol macht (falls möglich) einen Schritt in die Richtung, in die er schaut; Karol dreht sich Karol legt einen Ziegel vor sich hin oder hebt ihn auf Karol markiert das Feld auf dem er steht oder löscht die Marke unter sich Schreibe jetzt deine ersten „Programme“. Dazu schreibst du links oben in den leeren Bereich deine Befehle. Benutze für jeden Befehl eine eigene Zeile. Mit den Steuerschaltflächen kannst du dein Programm starten. Übungen 1. 2. 3. 4. Die Linie – Karol soll eine Linie (nach unten) mit 6 Ziegeln erzeugen. Die Reihe – Karol soll eine Reihe (nach rechts) aus 4 Ziegeln erzeugen. Das Quadrat – Karol soll ein Quadrat aus 4 Ziegeln legen. Die Wand – Karol soll bis zur gegenüberliegenden Wand laufen und dann zurück zum Startpunkt. 5. Der Rand- Nun soll er den ganzen Rand seiner Welt mit einer Reihe Ziegel auslegen. 6. Die U-Form – Karol soll eine U-Form ablaufen und dabei Marken setzen. 7. Die Diagonale – Karol soll eine Diagonale aus Ziegeln in seine Welt legen 8. Die Treppe – Lass Karol eine Treppe über das Eck bauen mit Stufen nach oben und wieder nach unten. 9. Der Turm – Karol soll in der Mitte seiner Welt einen Turm auf- und abbauen. 10. Der Kreis – Karol legt einen Kreis aus Marken aus 11. … - Denk dir selbständig eine Aufgabe aus, die Karol erfüllen soll. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 1 Robot Karol - ein Lehrgang 3. Der richtige „Rahmen“ Damit Programme schön übersichtlich bleiben gibt es bei den Programmiersprachen immer einen äußeren Rahmen. Du musst in Zukunft „Programm *Programm“ immer dazuschreiben. Dadurch kennzeichnest du deine Befehle als Programm. Robot Karol macht deswegen aber nichts anders. Programm Schritt Linksdrehen *Programm Einrückungen sind für eine bessere Übersicht notwendig. Wenn der Programmcode sinnvoll mit der Leertaste eingerückt ist, findest du dich leichter zurecht. Programm wiederhole 4 mal wiederhole solange nichtistwand hinlegen schritt *wiederhole linksdrehen *wiederhole *Programm Dieses Struktogramm lässt sich über die Menüleiste in Robot Karol anzeigen. Vergleiche es mit dem Programmcode links und versuche es zu verstehen. 4. Den gleichen Befehl mehrmals Wenn Robot Karol mehrere Schritte gehen soll oder einige Ziegel hinlegen/aufheben muss, dann kann man die Anzahl dahinter in Klammern schreiben. Programm Schritt(3) Hinlegen(4) Aufheben(3) *Programm Übungen – Benutze die neuen Möglichkeiten von Punkt 4 1. Die Wand – Karol soll bis zur gegenüberliegenden Wand laufen und dann zurück zum Startpunkt. 2. Der Turm – Karol soll in der Mitte seiner Welt einen Turm auf- und abbauen. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 2 Robot Karol - ein Lehrgang 5. Wiederholungen mit fester Anzahl Sobald du Robot Karol eine Reihe von Steinen legen lassen willst hilft dir der Wert in der Klammer nichts mehr. Hier benötigst du einen neuen Befehl. Schau dir das Beispiel an. Programm Wiederhole 5 mal Hinlegen Schritt *Wiederhole *Programm 6. Kommentare Du solltest dir innerhalb vom Programmcode Notizen machen. Deine Bemerkungen können nicht nur dir selbst helfen sondern auch anderen, wenn sie dein Programm verstehen wollen. Echte Programmierer können auch mal krank sein oder den Arbeitgeber wechseln. Der Kollege oder Nachfolger soll das Programm dann auch verändern können. Wenn der Kommentar über mehrere Zeilen geht, dann benötigst du geschweifte Klammern. Für eine Zeile reichen zwei Schrägstriche. Robot Karol ignoriert Kommentare einfach. // Kommentar mit einer Zeile Programm Hinlegen(5) // legt 5 Ziegel hin Wiederhole solange istziegel Aufheben *Wiederhole Schritt *Programm Programm {Hinlegen(5) // legt 5 Ziegel hin Wiederhole solange istziegel Aufheben *Wiederhole} Schritt *Programm Übungen 1. Die Linie – Karol soll eine Linie (nach unten) mit 6 Ziegeln erzeugen. 2. Die Reihe – Karol soll eine Reihe (nach rechts) aus 4 Ziegeln erzeugen. 3. Der Rand – Nun soll er den ganzen Rand seiner Welt mit einer Reihe Ziegel auslegen. Hinweis: Nur wenn du die Möglichkeiten von Punkt 4 vermeidest wird Robot Karol eine schöne Animation zeigen. Dies entspricht der Musterlösung. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 3 Robot Karol - ein Lehrgang 7. Wiederholung mit Bedingung Dieser Befehl kann dir die Arbeit enorm erleichtern. Wenn du den Befehl „wiederhole“ benutzt dann spricht man von einer Schleife. Bisher musstest du immer vorher wissen wie oft die Schleife wiederholt werden soll. Aber Robot Karol kann das auch selbst entscheiden. Dadurch wird dein Programm viel flexibler. Es spielt plötzlich keine Rolle mehr wie groß deine Welt ist. Programm Wiederhole solange nichtistwand Hinlegen Schritt *Wiederhole *Programm Programm Hinlegen(5) Wiederhole solange istziegel Aufheben *Wiederhole *Programm Mögliche Abfragen Istwand oder Nichtistwand Istziegel oder Nichtistziegel Istmarke oder Nichtistmarke IstSüden, IstOsten, IstWesten, IstNorden Karol überprüft ob in Blickrichtung eine Wand ist oder nicht. Karol überprüft ob vor ihm ein Ziegel ist oder nicht. Karol überprüft ob unter ihm eine Marke ist oder nicht. Karol überprüft ob er gerade in die entsprechende Himmelsrichtung schaut. Norden ist oben wie bei Landkarten! Übungen (Überprüfe deine Programme in unterschiedlich großen Welten!) 1. Die Linie – Karol soll eine Linie aus Ziegeln bis zur Wand erzeugen. 2. Die Wand – Karol soll bis zur gegenüberliegenden Wand laufen und dann zurück zum Startpunkt. 3. Der Rand- Nun soll er den ganzen Rand seiner Welt mit einer Reihe Ziegel auslegen. 4. Die L-Form – Karol soll bis zur Wand laufen und dann abbiegen. Dabei soll er ein L aus Marken setzen. 5. Die Diagonale – Karol soll eine Diagonale aus Ziegeln in die Welt legen 6. Denk dir eine Aufgabe aus, die Karol erfüllen soll. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 4 Robot Karol - ein Lehrgang 8. Eigene Anweisungen Du kannst eigene Anweisungen (Befehle) festlegen. Sie werden vor dem eigentlichen Programm aufgelistet. Schreibe dazu zuerst „Anweisung“ und dahinter den selbst gewählten Namen des neuen Befehls. Beende die Anweisung wie gewohnt. Damit die Befehle ganz schnell ablaufen gibt es die Möglichkeit die Geschwindigkeit mit „schnell“ zu erhöhen und mit „langsam“ wieder zu normalisieren. Im eigentlichen Programm brauchst du dann nur noch die neue Anweisung zu verwenden. Anweisung rückwärts schnell linksdrehen linksdrehen schritt linksdrehen linksdrehen langsam *Anweisung Anweisung rückwärts(x) schnell linksdrehen linksdrehen schritt(x) linksdrehen linksdrehen langsam *Anweisung Programm schritt rückwärts *Programm Programm schritt(4) rückwärts(3) *Programm Du kannst auch Parameter übergeben. 9. Ziegel zählen Damit Robot Karol schwierigere Aufgaben erledigen kann muss er Ziegel zählen können. Dazu wird die Anzahl der Ziegel hinter die Abfrage „istziegel“ in Klammern geschrieben. Ähnlich wie bei Punkt 4, Seite 2. Programm hinlegen(6) wiederhole solange nicht istziegel(1) aufheben *wiederhole *Programm http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 5 Robot Karol - ein Lehrgang 10. Programmcode verbessern Du solltest während dem Arbeiten deinen Programmcode immer wieder kritisch hinterfragen. Hast du mehrmals hintereinander die gleichen Befehle? Baue Schleifen ein. Ist Karol auf alle möglichen Situationen vorbereitet? Er sollte nicht mit einem Fehler abbrechen müssen. Habe ich alle Einrückungen richtig vorgenommen? Beispiel Eine eigene Anweisung mit der Karol 3 Schritte rückwärts geht wird langsam verbessert. Anweisung dreischrittrueck linksdrehen linksdrehen schritt(3) linksdrehen linksdrehen Anweisung dreischrittrueck linksdrehen linksdrehen wenn nicht istwand dann schritt(3) *wenn linksdrehen linksdrehen *Anweisung *Anweisung Programm Schritt(3) dreischrittrueck *Programm Programm dreischrittrueck *Programm + Sicherheitsabfrage damit Karol nicht blind in die Wand rennt http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Anweisung dreischrittrueck wiederhole 3 mal schnell linksdrehen linksdrehen wenn nicht istwand dann schritt *wenn linksdrehen linksdrehen langsam *wiederhole *Anweisung Anweisung dreischrittrueck(x) wiederhole x mal schnell linksdrehen linksdrehen wenn nicht istwand dann schritt *wenn linksdrehen linksdrehen langsam *wiederhole *Anweisung Programm schritt(2) dreischrittrueck *Programm Programm schritt(2) dreischrittrueck(3) *Programm + Robot Karol läuft + Anzahl der Schritte Schritt für Schritt wird als Variable optisch schön rückwärts übergeben + Sicherheitsabfrage für jeden einzelnen Schritt Seite 6 Robot Karol - ein Lehrgang Übung Schnellrestaurant Szenario Robot Karol arbeitet an der Selbstbedienungstheke. Wenn alle Mahlzeiten weg sind, muss Robot Karol sie wieder auffüllen. 1. Erstelle eine Theke aus grauen Quadern wie hier im Bild. Speichere die Theke zur Sicherheit als theke.kdw ab. 2. Schreibe ein Programm mit einer festen Anzahl an Wiederholungen (-> Punkt 5). Robot Karol soll an der Theke entlanglaufen und in jede Lücke eine Mahlzeit (Ziegel) legen. Benutze auch mindestens eine eigene Anweisung (-> Punkt 9) für Befehle die sich wiederholen. 3. Ändere die Welt theke.kdw leicht ab. Setze ans Ende der Theke (siehe Foto) eine Marke und speichere unter theke-marke.kdw ab. 4. Nur möglich wenn Seite 8 des Skripts bearbeitet wurde! Ändere dein Programm von Aufgabe 2 jetzt so ab, dass Karol bei der Marke aufhört Mahlzeiten zu verteilen. Benutze dazu eine Wiederholung mit Bedingung (-> Punkt 6). Dadurch kann die Theke auch größer oder kleiner sein. Probiere unterschiedliche Thekenlängen mit deinem Programm aus. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 7 Robot Karol - ein Lehrgang 11. Bedingte Anweisung: wenn Die Anweisung wenn kennst du vielleicht schon aus der Tabellenkalkulation. Wenn Karol vor einer Wand steht, sich vor ihm Ziegel befinden, er nach Osten schaut usw. dann soll etwas passieren: „wenn – dann“ Mit „wenn – dann – sonst“ kann man vorgeben, was passieren soll, wenn „es nicht so ist“ (rechtes Beispiel). Das nennt man eine zweiseitig bedingte Anweisung. Programm wiederhole 8 mal hinlegen wenn IstZiegel(4) dann aufheben *wenn *wiederhole *Programm Programm wiederhole 35 mal wenn istwand dann linksdrehen sonst schritt *wenn *wiederhole *Programm Übungen (Überprüfe deine Programme in unterschiedlich großen Welten!) 1. Der Sucher – Lass Karol bis zur gegenüberliegenden Wand laufen. Vor jedem Schritt soll Karol überprüfen ob ein Ziegel vor ihm liegt. Wenn ein Ziegel vorhanden ist, dann soll er ihn aufheben. (Die Teststrecke mit einzelnen Ziegeln musst du vorher selber bauen.) 2. Der Expertensucher - Karol soll bis zur gegenüberliegenden Wand laufen. Vor jedem Schritt soll Karol überprüfen ob Ziegel vor ihm liegen. Egal wie viele Ziegel vor ihm liegen – er soll sie alle aufheben. (Die Teststrecke mit unterschiedlich hohen Ziegeltürmen musst du vorher selber bauen.) 3. Der Profisucher - Karol soll bis zur gegenüberliegenden Wand laufen. Vor jedem Schritt soll Karol überprüfen ob Ziegel vor ihm liegen. Egal wie viele Ziegel vor ihm liegen – er soll sie alle aufheben. Falls kein Ziegel vor ihm liegt, dann soll er das Feld vor sich markieren. (Die Teststrecke mit unterschiedlich hohen Ziegeltürmen musst du vorher selber bauen.) http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 8 Robot Karol - ein Lehrgang 12. Programm beenden Manchmal ist es notwendig, ein Programm sofort zu beenden wenn eine bestimmte Situation eintritt. Programm wiederhole 4 mal wiederhole solange nichtistwand hinlegen schritt *wiederhole linksdrehen *wiederhole linksdrehen schritt rechtsdrehen wiederhole immer wiederhole solange nichtistziegel hinlegen schritt *wiederhole linksdrehen wenn istziegel dann beenden *wenn *wiederhole *Programm Das Beispiel ist die Lösung für: Übung: Der Boden – Karol soll den gesamten Boden seiner Welt mit Ziegeln auslegen. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Seite 9 Robot Karol - ein Lehrgang Übung Slalom Szenario Robot Karol will Ski fahren und hat sich gleich zu Beginn einen Slalom ausgesucht. Ihm wurde erklärt, dass er um die niedrigen Stangen in Blickrichtung rechts herum fahren muss und um die hohen Stangen links herum. 1. Erstelle eine neue Welt: 3 Felder breit und 15 Felder tief. Stelle in dieser Welt wie in der Abbildung rechts die Ziegeltürme auf. Speichere die Welt unter slalom.kdw. 2. Schreibe ein Programm: eigene Anweisungen Wiederholungen für jede Slalomstrecke nutzbar niedrige Slalomstange (Stapel): rechts herum fahren hohe Slalomstange: links herum fahren Karol steht am Ende im mittleren Feld im Süden 3. Behalte dein Programm von Aufgabe 2. Baue die Welt so wie rechts abgebildet ist um. Speichere die Welt unter slalom2.kdw ab. 4. Überprüfe ob dein Programm hier auch funktioniert. Finde deinen Fehler falls es nicht klappt. http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 S e i t e 10 Robot Karol - ein Lehrgang Lösungen Seite 1 1. Linie Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Hinlegen 2. Reihe Linksdrehen Hinlegen Schritt Hinlegen Schritt Hinlegen Schritt Hinlegen 3. Quadrat Hinlegen Schritt Linksdrehen Hinlegen Schritt Linksdrehen Hinlegen Schritt Linksdrehen Hinlegen 4. Wand Schritt Schritt Schritt Schritt Schritt Schritt Schritt Schritt Schritt Linksdrehen Linksdrehen Schritt Schritt Schritt Schritt Schritt Schritt Schritt Schritt Schritt 5. Rand hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt Linksdrehen hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt Linksdrehen http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen Schritt Linksdrehen hinlegen Schritt hinlegen Schritt hinlegen Schritt hinlegen 6. U-Form MarkeSetzen Schritt MarkeSetzen Linksdrehen Schritt MarkeSetzen Schritt MarkeSetzen Linksdrehen Schritt MarkeSetzen 7. Diagonale hinlegen Schritt Schritt linksdrehen hinlegen Schritt Schritt rechtsdrehen hinlegen Schritt Schritt linksdrehen hinlegen Schritt Schritt rechtsdrehen hinlegen 8. Treppe Hinlegen Schritt Linksdrehen Linksdrehen Hinlegen Hinlegen Schritt Rechtsdrehen Hinlegen 9. Turm Schritt Schritt Schritt Schritt Linksdrehen Schritt Hinlegen Hinlegen Aufheben Aufheben S e i t e 11 Robot Karol - ein Lehrgang 10. Kreis Schritt Schritt Markesetzen Schritt Linksdrehen Schritt Linksdrehen Markesetzen Schritt Markesetzen Schritt Markesetzen Schritt Rechtsdrehen Schritt Rechtsdrehen Markesetzen Schritt Markesetzen Schritt Markesetzen Schritt Markesetzen Schritt Markesetzen Linksdrehen Schritt Linksdrehen Schritt Markesetzen Schritt Markesetzen Schritt Markesetzen Rechtsdrehen Schritt Rechtsdrehen Schritt Markesetzen (Oberhalb Lösung für Aufgaben Seite 1) Seite 2 1. Wand Programm Schritt(9) Linksdrehen Linksdrehen Schritt(9) *Programm 2. Turm Programm Schritt(4) Linksdrehen Schritt Hinlegen(6) Aufheben(6) *Programm Seite 3 1. Linie Programm Wiederhole 5 mal Hinlegen Schritt *Wiederhole Hinlegen *Programm 2. Reihe Programm Linksdrehen Wiederhole 3 mal Hinlegen Schritt *Wiederhole Hinlegen *Programm http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 3. Rand Programm Wiederhole 9 mal Hinlegen Schritt *Wiederhole linksdrehen Wiederhole 4 mal Hinlegen Schritt *Wiederhole linksdrehen Wiederhole 9 mal Hinlegen Schritt *Wiederhole linksdrehen Wiederhole 4 mal Hinlegen Schritt *Wiederhole linksdrehen *Programm S e i t e 12 Robot Karol - ein Lehrgang Lösungen Seite 4 1. Linie Programm Wiederhole solange nichtistwand Hinlegen Schritt *Wiederhole *Programm 2. Wand Programm Wiederhole solange nichtistwand Schritt *Wiederhole Linksdrehen Linksdrehen Wiederhole solange nichtistwand Schritt *Wiederhole *Programm 3. Wand Programm Wiederhole 4 mal Wiederhole solange nichtistwand Hinlegen Schritt *Wiederhole Linksdrehen *Wiederhole *Programm 4. L-Form Programm Wiederhole 2 mal Wiederhole solange nichtistwand MarkeSetzen Schritt *Wiederhole Linksdrehen *Wiederhole *Programm 5. Diagonale Programm Hinlegen Schritt Linksdrehen Wiederhole solange nichtistwand Schritt Rechtsdrehen Hinlegen Schritt Linksdrehen *Wiederhole *Programm schritt rechtsdrehen schritt *Anweisung wenn istmarke dann beenden *wenn schritt *Anweisung Seite 7 2. Aufgabe Anweisung einreihen linksdrehen schritt schritt rechtsdrehen schritt *Anweisung Anweisung einlegen schritt schnell rechtsdrehen hinlegen linksdrehen langsam schritt *Anweisung Programm Einreihen wiederhole 4 mal einlegen *wiederhole *Programm 4. Aufgabe Anweisung einreihen linksdrehen schritt http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 Anweisung einlegen wenn istmarke dann beenden *wenn schritt schnell rechtsdrehen hinlegen linksdrehen langsam Programm Einreihen wiederhole immer einlegen *wiederhole *Programm S e i t e 13 Robot Karol - ein Lehrgang Seite 8 1. Sucher Programm Wiederhole solange nichtistwand wenn istziegel dann Aufheben *wenn Schritt *Wiederhole *Programm 2. Expertensucher Programm Wiederhole solange nichtistwand wenn istziegel dann wiederhole solange istziegel Aufheben *wiederhole *wenn Schritt *Wiederhole *Programm 3. Profisucher Programm Wiederhole solange nichtistwand wenn istziegel dann wiederhole solange istziegel Aufheben *wiederhole sonst Schritt Markesetzen linksdrehen linksdrehen Schritt linksdrehen linksdrehen *wenn Schritt *Wiederhole *Programm Seite 10 Anweisung linksherum LinksDrehen Schritt RechtsDrehen Schritt Schritt RechtsDrehen Schritt LinksDrehen *Anweisung Anweisung rechtsherum RechtsDrehen Schritt LinksDrehen Schritt Schritt LinksDrehen Schritt RechtsDrehen http://fachlehrerseite.de Autor: Seibert, v1.3, 21.09.2015 *Anweisung Programm // Start wiederhole immer wenn IstZiegel dann wenn IstZiegel(1) dann linksherum sonst rechtsherum *wenn *wenn wenn IstWand dann Beenden *wenn wenn nicht IstZiegel dann Schritt *wenn *wiederhole *Programm S e i t e 14
© Copyright 2024 ExpyDoc