Robot Karol/selbstdefinierte Methoden: Unterschied zwischen den Versionen
main>MieP-- |
Markierung: 2017-Quelltext-Bearbeitung |
||
(24 dazwischenliegende Versionen von 5 Benutzern werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
Die Fähigkeiten von Karol können durch neue, zusätzliche Methoden erweitert werden. | |||
== | {{Fortsetzung|vorher=Erste Programme|vorherlink=Robot Karol/Erste Programme| | ||
weiter=Beispiele für Schleifen|weiterlink=Robot Karol/Beispiele für Schleifen| | |||
übersicht=Robot Karol}} | |||
== Selbstdefinierte Methoden == | |||
Diese '''selbstdefinierten Anweisungen''' müssen vorher vom Programmierer festgelegt werden. Neue Methoden beginnen stets mit dem Wort <code>Anweisung</code> und dann mit dem '''Bezeichner''' der Methode. Es folgt eine Sequenz von Anweisungen (ein '''Anweisungsblock'''), die beim Aufruf der Methode abgearbeitet werden. Die Festlegung der Methode endet mit dem Schlüsselwort <code>*Anweisung</code>. | |||
'''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ösung versteckt| | |||
Anweisung Riesenschritt | |||
Schritt | |||
Schritt | |||
Schritt | |||
*Anweisung | |||
Programm | |||
Riesenschritt | |||
*Programm | |||
}} | |||
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ösung versteckt| | |||
Anweisung Umdrehen | |||
LinksDrehen | |||
LinksDrehen | |||
*Anweisung | |||
Anweisung SchrittZurueck | |||
Umdrehen | |||
Schritt | |||
Umdrehen | |||
*Anweisung | |||
Anweisung Riesenschritt | |||
Schritt | |||
Schritt | |||
Schritt | |||
*Anweisung | |||
Anweisung SillyWalK | |||
Riesenschritt | |||
SchrittZurueck | |||
SchrittZurueck | |||
*Anweisung | |||
Programm | |||
SillyWalk | |||
SillyWalk | |||
SillyWalk | |||
SillyWalk | |||
*Programm | |||
}} | |||
[[Datei:Screenshot Roesselsprung.jpg|right|Screenshot Rösselsprung]] | |||
3. Bringe Karol den Rösselsprung bei, wie ihn die Springerfigur beim Schach ausführt. Erstelle ein Programm, so dass Karol mehrere Rösselsprünge ausführt und nach jedem Sprung eine Marke setzt. | |||
{{Lösung versteckt| | |||
Lösungsmöglichkeit 1: Man geht davon aus, dass man ausgehend von der Blickrichtung von Karol vier Methoden benötigt. Wenn Karol sich einmal um 180 Grad dreht, kann er dieselben vier Methoden nutzen. | |||
Anweisung linksFlach | |||
LinksDrehen | |||
Schritt | |||
Schritt | |||
RechtsDrehen | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Anweisung linksSteil | |||
LinksDrehen | |||
Schritt | |||
RechtsDrehen | |||
Schritt | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Anweisung rechtsFlach | |||
RechtsDrehen | |||
Schritt | |||
Schritt | |||
LinksDrehen | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Anweisung rechtsSteil | |||
RechtsDrehen | |||
Schritt | |||
LinksDrehen | |||
Schritt | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Programm | |||
MarkeSetzen | |||
LinksFlach | |||
RechtsSteil | |||
LinksSteil | |||
*Programm | |||
Lösungsmöglichkeit 2: Man geht davon aus, dass Karol mit zwei Methoden auskommt, die er nach einer Drehung um 90 Grad wieder nutzen kann. Hier gibt es wiederum vier Möglichkeiten: Entweder '''rechtsSteil''' und '''rechtsFlach''' bzw. '''linksSteil''' und '''linksFlach''' , '''rechtsSteil''' und '''linksSteil''' oder '''linksFlach''' und '''rechtsFlach'''. | |||
Anweisung linksFlach | |||
LinksDrehen | |||
Schritt | |||
Schritt | |||
RechtsDrehen | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Anweisung linksSteil | |||
LinksDrehen | |||
Schritt | |||
RechtsDrehen | |||
Schritt | |||
Schritt | |||
MarkeSetzen | |||
*Anweisung | |||
Programm | |||
MarkeSetzen | |||
LinksFlach | |||
rechtsDrehen | |||
LinksFlach | |||
linksDrehen | |||
LinksSteil | |||
*Programm}} | |||
== 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. | |||
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 | |||
*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. | |||
=== Aufgaben === | |||
[[Datei:Karol saeulenhalle.jpg|right|Screenshot]]'''Aufgabe 1:''' Karol soll mit Hilfe von selbstdefinierten Anweisungen und Anweisungen mit Parameterwert eine Säulenhalle bauen. | |||
{{Lösung versteckt| | |||
Anweisung Säule | |||
Schritt | |||
LinksDrehen | |||
Hinlegen(6) | |||
RechtsDrehen | |||
Schritt | |||
*Anweisung | |||
Anweisung Seite | |||
Säule | |||
Säule | |||
*Anweisung | |||
Anweisung Kehre | |||
Schritt(2) | |||
LinksDrehen | |||
*Anweisung | |||
Programm | |||
Seite | |||
Kehre | |||
Seite | |||
Kehre | |||
Seite | |||
Kehre | |||
Seite | |||
Kehre | |||
*Programm | |||
Alternative Lösung: | |||
Anweisung Seite | |||
Schritt | |||
LinksDrehen | |||
Hinlegen(3) | |||
RechtsDrehen | |||
Schritt(2) | |||
LinksDrehen | |||
Hinlegen(6) | |||
RechtsDrehen | |||
Schritt(2) | |||
LinksDrehen | |||
Hinlegen(3) | |||
RechtsDrehen | |||
Schritt | |||
LinksDrehen | |||
*Anweisung | |||
Programm | |||
Seite | |||
Seite | |||
Seite | |||
Seite | |||
*Programm}} | |||
{{clear}} | |||
[[Datei:Karol treppe.jpg|right|Screenshot]] | |||
'''Aufgabe 2:''' Karol soll mit Hilfe einer selbstdefinierten Anweisung mit Parameterwert eine Treppe bauen. | |||
{{Lösung versteckt| | |||
Anweisung Stufe(X) | |||
Hinlegen(X) | |||
Schritt | |||
*Anweisung | |||
Programm | |||
LinksDrehen | |||
Stufe(1) | |||
Stufe(2) | |||
Stufe(3) | |||
Stufe(4) | |||
Stufe(3) | |||
Stufe(2) | |||
Stufe(1) | |||
Schritt | |||
*Programm | |||
}} | |||
{{clear}} | |||
{{Fortsetzung|vorher=Erste Programme|vorherlink=Robot Karol/Erste Programme| | |||
weiter=Beispiele für Schleifen|weiterlink=Robot Karol/Beispiele für Schleifen| | |||
übersicht=Robot Karol}} | |||
==Quellen== | |||
http://www.mirko-hans.de/info/profil/nawi/algo/dateien/Algorithmierung_Robot-Karol.pdf | |||
[[Kategorie:Robot Karol]] |
Aktuelle Version vom 21. August 2019, 08:04 Uhr
Die Fähigkeiten von Karol können durch neue, zusätzliche Methoden erweitert werden.
Selbstdefinierte Methoden
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 (ein Anweisungsblock), 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. 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).
3. Bringe Karol den Rösselsprung bei, wie ihn die Springerfigur beim Schach ausführt. Erstelle ein Programm, so dass Karol mehrere Rösselsprünge ausführt und nach jedem Sprung eine Marke setzt.
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.
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 *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.
Aufgaben
Aufgabe 1: Karol soll mit Hilfe von selbstdefinierten Anweisungen und Anweisungen mit Parameterwert eine Säulenhalle bauen.
Aufgabe 2: Karol soll mit Hilfe einer selbstdefinierten Anweisung mit Parameterwert eine Treppe bauen.
Quellen
http://www.mirko-hans.de/info/profil/nawi/algo/dateien/Algorithmierung_Robot-Karol.pdf