Programmieren lernen mit Robot Karol – ComeniusWiki (2024)

Inhaltsverzeichnis

  • 1 Das Programm
    • 1.1 Die Oberfläche
    • 1.2 Objekte
    • 1.3 Die Bewegungmöglichkeiten von Karol
    • 1.4 Karols Welt
  • 2 Erste Programme
  • 3 Selbstdefinierte Methoden
  • 4 Parameter
  • 5 Wiederholung mit fester Anzahl
  • 6 Wiederholung mit Anfangsbedingung
  • 7 Zweiseitige bedingte Anweisung
  • 8 Einseitige bedingte Anweisung
  • 9 Übungsaufgaben

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 (Kurzanweisung mit Downloadmöglichkeit (zip-Datei) auf der letzten Seite).

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.

  • Ziegel
Karol kann Ziegel vor sich hinlegen. Sollte vor ihm bereits ein Ziegel liegen, wird der nächste Ziegel auf den anderen drauf gelegt.
Wenn Karol vor einem Ziegel steht und einen Schritt macht, steigt er auf den Ziegel. Allerdings kann er nicht über 2 Ziegel auf einmal steigen.
Das heißt um auf einen 2er Ziegelturm zu kommen, muss er über einen davorliegenden einzelnen Ziegelstein "klettern".
  • Marke
Marken werden direkt auf das Feld unter Karol gelegt. Sie dienen zur Orientierung und haben keinen Einfluss auf Karols
Bewegungsmöglichkeiten; er kann einfach darüber laufen. Im Gegensatz zu Ziegeln können nicht mehrere Marken übereinander gestapelt werden.
  • Quader
Quader versperren Karol den Weg. Er kann nicht über sie gehen. Außerdem lassen sie sich nicht stapeln.

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

Auf der rechten Seite der Karoloberfläche befindet sich Karols Welt. Durch Aufruf von Welt - Neue Welt kann die gewünschte Ausdehnung der neuen Welt festgelegt werden. Wenn die Ausgangsposition vom Standardstartpunkt (1,1) abweicht oder Hindernisse zur von Karol zu lösenden Welt gehören, dann empfiehlt es sich, die Welt über Welt - Welt speichern mit der Endung .kdw abzuspeichern.

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
  • 2 mal vorwärts
  • Linksum
  • 2 mal vorwärts
  • Linksum
  • 2 mal vorwärts

Schritt
Schritt
LinksDrehen
Schritt
Schritt
LinksDrehen
Schritt
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.
Ein Programm ist ein Algorithmus, der in einer formalisierten Sprache abgefasst ist und maschinell ausgeführt werden kann.


Aufgaben:

1. Karol soll ein Rechteck ablaufen und am Ende wieder in der Ausgangsposition stehen.

Lösungsvorschlag anzeigen

2. Damit man besser erkennt, ob Karol auch ein „U“ durchläuft, soll er dabei Marken setzen. Es soll also eine „U-Form mit Markierungen“ gebildet werden.

Lösungsvorschlag anzeigen

3. Karol soll vier Ziegel in einer Reihe nebeneinander legen.

Lösungsvorschlag anzeigen

Selbstdefinierte Methoden

Die Fähigkeiten von Karol können durch neue, zusätzliche Methoden erweitert werden. Diese selbstdefinierten Anweisungen müssen vorher vom Programmierer festgelegt werden.Neue Methoden beginnen stets mit dem Wort Anweisung und dann mit dem Bezeichner der Methode. Es folgt eine Sequenz von Anweisungen, die beim Aufruf der Methode abgearbeitet werden. Die Festlegung der Methode endet mit dem Schlüsselwort *Anweisung.

Beispiel 1: Neue Methode Umdrehen

Anweisung Umdrehen LinksDrehen LinksDrehen*Anweisung


Aufgabe: Karol soll einen Schritt rückwärts gehen.(Die Lösung greift nun auf die Anweisung Umdrehen zu.)

Anweisung Umdrehen LinksDrehen LinksDrehen *Anweisung Programm Umdrehen Schritt Umdrehen *Programm


Aufgaben

1. Bringe Karol mittels einer selbstdefinierten Anweisung bei, einen Riesenschritt auf einmal zu vollführen, der so groß wie drei normale Schritte ist.

Lösungsvorschlag anzeigen

2. Schreibe ein Karol-Programm, das ihn dazu bringt immer drei Schritte vorwärts und zwei zurück zu gehen. Nutze dabei die Anweisungen Umdrehen, SchrittZurueck, Riesenschritt und SillyWalk (= 3 vor, 2 zurück).

Lösungsvorschlag anzeigen

3. Bringe Karol den Rösslsprung bei, wie ihn die Springerfigur beim Schach ausführt. Erstelle ein Programm, so dass Karol mehrere Rösslsprünge ausführt und nach jedem Sprung eine Marke setzt.

 

Lösungsvorschlag anzeigen

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

SchrittSchrittSchrittHinlegenHinlegenHinlegen

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.

Weiterhin ist es mit Robot Karol (ab Version 3.0) möglich, den Methoden Hinlegen und MarkeSetzen eine Farbe (rot, gelb, blau und grün) zu übergeben.
Beispiel:

Hinlegen(blau)MarkeSetzen(grün)


Parameter können auch im Zusammenhang mit selbstdefinierten Anweisungen verwendet werden:

Anweisung Seite(X)Schritt(X)LinksDrehen*AnweisungSeite(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 selbstdefinierten Anweisungen und Anweisungen mit Parameterwert eine Säulenhalle bauen.

Lösungsvorschlag anzeigen

Aufgabe 2: Karol soll mit Hilfe einer selbstdefinierten Anweisung mit Parameterwert eine Treppe bauen.

Lösungsvorschlag anzeigen

Wiederholung mit fester Anzahl

Problem:Karol soll vier Ziegel in einer Reihe hintereinander legen.
Erste Lösung durch sequentielles Anschreiben der Anweisungen:

HinlegenSchrittHinlegenSchrittHinlegenSchrittHinlegenSchritt

Bei größerer Zahl von Wiederholungen erweist sich das Ganze als ungünstig.Bessere Lösung: Wiederholung mit fester Anzahl


Wiederholung mit fester Anzahl
Die Anweisungen im Wiederholungsteil werden nacheinander mehrfach ausgeführt (entsprechend der angegebenen Anzahl).
Sprache Karol:

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

Aufgaben

1. Karol soll mit Ziegeln ein Quadrat auslegen.

Lösungsvorschlag anzeigen

2. Die bereits bekannte Aufgabe Karol soll vier Ziegel nebeneinander legen. soll mit einer Wiederholungsanweisung gelöst werden.

Lösungsvorschlag anzeigen

3.In einer Welt der Größe 6x6 soll Karol mit Marken eine Diagonale erzeugen.

Lösungsvorschlag anzeigen

4. In einer Welt der Größe 9x9 erzeugt Karol ein Kreuz aus Marken.

Lösungsvorschlag anzeigen


5. In einer Welt der Größe 11x11 soll Karol folgendes Muster erzeugen. Verwende dabei eine selbstdefinierte Anweisung und eine Wiederholungsanweisung.

Lösungsvorschlag anzeigen

Geschachtelte Wiederholung

Problem: Karol soll einen Quadratrand auslegen.

Lösung

Der Quadratrand besteht aus vier Seiten (äußere Schleife). Jede Seite besteht wiederum aus drei Ziegeln (innere Schleife). Nach jeder Seite muss sich Karol links drehen.

Aufgaben

1. Karol soll in einer Welt der Größe 9x9 eine hübsche Gartenmauer bauen.

Lösungsvorschlag anzeigen

2. Die Aufgabe 1 im Kapitel "Parameter" (Säulenhalle) soll allein mit Wiederholungsanweisungen gelöst werden.

Lösungsvorschlag anzeigen


3. Karol soll eine Welt [8x8] vollständig mit Kacheln auslegen. Schreibe dazu einProgramm, das Anweisungen zur Lösung von Teilproblemen und geschachtelte Wiederholungenenthält. Überlege dir zuerst eine Strategie zur Lösung der Aufgabe, bei der du sie in solche Teilprobleme zerlegst.

Lösungsvorschlag anzeigen

Wiederholung mit Anfangsbedingung

Bestimmte Problemstellungen lassen sich mit den bisherigen Methoden und Kontrollstrukturennicht zufrieden stellend bearbeiten. Die Lösung der Aufgabe „Gehe bis zur nächstenWand“ hängt von der Startposition Karols ab. Um unabhängig von der Ausgangsstellung zusein, muss Karol eine Methode kennen, die eine Anfrage, ob er noch weitergehen kann, mitWAHR oder FALSCH beantwortet. Der Aufruf derartiger Methoden wird mit „Bedingung“umschrieben.

Karol hat auch Methoden, mit denen er auf eine Anfrage mit WAHR oderFALSCH antwortet. Der Aufruf einer Methode dieser Art heißt Bedingung.


Von Karol vorgegebene Bedingungen sind: IstWand, NichtIstWand, IstZiegel, NichtIstZiegel,IstMarke, NichtIstMarke, IstSüden, IstNorden, IstOsten, IstWesten.

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)


Problem: Karol soll, solange er nicht an eine Wand anstößt, vorwärts gehen.


Er muss den Vorgang „Schritt“ solange wiederholen, bis er auf die Frage NichtIstWand mitWAHR antwortet, da man die Anzahl der möglichen Schritte nicht im Voraus kennt. Sie istvon der Ausgangsposition Karols abhängig.


Lösung: Wiederholung mit Anfangsbedingung

Die Anweisungen im Wiederholungsteil werden so oft wiederholt, solangedie Bedingung WAHR ergibt. Die Überprüfung der Bedingung erfolgt amAnfang jeder Wiederholung.

Sprache Karol:

wiederhole solange Bedingung Anweisungen*wiederhole

Aufgaben

1. Karol soll in einer rechteckigen Welt von einer Ecke aus genau einmal um die Weltherumlaufen und seine Strecke dabei mit Ziegeln belegen.

Lösungsvorschlag anzeigen

2. Wie Aufgabe 1. Aber nun soll Karol an einem beliebigen Ort an der Wand starten.

Lösungsvorschlag anzeigen

3. Karol soll die bereits bekannt Aufgabe Kreuz aus Marken (siehe oben) so lösen, dass er das Kreuz in beliebigen quadratischen Welten mit ungerader Kantenlänge erzeugen kann.

Lösungsvorschlag anzeigen

Zweiseitige bedingte Anweisung

Das Programm für die Lösung der Aufgabe "Karol soll von einem beliebigen Punkt an der Wandaus einmal an der Wand entlang genau eine Runde laufen und dabei seine Ziegel hinlegen", lässtsich dadurch vereinfachen, dass wir ihn bei jedem Schritt entscheiden lassen, was er als nächstestut:
Solange er nicht an der Wand anstößt macht er jeweils einen Schritt. Stößt er an der Wand andreht er sich nach links. Der Vorteil ist, dass wir nicht mehr anzugeben brauchen, wie oft Karolsich drehen muss, bis er seine Runde absolviert hat.

Bedingte Anweisung (zweiseitig):
In Abhängigkeit davon, ob die Bedingung erfüllt wird oder nicht, werden dieAnweisungen1 bzw. die Anweisungen2 ausgeführt.

Sprache Karol:

wenn Bedingung dann Anweisungen1sonst Anweisungen2*wenn


Aufgaben

1. Das Beispielprogramm "Karol soll von einem beliebigen Punkt an der Wand aus einmal an derWand entlang genau eine Runde laufen und dabei seine Ziegel hinlegen" soll in ein Programmmit einer bedingten Anweisung umgewandelt und dadurch vereinfacht werden.

Lösungsvorschlag anzeigen


2. Wie Aufgabe 1, nur dass Karol von einem beliebigen Feld in der Welt startet und auch wieder anseinen Ausgangspunkt zurückkehrt.
a) Lösung ohne Verwendung der bedingten Anweisung.
b) Lösung unter Verwendung der bedingten Anweisung.

Lösungsvorschlag anzeigen

3.

a) Karol hat eine Reihe von Ziegelsteinen vor sich. Dort wo ein Stein liegt, soll er ihn wegnehmen, dort wo keiner liegt, soll er einen Stein hinlegen.
b) wie a), nur dass nun eine beliebige Zahl von Ziegeln übereinander liegen kann.
c) Nun soll Karol das Ganze 4 mal wiederholen, wobei er jeweils an der Wand entlang zurückgehen und zu seinem Ausgangspunkt zurückkehren soll.

Lösungsvorschlag anzeigen

Einseitige bedingte Anweisung

Aufgabe:
Karol soll eine lückenhafte Ziegelreihe auffüllen, bis er an der Wandankommt. Vor jedem Schritt muss er nur dann einen Ziegel legen, wennvor ihm keiner liegt. Falls bereits ein Ziegel vor ihm liegt, geschieht nichts.

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 nicht IstWand wenn nicht IstZiegel dann Hinlegen *wenn Schritt*wiederhole

Aufgaben

1. In einer Welt (9x8) sind 15 Marken beliebig verteilt. Karol soll von einem beliebigenStartpunkt ausgehend, alle Marken mit Ziegelsteinen belegen und dabei keine Markevergessen. Teste das Programm mit verschiedenen Startpunkten von Karol.

Lösungsvorschlag anzeigen


2. Karol soll von seinem üblichen Startpunkt eine Welt beliebiger Größe mit Marken kacheln und, wenn er damit fertig ist, das Programm mit dem Befehl beenden abbrechen. Es ist dazu eine Verschachtelung mehrerer bedingter Anweisungen nötig!

Lösungsvorschlag anzeigen

Übungsaufgaben

Aufgabe 1

In einer Welt soll Karol spiralförmig bis zum durch eine Marke gekennzeichneten Mittelpunkt laufen. Im Beispiel handelt es sich um eine Welt der Größe 13x12. Der Mittelpunkt befindet sich auf Punkt (7/7), wobei das linke obere Feld (1/1) sei. Grundsätzlich soll das Programm jedoch in allen vergleichbaren Welten laufen. Es ist bei der Aufgabe erforderlich in der 2D-Darstellung zu arbeiten.

Das Problem sollte wie gewohnt in Teilprobleme zerlegt werden, die dann nacheinander programmiert werden. In diesem Fall lässt sich die Aufgabe in vier Teilprobleme zerlegen: Es sind am Anfang und am Ende bestimmte Schritte zu erledigen, während die Spirale selbst in zwei Teilprobleme zerlegt werden kann.


Lösungsvorschlag

Aufgabe 2

Karol soll in einer beliebig großen Welt ein Schachbrett bauen.


Lösungsvorschlag

Aufgabe 3

In einer quadratischen Welt mit ungeradzahliger Seitenlänge soll Karol folgendes Muster erstellen:

Lösungsvorschlag

Aufgabe 4


Karol ist unter die Ritter gegangen. Er soll auf der Mauer seiner Burg patrouillieren, ohne herunterzufallen. Dazu muss er bei jedem Schritt überprüfen, ob er vor einer Kante steht. Als weitere Sicherheitsmaßnahme vor Feinden baut er hinter sich die Treppe ab.

Lösungsvorschlag

Aufgabe 5

Karol soll in einer beliebig großen Welt mit gerader Länge und gerader Breite (Bild: 10x10) und 10 Ziegeln Höhe eine Zinnenmauer bauen.

Lösungsvorschlag

Aufgabe 6

Karol soll im Ziegelparcours um die Ziegel herumlaufen und am Schluss bis zur Wand.

Lösungsvorschlag

Aufgabe 7

Karol ist auf dem Volksfest und soll in einem Wettbewerb Bierkisten stapeln. Dazu sind auf einer Bahn in unregelmäßigen Abständen Marken verteilt. Karol soll nun bis zur anderen Wand laufen und auf jeder Marke 5 Kisten stapeln.

Lösungsvorschlag

Aufgabe 8

Karol soll einen leeren Brunnen mit Marken als Boden bauen.

Lösungsvorschlag

Aufgabe 9

Karol steht auf einem beliebigen Platz und mit beliebiger Blickrichtung in der oberen Hälfte seiner Welt. Er soll nun den Durchgang durch die Mauer finden und anschließend zur Wand laufen.

Lösungsvorschlag

Aufgabe 10

Karol soll eine Pyramide in einer Welt mit maximaler Kantenlänge 20x20 bauen und mit Marken belegen.

Lösungsvorschlag

Aufgabe 11

Karol soll wie im Video dargestellt einen Kolben imitieren. Die Größe der Welt ist 4x4x10. In den Einstellungen soll Karol eine sehr geringe Ablaufverzögerung erhalten.

Lösungsvorschlag

Programmieren lernen mit Robot Karol – ComeniusWiki (2024)
Top Articles
Latest Posts
Recommended Articles
Article information

Author: Zonia Mosciski DO

Last Updated:

Views: 6043

Rating: 4 / 5 (71 voted)

Reviews: 86% of readers found this page helpful

Author information

Name: Zonia Mosciski DO

Birthday: 1996-05-16

Address: Suite 228 919 Deana Ford, Lake Meridithberg, NE 60017-4257

Phone: +2613987384138

Job: Chief Retail Officer

Hobby: Tai chi, Dowsing, Poi, Letterboxing, Watching movies, Video gaming, Singing

Introduction: My name is Zonia Mosciski DO, I am a enchanting, joyous, lovely, successful, hilarious, tender, outstanding person who loves writing and wants to share my knowledge and understanding with you.