Programmieren lernen mit Robot Karol: Unterschied zwischen den Versionen

Aus ComeniusWiki
Wechseln zu: Navigation, Suche
Zeile 173: Zeile 173:
 
<br>
 
<br>
 
[[Lösungsvorschlag Selbstdefinierte Methoden|Lösungsvorschlag]]
 
[[Lösungsvorschlag Selbstdefinierte Methoden|Lösungsvorschlag]]
 +
|width=20px|
 +
|width=300px |
 +
|}
 +
 +
 +
== Wiederholung mit fester Anzahl ==
 +
{|
 +
|width=800px|
 +
'''Aufgabe:'''
 +
Karol soll vier Ziegel in einer Reihe hintereinander legen.<br>
 +
Erste Lösung durch sequentielles Anschreiben der Anweisungen:
 +
<pre>
 +
Hinlegen
 +
Schritt
 +
Hinlegen
 +
Schritt
 +
Hinlegen
 +
Schritt
 +
Hinlegen
 +
Schritt
 +
</pre>
 +
Bei größerer Zahl von Wiederholungen erweist sich das Ganze als ungünstig.
 +
'''Bessere Lösung:''' Wiederholung mit fester Anzahl
 +
 +
 +
'''Wiederholung mit fester Anzahl'''<br>
 +
Die Anweisungen im Wiederholungsteil werden nacheinander mehrfach ausgeführt (entsprechend der angegebenen Anzahl).<br>
 +
Sprache Karol:
 +
<pre>
 +
wiederhole n mal
 +
  Anweisungen
 +
*wiederhole
 +
</pre>
 +
 +
Die günstigere Lösung für unsere Aufgabe sieht dann wie folgt aus:
 +
<pre>
 +
wiederhole 4 mal
 +
  hinlegen
 +
  schritt
 +
*wiederhole
 +
</pre>
 +
 +
'''Aufgabe 1:''' Karol soll mit Ziegeln ein Quadrat auslegen.
 +
 +
[[Bild:Screenshot_Quadrat.JPG]]
 +
 +
'''Geschachtelte Wiederholung'''<br>
 +
 +
'''Beispiel:''' Karol soll einen Quadratrand auslegen.
 +
 +
[[Bild:Screenshot_Quadratrand.JPG]]
 +
 +
'''Lösung'''
 +
 +
<pre>
 +
wiederhole 4 mal
 +
  wiederhole 3 mal
 +
      Hinlegen
 +
      Schritt
 +
  *wiederhole
 +
  LinksDrehen
 +
*wiederhole
 +
</pre>
 +
 
|width=20px|
 
|width=20px|
 
|width=300px |  
 
|width=300px |  
 
|}
 
|}

Version vom 23. April 2013, 19:32 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.

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. KarolsWelt.JPG


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.
  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.
  3. Karol soll vier Ziegel in einer Reihe nebeneinander legen.

Lösungsvorschlag


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.
  2. 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.
 Screenshot Roesselsprung.JPG


Lösungsvorschlag


Wiederholung mit fester Anzahl

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

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


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

Aufgabe 1: Karol soll mit Ziegeln ein Quadrat auslegen.

Screenshot Quadrat.JPG

Geschachtelte Wiederholung

Beispiel: Karol soll einen Quadratrand auslegen.

Screenshot Quadratrand.JPG

Lösung

wiederhole 4 mal
   wiederhole 3 mal
      Hinlegen
      Schritt
   *wiederhole
   LinksDrehen
*wiederhole