Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder...

12
Programmierkonzepte in

Transcript of Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder...

Page 1: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

Programmierkonzepte

in

Page 2: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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

Page 3: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 4: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 5: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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

Page 6: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 7: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 8: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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

Page 9: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 10: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.

Page 11: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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:

Page 12: Programmierkonzepte in - phzh.ch · In Scratch gibt es drei Arten von Aussagen. Dabei muss jeder Platzhalter der Aussage ebenso einen booleschen Wert ent-halten (Polygonform). nicht

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.