Einfache Logo-Beispiele - Quellcode
Dreieck1
Treppe1
Treppe2
Treppe3
Treppe3b
Summe1
Aufgabe: quadrat2
Zeichne ein Quadrat "quadrat2" mit der Kantenlänge a (rechtsumlaufend).
Verwende repeat.
Lösung
Puzzle
Aufgabe: gsd1
Zeichne ein gleichseitiges Dreieck "gsd1" mit der Kantenlänge a (rechtsumlaufend).
Lösung finden
Aufgabe: gsd2
Zeichne - wie in der vorherigen Aufgabe - ein gleichseitiges Dreieck "gsd2" mit der Kantenlänge a (rechtsumlaufend).
Verwende repeat. Diesmal soll die untere Seite des Dreiecks waagerecht verlaufen.
Lösung finden
Aufgabe: treppe1
Zeichne eine von links nach rechts ansteigende Treppe.
Höhe und Tiefe der Stufen haben die Länge a.
Die Anzahl der Stufen ist n (Variable für repeat !)
Lösung finden
Aufgabe: treppe2
Diesmal sollen die Treppenstufen die Höhe a aber die Tiefe 2a haben.
Lösung finden
Aufgabe: treppe3
Wie bei Treppe1 sind die Stufen genau so tief wie hoch.
Zu Beginn ist dieser Wert = a.
Von Stufe zu Stufe wird der Wert aber um a erhöht.
Dazu benötigt man eine "make"-Anweisung und eine neue Variable (z.B.) b.
Auch den Rückweg muss man sich genau überlegen.
Bei dieser Lösung verwendet man dazu 2 weitere Repeat-Anweisungen.
Lösung finden
Aufgabe: treppe3b
Hier wird der Rückweg schon in der ersten Repeat-Anweisung vorbereitet.
Die zurückgelegten Wege werden in einer Variablen c aufsummiert.
Lösung
Aufgabe: summe1
Es soll die Summe der Zahlen von 1 bis n berechnet werden: 1+2+3+...+n.
Dazu müssen die Werte 1, 2, 3 ( i ) berechnet werden und in einer weiteren Variablen ( s ) aufsummiert werden.
Lösung finden
Aufgabe: strasse
In der Prozedur strasse werden z.B. folgende
Prozeduren zumstart haus 2 haus 5 haus 3 haus 4 haus 0 haus1 aufgerufen. Die Prozedur zumstart bringt den Igel zunächst nach "links unten".
Die Prozedur haus verwendet dann z.B. die Prozeduren eingang etage dach und setzt entsprechend viele Etagen zwischen Erdgeschoss (Eingang) und Dach.
Wie man sieht, kann man innerhalb einer Prozedur wieder andere Prozeduren aufrufen:
to strasse
zumstart
haus 2
haus 5
...
end
In der Prozedur Haus wird die Prozedur etage sogar mit Hilfe einer Repeat-Schleife mehrfach aufgerufen.
Die Häuser können auch etwas anders (nicht zu einfach) gestaltet sein. Es müssen mindestens 5 Häuser in eine Straße gehen.
Wer es schafft, kann die Häuser mit Hilfe einer Maßstabsvariablen auch beliebig klein werden lassen. Viel Spaß.
Zerlegung in Prozeduren
Ein Haus besteht aus einem Eingangsbereich eingang (Erdgeschoss), mehreren gleich aussehenden Zwischengeschossen etage und einem Dachgeschoss dach.
Jede dieser Prozeduren kann einzeln entwickelt werden.
Man muss lediglich darauf achten, dass das Haus die gleiche Breite behält. Außerdem muss das Aneinandersetzen funktionieren. In dem Beispiel stehen die grünen Punkte für den Start und die roten Punkte für das Ende der jeweiligen Zeichnung.
Für das ganze Haus muss man dann z.B. noch die rote Pfeilspitze erreichen, um dort das nächste Haus aufbauen zu können.
Erweiterte Lösung strasse2
In dieser besonders schönen Lösungsvariante von Fabian Thomas, 9c werden Zufallsvariablen mehrfach eingesetzt.
Mit repeat 6 wird die Prozedur haus 6-mal aufgerufen, wobei
die Zahl der Zwischenetagen bei jedem Aufruf von haus per Zufall neu bestimmt wird.
In Verbindung mit ifelse werden per Zufall auch der jeweilige Dachtyp (rundes, ein oder zwei eckige Fenster) und
der Fenstertyp (beleuchtet oder grau) bestimmt. Alle Flächen sind eingefärbt (setfloodcolor und fill).
Aufgabe: kette
In der Prozedur kette wird eine Kette erzeugt, die aus den drei verschiedenen Elementen (Prozeduren) kreis, quad, raute besteht.
Die Anzahl der Elemente soll wählbar sein: n (hier n=10). Die Elemente werden mit repeat zufällig aneinandergereiht.
Da es sich um drei Alternativen handelt muss man zwei verschachtelte ifelse-Anweisungen verwenden.
Zunächst muss man den Igel in eine Startposition am linken Rand bringen, damit man genug Platz für eine Kette bekommt
Die Elemente sollen den wählbaren Abstand d bekommen. Auch die Größe der Elemente soll wählbar sein a.
Aus praktischen Gründen soll der Igel beim Start des jeweiligen Elementes links vor dem Element und bezüglich der Höhe in der Mitte stehen und nach rechts gerichtet sein.
Lösung
Wird demnächst fortgesetzt / Helmut Klatt 5.3.05