Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder...
Transcript of Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder...
Programmierkonzepte
in
PHZH | Zentrum Medienbildung und Informatik | 2019
2 / 12
Inhaltsverzeichnis Programmierkonzept Seite Anweisung 3 Sequenz 3 Schleife 4 Bedingung 5 Ereignis 6 Unterprogramm 7 Parameter 8 Variable 9 Boolesche Algebra I 10 Boolesche Algebra II 11 Datentypen 12
Impressum Version: 1.0 Datum: Februar 2019
PHZH | Zentrum Medienbildung und Informatik | 2019
3 / 12
s3.1.psd
a2.psd
Anweisung Eine Anweisung ist ein eindeutiger Befehl,
der ein Objekt im Programm manipuliert.
Anweisungsblöcke haben diese Form:
Diese Blöcke manipulieren zum Beispiel das
Aussehen, die Bewegung der Figur oder die
Klangausgabe des Programms. Die Malstift-
blöcke zur Steuerung des Malstifts müssen
zuerst als Erweiterung hinzugefügt werden.
Anweisungsblöcke, die dasselbe Objekt ma-
nipulieren, sind mit der gleichen Farbe darge-
stellt.
Anweisungen für Figur
Anweisungen für
Klangausgabe
Anweisungen für
Malstift
PROGRAMMIERKONZEPTE IN
Sequenz Eine Sequenz ist eine Abfolge von Anweisun-
gen, die untereinander zusammengesteckt
werden können. Sie werden nacheinander
(sequenziell) von oben nach unten ausgeführt.
Hier wird zunächst die Bewegung der Figur
gesteuert, d.h. ihre Position und Richtung im
Spielfeld festgelegt. Danach werden die
Schriftdicke und Farbe des Malstifts einge-
stellt (grüne Blöcke). Die folgenden blauen
Bewegungsblöcke steuern die Bewegung der
Figur. Zuerst geht diese 50 Schritte vorwärts,
dann dreht sie und geht wieder vorwärts usw.
Abarbeitung der
Anweisungen
von oben nach
unten.
Sequenz von
Anweisungen
Ergebnis der Sequenz von Anweisungen: Mit dem
Malstift zusammen zeichnet die Bewegung der Figur
eine Zickzacklinie im Spielfeld.
Passende Blöcke schnappen immer ineinander.
PHZH | Zentrum Medienbildung und Informatik | 2019
4 / 12
PROGRAMMIERKONZEPTE IN
Schleife In einem Programmcode reihen sich Anwei-
sungsblöcke in langen Sequenzen aneinan-
der. Um den Programmcode kompakter zu
gestalten, kann man sich wiederholende An-
weisungssequenzen in Schleifen packen.
Es gibt drei Arten von Schleifen:
Wiederhole x mal: Diese Schleife wiederholt
die Sequenz innerhalb der Schleife genau so
oft, wie im Zahlenfeld eingegeben ist.
Wiederhole fortlaufend: Die Sequenz inner-
halb der Schleife wird unendlich oft wieder-
holt.
Wiederhole bis: Jeder Durchlauf prüft, ob die
Abbruchbedingung erfüllt ist. Hier wird z.B.
die Wiederholung beendet, sobald die Leer-
taste gedrückt wurde.
Schleifenblöcke findet
man im Menü Steuerung:
Kompaktere Darstellung des
Programmcodes zum Zeichnen
eines Sterns mittels einer
Schleife. Die Ausgabe ist in bei-
den Programmen identisch.
Durch Mustererkennung
identifiziert man Programm-
code, der sich wiederholt.
Sich wiederholende Pro-
grammblöcke werden in
Schleifen gepackt.
3x
Wiederholung 2
Wiederholung 1
Wiederholung 3
Programmcode
zum Zeichnen
eines Sterns.
PHZH | Zentrum Medienbildung und Informatik | 2019
5 / 12
Programmcode zum Zeichnen eines Sterns mit zufällig gewählter Farbe. Bedingung
Wenn man die Ausführung einer Anweisung
oder einer Sequenz von bestimmten Faktoren
abhängig machen möchte, dann eignen sich
die Bedingungsblöcke.
Eine Bedingung prüft immer, ob eine Frage
mit «wahr» (true) beantwortet werden kann.
Falls ja, wird die Anweisung oder die Sequenz
innerhalb des Bedingungsblocks ausgeführt.
Wenn die Antwort auf die Frage «nicht wahr»
(false) ist, wird der Programmcode übersprun-
gen. Unmittelbar nach dem Bedingungsblock
wird das Programm wieder fortgesetzt.
Neben der falls/dann-Bedingung gibt es die
falls/dann/sonst-Bedingung. Der Unterschied
ist, dass hier bei einer nicht wahren Antwort
die Anweisungen im «sonst»-Teil ausgeführt
werden. In diesem Block wird immer entweder
der «dann»-Teil oder der «sonst»-Teil ausge-
führt.
Bedingungsblöcke findet
man im Menü Steuerung:
Jede Farbe hat eine Wahr-
scheinlichkeit von 1:3. Jede Farbe hat eine Wahrscheinlichkeit von 1:2.
PROGRAMMIERKONZEPTE IN
PHZH | Zentrum Medienbildung und Informatik | 2019
6 / 12
PROGRAMMIERKONZEPTE IN
Ereignis Wenn man die Ausführung einer Anweisung
oder einer Sequenz von äusseren Faktoren
abhängig machen möchte, dann eignet sich
das Ereignis.
Sobald ein Ereignis eintrifft, wird die Sequenz
unterhalb des Ereignisblocks ausgeführt. Er-
eignisblöcke haben diese Form:
Egal, an welcher Position sich das Programm
gerade zum Zeitpunkt des Eintreffens des Er-
eignisses befindet, der Ereignisblock wird im-
mer sofort ausgeführt. Dieses Verhalten wird
auch als «Interrupt» bezeichnet.
In diesem Beispiel gibt es zwei Ereignisblöcke
«grüne Fahne wurde oberhalb des Spielfelds
angeklickt». Beide Blöcke werden somit bei
diesem Ereignis gleichzeitig ausgeführt.
Wenn die Leertaste irgendwann im Verlauf
des Programms gedrückt wird, erscheint die
Sprechblase «Hallo!» für 2 Sekunden neben
der Figur im Spielfeld.
Ereignisblöcke unterscheiden sich von Bedingungen
dadurch, dass sie jederzeit ausgeführt werden kön-
nen. Bei Bedingungen geschieht das nur zu dem
Zeitpunkt, an dem das Programm den Bedingungs-
block innerhalb einer Sequenz erreicht und die Frage
prüft. Mehrere Ereignisblöcke können zudem parallel
laufen. Ereignisblöcke, die nicht durch ein Ereignis
ausgelöst werden, werden nie ausgeführt.
Ereignisblöcke findet
man hauptsächlich
im Menü Ereignisse:
Programmcode zum Zeichnen eines Sterns und zum Abspielen eines «Miau»-Geräusches beim
Starten des Programms (Anklicken der grünen Fahne oberhalb des Spielfeldes). Zusätzlich wird
beim Drücken der Leertaste eine Sprechblase neben der Figur angezeigt.
PHZH | Zentrum Medienbildung und Informatik | 2019
7 / 12
PROGRAMMIERKONZEPTE IN
Unterprogramm Um eine Sequenz mehrfach zu benutzen und
wiederzuverwenden und um das Programm
kompakter zu gestalten, werden Unterpro-
gramme verwendet.
Bei Unterprogrammen fasst man eine Se-
quenz in eine einzige Anweisung zusammen.
Darum hat ein Unterprogramm immer zwei
Blöcke: Unterhalb des Definitionsblocks wer-
den die Anweisungen für das Unterprogramm
definiert.
Der zweite Block ist der dazugehörige Anwei-
sungsblock des Unterprogramms. Über die-
sen wird das Unterprogramm aufgerufen und
ausgeführt.
Unterprogramme werden auch als «Metho-
den» oder «Funktionen» bezeichnet. Im
Grunde führt jede Anweisung ein Unterpro-
gramm aus. Existierende Anweisungen sind
bereits als Unterprogramme vorprogrammiert
und stehen als «Bibliothek» zur Verfügung.
Unterprogramme findet
man im Menü Meine
Blöcke:
Der Programmcode zum Zeichnen eines Sterns wird in einem Unterprogramm definiert und «ausge-
lagert». Beim Hauptprogramm wird das Unterprogramm über die Anweisung «zeichne Stern» an zwei
verschiedenen Stellen aufgerufen. Dies macht den Programmcode modularer und das Zeichnen des
Sterns in anderen Programmen wiederverwendbar.
Dabei werden zwei Sterne im Spiel-
feld nebeneinander gezeichnet.
Durch Abstraktion identifiziert man eine Sequenz,
die ins Unterprogramm ausgelagert werden kann.
Hier stellt sich die Frage, welche Anweisungen für
das Zeichnen des Sterns essenziell sind. Es wurde
entschieden, das Setzen der Stiftfarbe nicht im Un-
terprogramm zu integrieren. So lässt sich die Stift-
farbe im Laufe des Hauptprogramms noch ändern.
PHZH | Zentrum Medienbildung und Informatik | 2019
8 / 12
PROGRAMMIERKONZEPTE IN
Parameter Oft möchte man die Ausführung eines Unter-
programms flexibel gestalten: man möchte
erst zum Zeitpunkt des Aufrufs der Anweisung
gewisse Werte dem Unterprogramm mitge-
ben. Dafür gibt es Parameter.
Die Anweisung «wische Malspuren weg» be-
nötigt keine Parameter. Hingegen benötigt die
Anweisung «gehe zu x: y» die Koordinaten
der Zielposition. Parameter werden in die run-
den Textfelder der Anweisung eingegeben.
Bei der Definition des Unterprogramms lassen
sich ebenfalls Parameter definieren:
In Scratch haben Parameter drei Datentypen:
− Zahl (rund)
− Text (rechteckig)
− Boolesche (Aussagenlogik) (Polygon).
Der Beschriftungstext dient nur der Lesbarkeit
der Anweisung.
Das Unterprogramm zum Zeichnen eines Sterns wird mit zwei Parametern definiert: Farbe und Stift-
dicke. So können Farbe und Stiftdicke im Hauptprogramm der «zeichne Stern»-Anweisung über die
Parameterfelder mitgegeben werden. Dies macht das Unterprogramm flexibler.
= 150
= 20 = 150
= 10
= 3 = 10
In anderen Programmiersprachen werden
Parameter, die einer Anweisung übergeben
werden, auch als Argumente bezeichnet.
Die Bezeichnungen sind synonym.
= 20
= 3
PHZH | Zentrum Medienbildung und Informatik | 2019
9 / 12
PROGRAMMIERKONZEPTE IN
Variable Häufig möchte man Werte speichern und an
verschiedenen Orten im Programm wieder-
verwenden. Dafür eignen sich Variablen.
Bei der Definition einer Variablen kann man
angeben, ob diese nur lokal für eine be-
stimmte Figur oder global
für alle Figuren zur
Verfügung stehen soll:
Sobald die Variable erstellt wurde, stehen
verschiedene Blöcke zur Verfügung: Anwei-
sungsblöcke, welche die Variable verändern
können, sowie ein runder Block, der den Vari-
ablenwert speichert und somit als Parameter
eingesetzt werden kann.
Variablen findet man
im Menü Variablen:
Programmcode zum Zeichnen eines Sterns mit zufällig gewählter Farbe. Die Zufal lszahl von 1-3
wird über eine Variable gespeichert, die Farbwerte Gelb, Pink und Türkis ebenso. Die Variablen der
Farben werden als Parameter den «setze Stiftfarbe auf»-Anweisungen übergeben.
Die aktuellen Werte der Variablen
lassen sich mit Anklicken des Häk-
chens auf dem Spielfeld anzeigen.
Mit der Anweisung «setze Variablenname auf» wird der Variablen ein Wert zugewiesen. Dieser
Wert bleibt bestehen, bis er durch dieselbe Anweisung später im Programm überschrieben wird.
PHZH | Zentrum Medienbildung und Informatik | 2019
10 / 12
PROGRAMMIERKONZEPTE IN
Boolesche Algebra I Eines der wichtigsten Werkzeuge beim Pro-
grammieren ist die Boolesche Algebra.
Das Ergebnis einer Booleschen Algebra ist
entweder wahr (true) oder nicht wahr (false).
Dieser Datentyp wird in Form eines Polygons
dargestellt. In Scratch gibt es drei Arten von
Aussagen. Dabei muss jeder Platzhalter der
Aussage ebenso einen booleschen Wert ent-
halten (Polygonform).
Die Ergebnisse von mathematischen Verglei-
chen ergeben ebenso die Aussage «wahr»
oder «nicht wahr». Darum haben diese Blöcke
eine Polygonform und können als Eingaben
im booleschen Aussagenblock dienen.
Boolesche Algebra
findet man im
Menü Operatoren:
Bei einer UND (AND) Verknüpfung müssen
immer beide Seiten der Aussage «wahr»
sein, damit die gesamte Aussage «wahr» ist.
wahr
wahr
wahr
nicht wahr
nicht wahr
wahr
wahr
nicht wahr
nicht wahr
Bei einer ODER (OR) Verknüpfung muss min-
destens eine Seite der Aussage «wahr» sein,
damit die gesamte Aussage «wahr» ist.
wahr
wahr
wahr
nicht wahr
nicht wahr
wahr
wahr
nicht wahr
nicht wahr
nicht wahr
nicht wahr
nicht wahr
wahr
wahr
nicht wahr
Bei einer NICHT (NOT) Verknüpfung wird die Aussage
ins Gegenteil gesetzt.
wahr
nicht wahr
nicht wahr
nicht wahr
wahr
wahr
Wahr, wenn die Leer-
taste nicht gedrückt ist.
Nicht wahr, wenn sie
gedrückt ist.
PHZH | Zentrum Medienbildung und Informatik | 2019
11 / 12
PROGRAMMIERKONZEPTE IN
Boolesche Algebra II Überall, wo in Scratch ein Datentyp in Poly-
gonform verlangt wird, kann das Ergebnis ei-
ner beliebig komplex verschachtelten Boole-
schen Algebra verwendet werden.
Dies trifft bei Bedingungen zu:
Bei der «warte bis»-Anweisung: Hier wird der
Programmcode solange nicht weiter ausge-
führt, bis die Aussage «wahr» ist.
Bei der «wiederhole bis»-Schleife wird diese
solange ausgeführt, bis die Aussage «wahr»
ist. Das ist die Abbruchbedingung.
Mit einem «nicht»-Block kann die «wiederhole
bis» Schleife zur «wiederhole solange»-
Schleife umfunktioniert werden.
Programmcode zum Zeichnen eines Sterns mit zufällig gewählter Farbe abhängig von der Figur.
Beide Figuren können türkise Sterne zeichnen. Zusätzlich kann die Figur mit Kostümnummer 1
(spazierend) pinke Sterne zeichnen. Die Figur mit Kostümnummer 2 (fliegend) kann zusätzlich gelbe
Sterne zeichnen.
Dieser Programmcode ist identisch für beide Figuren. Jede Figur würfelt ihre eigene Zufallszahl.
Diese Kombinationen
sind möglich:
PHZH | Zentrum Medienbildung und Informatik | 2019
12 / 12
PROGRAMMIERKONZEPTE IN
Datentypen Datentypen beschreiben Eigenschaften von
Daten, wie z.B. deren Wertebereich und Ope-
rationen, die man auf alle Daten dieses Typs
anwenden kann. In Scratch existieren haupt-
sächlich drei Arten von Datentypen:
Zahl, dargestellt als rundes Textfeld:
− Ganzzahl (Integer), z.B. 0, -4, 67, 200, …
− Gleitkommazahl (Float), z.B. 0.1, -27.8, ...
mit einer Genauigkeit von 6 Stellen hinter
dem Komma.
Zeichenkette (String),
Boolesche (Boolean), dargestellt als Polygon.
Es ist auch möglich, verschieden lange Listen
(aus Menü «Daten») mit unterschiedlichen
Datentypen zusammenzustellen:
Zum Zeitpunkt der Zuordnung eines Wertes einer Variablen mittels der Anweisung «setze Variablen-
name auf» wird der Datentyp festgelegt. Dabei kann im rechteckigen Textfeld eine Zahl, eine Zeichen-
kette oder eine boolesche Aussagenlogik eingegeben werden.
Der Datentyp bestimmt auch die Arten von Operationen, die diesen manipulieren können.
Beim Umgang mit unterschiedlichen
Datentypen muss man sich immer
überlegen, welcher Wertebereich
der Datentyp besitzt und welcher
Datentyp als Ergebnis einer Opera-
tion erwartet wird.
Die folgende Operation ergibt keinen Sinn, darum ist das
Ergebnis undefiniert: NaN (not a number).
Doppelklick auf den Operationsblock zeigt das Ergebnis direkt in einer Sprechblase direkt an.