Algorithmisches Problemlösenmit Scratch
Klaus Becker
2012
2
Algorithmisches Problemlösen / Scratch
3 Teil 1
Die Scratch-Welt
4 Eine Bühne mit Figuren
Die Scratch-Welt besteht aus einer Bühne, auf der Figuren agieren können.
5 Bausteine der Scratch-Welt
Eine Scratch-Welt ist aus Objekten aufgebaut.
Objekte
Objektfenster
Weltfenster
Objektname
Objekteigenschaften
6 Anweisungen / Programme
Anweisungen sind Bausteine zur Steuerung eines gegebenes Systems.
Jedes System (wie z.B. Scratch) stellt dem Benutzer sogenannte elementare Anweisungen bereit. Das sind die Anweisungen, die als Grundbausteine zur Verfügung stehen und die das System direkt ausführen kann.
Ein Programm ist eine Folge von Anweisungen.
elementare Anweisung
Programm
Anweisung
Kachelfenster Programmfenster
7 Ereignissteuerung
Scratch-Programme werden erst ausgeführt, wenn bestimmte Ereignisse eintreten.
Ereignis
Ereignis-behandlung
Beispiele für Ereignisse sind: die grüne Fahne wird angeklickt eine Taste wird gedrückt eine Figur wird angeklickt eine Nachricht wird empfangen
8 Übungen
Aufgabe Erstelle selbst eine Scratch-Welt. Gehe dabei so vor wie auf inf-schule 1.5.1.1.
9 Teil 2
Fallunterscheidungen
10 Problem - Radfahrer
Auf der Bühne befindet sich ein Radfahrer mit seinem Fahrrad. Bisher ist es so, dass der Radfahrer die Bühne (zumindest teilweise) verlassen kann. Das soll ab jetzt verhindert werden.
11 Problem - Radfahrer
Aufgabe:(a) Ändere das Programm des Radfahrers so ab, dass die Bühne nicht mehr verlassen werden kann. (b) Der Radfahrer soll mitdenken. Wenn die Grenze des erlaubten Bereichs erreicht wird, soll er "hoppla" denken, ansonsten "wow". In beiden Fällen musst du eine Fallunterscheidungskachel benutzen.
12 Problem - Radfahrer
Aufgabe:Mit der Leertaste soll man zwischen "Dämmerung" und "ganz dunkel" hin und her schalten können. Wenn es ganz dunkel ist, soll der Radfahrer ganz langsam fahren.
Aufgabe:Jetzt kommt auch noch ein Fußgänger ins Spiel. Klar, dass der Radfahrer anhalten muss, wenn der Fußgänger über die Straße geht.
13 Fallunterscheidungen
zweiseitige Fallunterscheidung
einseitige Fallunterscheidung
Eine Fallunterscheidung bzw. Entscheidungsanweisung dient dazu, alternative Abläufe zu beschreiben.
14 Fallunterscheidungen
Eine Fallunterscheidung bzw. Entscheidungsanweisung dient dazu, alternative Abläufe zu beschreiben.
Bedingung
Anweisungs-sequenz
Anweisungs-sequenz
Bedingung
Anweisungs-sequenz
15 komplexe Bedingungen
a b a und b
falsch falsch falsch
falsch wahr falsch
wahr falsch falsch
wahr wahr wahr
a b a oder b
falsch falsch falsch
falsch wahr wahr
wahr falsch wahr
wahr wahr wahr
a nicht a
falsch wahr
wahr falsch
Konjunktion
DisjunktionNegation und oder
nicht
logischer Operator
elementare Bedingung
Eine komplexe Bedingung wird aus elementaren Bedingungen und logischen Operatoren aufgebaut.
16 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.2.4.
17 Teil 3
Wiederholungen
18
Aufgaben: Bearbeite die Aufgaben auf inf-schule 1.5.3.1.
Problem - Sprünge wiederholen
19 Wiederholungen
bedingte Wiederholung
en
Eine Wiederholeanweisung mit vorgegebener Anzahl von Wiederholungen dient dazu, wiederholte Abläufe zu beschreiben, bei denen die Anzahl der Wiederholungen von vorneherein feststeht.
Eine bedingte Wiederholeanweisung dient dazu, wiederholte Abläufe zu beschreiben, bei der die Anzahl der Wiederholungen vom Eintreten einer Bedingung abhängt.
feste Anzahl von
Wiederholungen
20 bedingte Wiederholung
Bedingung
Anweisungs-sequenz
Zunächst wird überprüft, ob die angegebene Bedingung erfüllt ist. Ist das nicht der Fall, so werden die zu wiederholenden Anweisungen ausgeführt. Anschließend wird die Bedingung wieder überprüft und es beginnt der nächste Wiederholedurchgang. Erst wenn die Bedingung erfüllt ist, wird der Vorgang beendet.
21 Vorsicht: Wiederhole-Variantenwiederhole: [Anweisungssequenz] bis [Bedingung]
bis [Bedingung] wiederhole: [Anweisungssequenz]
Scratch-Version
Pascal: repeat
22 Vorsicht: Variantenbis [Bedingung] wiederhole: [Anweisungssequenz]
Scratch-Version
Python, Pascal: while
solange [Bedingung] wiederhole: [Anweisungssequenz]
23 Vorsicht: Endlosschleife
Bei einer Endlosschleife werden die zu wiederholenden Anweisungen - zumindest theoretisch - unendlich oft ausgeführt. Die Ausführung eines Programms mit einer Endlosschleife muss daher durch geeignete Maßnahmen unterbrochen werden.
24 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.3.5.
25 Teil 4
Algorithmen
26 Problem - Ball suchen
Der gelbe Fisch yello spielt gerne Blindekuh. Irgendwo im Aquarium ist ein schwebender Ball versteckt. yello will diesen Ball finden.
27 Problembeschreibung
Vor jeder Problembearbeitung sollte das zu lösende Problem möglichst klar beschrieben werden.
vorher: nachher:
vorher: nachher:
28
wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach unten wenn der Rand berührt wird: drehe dich nach links schwimme ein Stück nach oben wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach vorne wenn der Rand berührt wird: ...
Eine Lösungsstrategie
Aufgabe:(a) Beschreibe die Lösestrategie zunächst in Worten.(b) Ergänze anschließend die begonnene Präzisierung der Lösestrategie. (c) Übersetze die Beschreibung abschließend in ein Scratch-Programm.
29 Algorithmus
Ein Algorithmus ist eine Verarbeitungsvorschrift zur Lösung eines Problems, die so präzise formuliert ist, dass sie (zumindest im Prinzip) auch von einer Maschine abgearbeitet werden kann.
Algorithmus BallSuchen
wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach unten wenn der Rand berührt wird: drehe dich nach links schwimme ein Stück nach oben wiederhole bis der Rand oder der Ball berührt wird: schwimme ein Stück nach vorne wenn der Rand berührt wird: ...
30
Implementierung eines Algorithmus
Eine Implementierung eines Algorithmus ist eine Übersetzung und Anpassung des Algorithmus in eine bestimmte Programmierwelt.
...
31 Bausteine von Algorithmen
Kontrollstrukturen dienen dazu, den Ablauf der Ausführungsschritte festzulegen. Wesentliche Kontrollstrukturen sind die Fallunterscheidung, die Wiederholung sowie die Sequenzbildung (Hintereinanderreihung von Anweisungen).
Fallunterscheidung
Wiederholung
Sequenzbildung
32 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.4.4.
33 Teil 5
Teile und herrsche
34 Problem - Lebkuchenhaus
Aufgabe: Entwickle einen Algorithmus / ein Programm, mit dem die Hexe das Lebkuchenhaus bauen kann.
35 Problemlösestrategie
Hexe hui ist ganz schön raffiniert. Sie überlegt sich: "Um das Haus zu bauen, muss ich Lebkuchenreihen setzen. Eine Lebkuchenreihe erhalte ich, indem ich Lebkuchen nebeneinander setze. Einen Lebkuchen forme ich wie ein Quadrat."
36 Problemlösestrategie
Hexe hui ist ganz schön raffiniert. Sie überlegt sich: "Um das Haus zu bauen, muss ich Lebkuchenreihen setzen. Eine Lebkuchenreihe erhalte ich, indem ich Lebkuchen nebeneinander setze. Einen Lebkuchen forme ich wie ein Quadrat."
Aufgabe(a) Das gezeigte Hexenprogramm geht nach der beschriebenen Hexenstrategie vor. Wieso?(b) Ergänze die fehlenden Teile und teste das Programm.(c) Erweitere das Programm nach deinen Vorstellungen.
37 Teile und herrsche
Teile und herrsche ist eine Problemlösestrategie, bei der ein Problem immer weiter in Teilprobleme zerlegt wird, bis sich diese einfach lösen lassen. Aus den Lösungen der Teilprobleme wird dann die Lösung des Gesamtproblems zusammengesetzt.
Problem: Quadratfeld zeichnen
Problem: Quadratreihe zeichen
Problem: Quadrat zeichnen
Algorithmus: Quadratfeld zeichnen
wiederhole 8 mal: Quadratreihe zeichnen an neue Position gehenzurück zur Ausgangsposition gehen
Algorithmus: Quadratreihe zeichen
wiederhole 8 mal: Quadrat zeichnen an neue Position gehenzurück zur Ausgangsposition gehen
Algorithmus: Quadrat zeichnen
wiederhole 4 mal: Schritt vorwärts um 90° nach links drehen
38 Übungen
Bearbeite auch das Problem auf inf-schule 1.5.5.2.
39 Teil 6
Variablen
40 Problem - Sekunden zählen
Der Affe schiri soll das nächste Spiel pfeifen. Aber, wann geht es endlich los?
41 Problem - Sekunden zählen
Aufgabe(a) Das Programm benutzt eine Variable zaehler zum Sekundenzählen. Schaue dir das Programm genau an. Stelle eine Vermutung auf, was es leistet. Überprüfe anschließend deine Vermutung.(b) Ändere das Programm so ab, dass wie bei einem Countdown von 10 bis 0 heruntergezählt wird.
42 Problem - Sekunden zählen
Aufgabe(a) Das Programm benutzt eine Variable zaehler zum Sekundenzählen. Schaue dir das Programm genau an. Stelle eine Vermutung auf, was es leistet. Überprüfe anschließend deine Vermutung.(b) Ändere das Programm so ab, dass wie bei einem Countdown von 10 bis 0 heruntergezählt wird.
43 Variablen
Variablen dienen in der Informatik dazu, Daten zu verwalten. Eine Variable ist ein Name, der (in der Regel) mit einem Datenwert verknüpft ist.
Variable Wert
sekunden 21
minuten 3
stunden 13
Variablenzustand
{sekunden -> 21; minuten -> 3; stunden -> 13}
Kurzschreibweise
44 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.6.3.
45 Teil 7
Zuweisungen
46 Problem - Fußball
Kater oesi ist ein begnadeter Fußballspieler. Er versucht immer, aus allen Entfernungen auf das (linke) Tor zu schießen.
47 Tore schießen
Aufgabe:(a) Teste das gesamte Fußballprogramm. Beschreibe das Verhalten der Objekte möglichst präzise.(b) Es sollen auch die Fehlschüsse von oese mitgezählt werden. Erweitere die Programme in geeigneter Weise.
48 Ball platzieren
Verhaltensbeschreibung: Wenn das Objekt ball angeklickt wird, dann soll ball irgendwo im gelb markierten Feld platziert werden.
Aufgabe:(a) Erstelle für das Objekt ball das folgende Programm. Beachte, dass du hierzu zwei neue Variablen erzeugen musst.(b) Teste das Programm. Irgend etwas stimmt noch nicht. Das Objekt ball wird zwar an andere Orte gesetzt, aber nur in einem sehr eng begrenzten Bereich. Ändere das Programm geeignet ab.
49 Torentfernung berechnen
Verhaltensbeschreibung: Wenn das Objekt ball angeklickt wird, dann soll ball irgendwo im gelb markierten Feld platziert werden. Zusätzlich soll die Entfernung zum Tor berechnet und angezeigt werden.
Aufgabe:(a) Wie muss man die Bausteine zusammensetzen, um die Torentfernung zu berechnen?(b) Erzeuge die erforderlichen Variablen und ergänze das bereits entwickelte Programm so, dass jeweils auch die Torentfernung berechnet und angezeigt wird. Teste das erweiterte Programm.
50 Tore bejubeln
Verhaltensbeschreibung: Wenn oesi den ball in das Tor geschossen hat, dann soll oesi ganz laut "Too...oor" schreien.
Aufgabe:(a) Die Abbildung zeigt ein mögliches Programm zum Torjubel. Erstelle das Programm und teste es. Beachte, dass das Objekt ball den Torjubel auslösen muss.(b) Zähle bei jeweils die Anzahl der "o". Vergleiche mit der Torentfernung. Was fällt hier auf?(c) Analysiere das Programm. Kannst du erklären, wie der Torjubel hier zu Stande kommt?(d) Der Torjubel soll jetzt von der Anzahl der bereits geschossenen Tore abhängen. Bei jedem Tor wird der Torjubel um ein "o" länger. Kannst du das Programm entsprechend abändern?
51 Zuweisung
Eine Veränderung eines Variablenwerts bzw. des zugehörigen Speicherzelleninhalts kann mit Hilfe einer Zuweisung an die entsprechende Variable erfolgen.
setze hilf auf (hilf - 1)
Auswertung einer Zuweisung: Erst wird der Wert des Terms mit Hilfe des aktuellen Variablenzustands ermittelt. Dieser Wert wird dann der Variablen als neuer aktueller Wert zugewiesen.
Variable
Term
Aufbau Auswertung
setze hilf auf (hilf - 1)
{hilf -> 4}
{hilf -> 3}
4-1
Zustand - vorher
Zustand - nachher
Aufbau einer Zuweisung: Eine Zuweisung besteht aus einer Variablen (der ein Wert zugewiesen wird) und einem Term (der den zuzuweisenden Wert festlegt).
52 Trace-Tabelle
Trace-Tabelle
Mit einer Trace-Tabelle verdeutlicht man die Entwicklung der Variablenwerte.
53 Terme
Eine Wertzuweisung besteht aus einer Variablen (der ein Wert zugewiesen wird) und einem Term (der den zuzuweisenden Wert festlegt).
Terme können recht komplex werden. Sie können die gängigen Rechenoperationen, Zahlen, Variablen usw. enthalten und fast beliebig verschachtelt werden.
setze jubel auf 'T'
setze hilf auf gerundet(torentfernung / 10)
setze jubel auf verbinde(jubel, 'o')
setze hilf auf (hilf - 1)
54 Datentypen
Ein Datentyp beschreibt eine Menge von Datenobjekten, die alle die gleiche Struktur haben und mit denen die gleichen Operationen ausgeführt werden können.
Term
Term
Wert: Zahl
Wert: Zeichenkette
Term Wert: Wahrheitswert
55 Experimente mit Daten
Führe Experimente zur Verarbeitung von Daten mit unterschiedlichem Datentyp durch (siehe inf-schule 1.5.7.3 und 1.5.7.4.)
56 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.7.5.
57 Teil 8
EVA-Struktur
58 Problem - Handytarife
Ziel ist es, ein Programm zu entwickeln, mit dem man Handytarife miteinander vergleichen kann. Die folgende Abbildung zeigt einen einfachen Handykostenrechner.
59 Problem - Handytarife
Aufgabe:(a) Beschreibe die in der Abbildung zu erkennenden Handytarife A und B.(b) Welche Daten müssen an den Reglern vorab eingestellt werden? Welche Ergebnisse liefert der Handykostenrechner?(c) Wie kann der Handykostenrechner die Ergebnisse aus den eingestellten Daten berechnen?
60 Problem - Handytarife
Aufgabe:(a) Gehe die Anweisungen Schritt für Schritt durch und erkläre, was jeweils berechnet wird. Beachte, dass die beiden Variablen KostenA und KostenB Hilfsvariablen sind.(b) Gib das Programm selbst ein und teste es.(c) Erweitere den Handykostenrechner so, dass auch SMS-Kosten berücksichtigt werden.
61 Eingabe - Verarbeitung - Ausgabe
Programme, die eine EVA-Struktur aufweisen, verarbeiten Benutzereingaben und geben die Ergebnisse der Verarbeitung in einer für den Benutzer verständlichen Weise wieder aus. GrundgebührA-Euro
GrundgebührB-Euro
GrundgebührA-Cent
GrundgebührB-Cent
MinutenpreisA-Cent
MinutenpreisB-Cent
Gesprächsminuten
KostenA-Euro
KostenB-Euro
KostenA-Cent
KostenB-Cent
"Position von tipp"
V(erarbeitung)
E(ingabe)
A(ausgabe)
62 Übungen
Bearbeite eine der Aufgaben auf inf-schule 1.5.8.3.