Prüfungsvorbereitung Scratch Aufgaben - gxy.ch

Prüfungsvorbereitung Scratch Aufgaben - gxy.ch Prüfungsvorbereitung Scratch Aufgaben - gxy.ch

19.01.2015 Aufrufe

Prüfungsvorbereitung Scratch Aufgaben 1. Warum kann man Scratch als objektorientierte Programmiersprache bezeichnen 2. Wie kann das durch den Block rechts dargestellte Programm besser programmiert werden Skizziere die entsprechende Konstruktion. 3. Gib die Koordinaten der Spielfigur an, nachdem der Programmblock rechts ausgeführt wurde. Hinweis: ” zeige Richtung 90“ bedeutet, dass die Spielfigur exakt nach rechs orientiert ist. 4. Schreibe ein Scratch-Programm, in dem du eine sich gleichmässig bewegende Spielfigur mit der Tastatur steuern kannst. Welche Tasten du wählst und wie gross der Kurvenradius ist, spielt dabei keine Rolle. 5. Jede berechenbare Funktion kann aus den drei elementaren Kontrollstrukturen Sequenz, Alternative und Iteration konstruiert werden (Böhm und Jacopini, 1966). Es gibt verschiedene Modelle, um diese Kontrollstrukuren graphisch darzustellen. Eine davon sind Nassi-Shneidermann-Diagramme. Sie werden zwar selten verwendet aber ihre Verwandschaft mit den Programmbildern von Scratch machen sie für uns interessant. • Sequenz Anweisung Anweisung . . . • Alternative Bedingung ja Anweisung(en) Anweisung(en) nein Anweisung(en) • Iteration (abweisend) Bedingung Anweisung(en) Anweisung(en) Iteration (annehmend) Anweisung(en) Anweisung(en) Bedingung Iteration (endlos) Anweisung(en) Anweisung(en) 1

Prüfungsvorbereitung <strong>Scrat<strong>ch</strong></strong> <strong>Aufgaben</strong><br />

1. Warum kann man <strong>Scrat<strong>ch</strong></strong> als objektorientierte Programmierspra<strong>ch</strong>e bezei<strong>ch</strong>nen<br />

2. Wie kann das dur<strong>ch</strong> den Block re<strong>ch</strong>ts<br />

dargestellte Programm besser programmiert<br />

werden Skizziere die entspre<strong>ch</strong>ende<br />

Konstruktion.<br />

3. Gib die Koordinaten der Spielfigur an,<br />

na<strong>ch</strong>dem der Programmblock re<strong>ch</strong>ts<br />

ausgeführt wurde.<br />

Hinweis: ”<br />

zeige Ri<strong>ch</strong>tung 90“ bedeutet,<br />

dass die Spielfigur exakt na<strong>ch</strong> re<strong>ch</strong>s orientiert<br />

ist.<br />

4. S<strong>ch</strong>reibe ein <strong>Scrat<strong>ch</strong></strong>-Programm, in dem du eine si<strong>ch</strong> glei<strong>ch</strong>mässig bewegende Spielfigur<br />

mit der Tastatur steuern kannst. Wel<strong>ch</strong>e Tasten du wählst und wie gross der<br />

Kurvenradius ist, spielt dabei keine Rolle.<br />

5. Jede bere<strong>ch</strong>enbare Funktion kann aus den drei elementaren Kontrollstrukturen Sequenz,<br />

Alternative und Iteration konstruiert werden (Böhm und Jacopini, 1966).<br />

Es gibt vers<strong>ch</strong>iedene Modelle, um diese Kontrollstrukuren graphis<strong>ch</strong> darzustellen.<br />

Eine davon sind Nassi-Shneidermann-Diagramme. Sie werden zwar selten verwendet<br />

aber ihre Verwands<strong>ch</strong>aft mit den Programmbildern von <strong>Scrat<strong>ch</strong></strong> ma<strong>ch</strong>en sie für uns<br />

interessant.<br />

• Sequenz<br />

Anweisung<br />

Anweisung<br />

. . .<br />

• Alternative<br />

Bedingung<br />

ja<br />

Anweisung(en)<br />

Anweisung(en)<br />

nein<br />

Anweisung(en)<br />

• Iteration (abweisend)<br />

Bedingung<br />

Anweisung(en)<br />

Anweisung(en)<br />

Iteration (annehmend)<br />

Anweisung(en)<br />

Anweisung(en)<br />

Bedingung<br />

Iteration (endlos)<br />

Anweisung(en)<br />

Anweisung(en)<br />

1


(a) Wel<strong>ch</strong>e der drei Kontrollstrukturen wird in <strong>Scrat<strong>ch</strong></strong> anders als in Nassi-Shneiderman-<br />

Diagrammen dargestellt<br />

(b) Wel<strong>ch</strong>en Wert hat die Variable x am Ende des Programms, wel<strong>ch</strong>es dur<strong>ch</strong> das<br />

folgende Nassi-Shneiderman-Diagramm dargestellt wird. (Das Symbol := ist<br />

der Zuweisungsoperator. Zuerst wird der re<strong>ch</strong>ts stehende Ausruck bere<strong>ch</strong>net.<br />

Dana<strong>ch</strong> wird das Ergebnis der links stehenden Variable zugewiesen.)<br />

x := 9<br />

x < 20<br />

x := x + 3<br />

x > 21<br />

ja nein<br />

x := 3x x := 4x<br />

x := x mod 5<br />

(c) Eine s<strong>ch</strong>wierigere Aufgabe: Wel<strong>ch</strong>en Wert haben die Variablen x und y am<br />

Ende der vers<strong>ch</strong>a<strong>ch</strong>telten S<strong>ch</strong>leifenkonstruktion<br />

x := 1, y := 1<br />

x < 10<br />

x := x + y<br />

y < 10<br />

y := x + y<br />

6. Wel<strong>ch</strong>e Zahl wird von der Sprite-Figur am Ende des folgenden Programmfragments<br />

ausgegeben<br />

7. Skizziere die Grafik, wel<strong>ch</strong>e die Sprite-Figur auf der Bühne zei<strong>ch</strong>net. Die Zei<strong>ch</strong>nung<br />

soll das Prinzip zeigen, muss aber ni<strong>ch</strong>t massstabsgetreu sein.<br />

2


Prüfungsvorbereitung <strong>Scrat<strong>ch</strong></strong> Lösungen+<br />

1. • Jede einzelne Spielfigur ist ein Objekt (Instanz) der Klasse von Spielfiguren.<br />

Es gibt aber au<strong>ch</strong> ”<br />

globale“ Objekte wie die Bühne und die die Stoppuhr.<br />

2.<br />

• Jede Spielfigur hat Eigens<strong>ch</strong>aften (Kostüm, Position, Si<strong>ch</strong>tbarkeit, Malstiftfarbe,<br />

. . . )<br />

• Jede Spielfigur hat Methoden (Bewegung, Bots<strong>ch</strong>aften senden und empfangen,<br />

auf Tastatureingaben reagieren, den Zei<strong>ch</strong>enstift senken bzw. anheben, . . . )<br />

3. (55, 0)<br />

4. Lösungsvors<strong>ch</strong>lag (a) Lösungsvors<strong>ch</strong>lag (b)<br />

5. (a) Die beiden Zweige einer Alternative werden im Nassi-Shneiderman-Diagramm<br />

nebeneinander, in <strong>Scrat<strong>ch</strong></strong> aber untereinander dargestellt.<br />

(b) • Zuerst hat die Variable x den Wert 9.<br />

• Die folgende abweisende S<strong>ch</strong>leife kontrolliert, ob der Wert von x kleiner als<br />

20 ist. Falls ja, wird im S<strong>ch</strong>leifenrumpf der Wert von x um 3 erhöht und<br />

und die S<strong>ch</strong>leife von neuem dur<strong>ch</strong>laufen. Dabei bestehen die Werte 9, 12,<br />

15, 18 den ”<br />

S<strong>ch</strong>leifeneintrittstest“. Na<strong>ch</strong>dem x = 18 die Prüfung bestanden<br />

hat, werden 3 addiert, so dass x den Wert 21 hat und die S<strong>ch</strong>leife damit<br />

kein weiteres Mal dur<strong>ch</strong>laufen werden kann. Somit gehen wir mit x = 21<br />

in den nä<strong>ch</strong>sten Abs<strong>ch</strong>nitt.<br />

• In der Alternative wird geprüft, ob x < 21 ist. Da dies ni<strong>ch</strong>t der Fall ist,<br />

wird der Zweig gewählt, in dem x vervierfa<strong>ch</strong>t wird. Somit erhalten wir<br />

x = 84.<br />

1


• Am Ende kommen laufen die beiden Zweige zusammen.<br />

x mod 5 bedeutet, dass der Rest der Division von x dur<strong>ch</strong> 5 gebildet wird.<br />

Für x = 84 ist dies 4.<br />

Somit hat am Ende die Variable x den Wert x = 4.<br />

(c) Mit x = 1 und y = 1 gehen wir in die äussere S<strong>ch</strong>leife und erhalten so den<br />

Wert x = 1 + 1 = 2. Da y = 1 gilt, treten wir in die innere S<strong>ch</strong>leife ein<br />

und erhalten y = 3. Mit diesem Wert bleiben wir in der inneren S<strong>ch</strong>leife und<br />

erhalten y = 2 + 3 = 5 und weiter y = 2 + 5 = 7 sowie y = 2 + 7 = 9.<br />

Damit können wir (ein letztes Mal) in die innere S<strong>ch</strong>leife eintreten und erhalten<br />

y = 11. Ein weiteres Dur<strong>ch</strong>laufen der inneren S<strong>ch</strong>leife bleibt somit verwehrt.<br />

Deshalb kehren wir in die äussere S<strong>ch</strong>leife zurück und erhalten x = 2+11 = 13<br />

was einen weiteren Dur<strong>ch</strong>lauf der äusseren S<strong>ch</strong>liefe stoppt.<br />

Somit endet das Programmfragment mit den Werten x = 13 und y = 11.<br />

6.<br />

7.<br />

2

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!