|
|
Zeile 1: |
Zeile 1: |
| Die Fähigkeiten von Karol können durch neue, zusätzliche Methoden erweitert werden.
| | {{Box|Aufgabe 1.2 (ca. 15-20 min)|Bestimmen Sie mit welcher Durchschnittsgeschwindigkeit der Porsche in den folgenden Zeitintervallen gefahren ist. |
|
| |
|
| {{Fortsetzung|vorher=Erste Programme|vorherlink=Robot Karol/Erste Programme|
| | a) zwischen Sekunde 1 und 2 <br /> b) zwischen Sekunde 2 und 3 <br /> c) zwischen Sekunde 3 und 4 <br /> |
| weiter=Beispiele für Schleifen|weiterlink=Robot Karol/Beispiele für Schleifen|
| | Überprüfe Sie Ihre Ergebnisse in diesem Applet mit Hilfe [[Benutzer:PascalHänle/Grundvorstellungen zum Ableitungsbegriff/Vorwissen#Die mittlere .C3.84nderungsrate|<u>des geometrischen Zusammenhangs</u>]] der mittleren Änderungsrate und der Sekantensteigung.|Arbeitsmethode |
| ü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).
| | <iframe scrolling="no" title="Kopie von 1.2 Lösungskontrolle " src="https://www.geogebra.org/material/iframe/id/thh3v5ev/width/1536/height/748/border/888888/sfsb/true/smb/false/stb/false/stbh/false/ai/false/asb/false/sri/true/rc/false/ld/false/sdz/true/ctl/false" width="1536px" height="748px" style="border:0px;"> </iframe> |
| | |
| {{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]]
| |