3. Kurs-Arbeit „Informatik plus..“ 9 Fu (Di. 13. 3. 2001)
Name: .............................Gr(F)
1. Schreibe mit LOGO-Schlüsselworten (in Grossbuchstaben) ohne Variablen oder Parameter
a)
eine
Prozedur kreis, die einen Kreis als 36-Eck mit 11 Schritten als
Seitenlänge annähert
b) eine Prozedur rosette, die punktsymmetrisch aus 12 kreisen gezeichnet wird.
2.a) Untersuche,
was die folgende Prozedur zeichnet mit dem Aufruf: quadrate 40
PR quadrate :SL
RE 90
WH 3 [ WH 4 [VW :SL LI 90] VW :SL
]
ENDE
b) Verbessere die obige Prozedur durch das Vermeiden von geschachtelten Wiederholungsschleifen.
c) Vervollständige die folgenden Prozeduren derart, dass sie abwechselnd Quadrate mit 40 und 50 Schritten als Seitenlänge nebeneinander zeichnen:
PR anfang.quadrate
BILD
quadrate 40
quadrate 50
...
ENDE
PR
quadrate :SL
RE 90
Quadrat :SL VW :SL
...
ENDE
PR quadrat :SL
...

d)
Schreibe nun eine Prozedur, die wie nebenstehend skizziert Rechtecke
mit derselben Breite 20, aber unterschiedlicher Höhe :h nebeneinander
zeichnet (wie bei Stabdiagrammen).
3. a) Untersuche,
was in folgenden Prozeduren mit den Befehlen DRUCKEZEILE kurz: DZ jeweils im Textfenster dargestellt
wird:
PR Anfang.variablen
BILD
Zielscheibe 8
(DZ "SL = " :SL)
(DZ
"radius = " :radius)
ENDE
PR
Zielscheibe :ez
LOKAL
"radius"
SETZE
"radius" 10
WH 12 [kreis
:ez :radius SETZE "radius" (:radius
+ 10)]
ENDE
PR kreis :ez :r
SH VW :r RE (90 + 180 / :ez) SA
nEck :ez :r
SH LI (90 + 180 / :ez) RW :r SA
ENDE
PR nEck :ez :r
;* LOKAL
"SL"
SETZE
"SL" (6,28 * :r / :ez)
WH 36 [VW :sl RE (360 / :ez)]
(DZ "Radius = " :radius)
ENDE
b) Beschreibe, wie wir mit
Zufallszahlen eine Annäherung des Kreis-Flächeninhalts
A = Pi * radius * radius = 3,14 * r^2 programmiert haben.
PR anfang.PiNäherung
SETZE
"treffer" 0
WH 100
[tropfen]
(DZ
"Also sind von 100 zufälligen Punkten " :treffer
" innerhalb des Kreises mit dem Radius 100")
(DZ "Kreisfläche pro Quadratfläche =
Treffer pro Anzahl = " (:treffer / 100))
(DZ
"Pi-Annäherung = 4 * Treffer pro Anzahl = " (4 * :treffer / 100))
ENDE
PR tropfen
LOKAL
"x" SETZE "x" ( ZUFALLSZAHL 200)
LOKAL
"y" SETZE "y" (ZUFALLSZAHL 200)
LOKAL
"abstand"
SETZE
"abstand" (QW ((100 - :x) * (100 - :x) +
(100 - :y) * (100 - :y)))
(DZ
"Abstand des Zufallspunktes (" :x
" ;" :y ") vom Mittelpunkt
(100;100) = " :abstand)
WENN :abstand < 100 DANN
SETZE "treffer" (:treffer + 1)
ENDE
4. Schreibe
a) in iterativer Formulierung
und
b) dann auch mit Rekursion
Prozeduren,
die gleichseitige Dreiecke
zeichnen,
deren Eckpunkte folgendermaßen
jeweils auf den Mittelpunkten der vorherigen Dreieckseiten liegen:
Gutes Gelingen !!!