Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

Programmieren im Zyklus 3

GMI Sek

Prezi + Aufbau

Die Themen sind jeweils gleich aufgebaut und können in beliebiger Reihenfolge durchgearbeitet werden.

Die Fangspielergänzung ist die Aufgabe, die du selber programmieren sollst. Eine Musterlösung steht dir zur Verfügung.

Im Handbuch findest du alles, was du über das Thema wissen musst.

Hilfe zu Prezi

+

Aufbau der Themen

Code lesen & Debugging sind kleine Übungen, die dir helfen, das Thema besser zu verstehen.

Die Anwendungsbeispiele zeigen dir, wie die neuen Programmierkonzepte in Scratch-Projekte eingesetzt werden können. Du kannst diese Projekte durchschauen oder selber nachprogrammieren.

Mit einem Doppelklick auf einen Kreis navigierst du eine Ebene tiefer in das Thema.

Mit einem Klick auf das Pfeil-Symbol (unten links) kannst du jederzeit eine Ebene zurückgehen. Alternative: Wischbewegung mit zwei Fingern nach oben.

Mit diesen Pfeilen unten in der Mitte kannst du die Themen nach einem vorgeschlagenen Pfad bearbeiten. Du kannst die Themen jedoch auch selbstständig erkunden.

Zyklus 3

START

Mit Hilfe dieser Präsentation kannst du die Programmierkonzepte erlernen, welche im Lehrplan 21 im dritten Zyklus eine wichtige Rolle spielen: Schleifen, Variablen, Logische Operatoren und Unterprogramme (MI.2.2.g und MI.2.2.h).

Voraussetzungen:

  • Du kennst die Programmierkonzepte aus dem Zyklus 2 und kannst diese anwenden:

https://tiny.phzh.ch/einfuehrung-scratch

  • Du hast das Fangspiel (vgl. Bubble rechts) schon einmal programmiert.

Materialien

Weitere

Materialien

Materialien für den Unterricht:

https://tiny.phzh.ch/scratch

Mini-Challenges für den Unterricht:

https://tiny.phzh.ch/scratch-mini-challenges

Programmieren lernen (für Lehrpersonen):

https://tiny.phzh.ch/einfuehrung-scratch

Fangspiel

Schritt-für-Schritt-Anleitung:

https://tiny.phzh.ch/scratch

(Fangspiel "Aepfel fangen" auswählen)

Fangspiel

https://scratch.mit.edu/projects/335292513/editor/

Schleifen

Mit Schleifen (auch: Wiederholungen oder Iterationen) wird eine Folge von Anweisungen wiederholt.

Es gibt verschiedene Arten von Schleifen.

In Scratch werden nebenstehende Schleifen verwendet.

Schleifen

(Vertiefung)

Handbuch

Schleifen

In diesem Handbuch findest du alles, was du über Schleifen in Scratch wissen musst. Bei Unsicherheiten und Fragen kannst du hier nachschauen.

Handbuch

In Scratch werden 3 verschiedene Schleifen verwendet:

Wiederhole X mal: Die Folge von Anleitungen wird genau so oft ausgeführt, wie angegeben wurde.

Wiederhole fortlaufend: Diese Schleife wird erst bei einem Programmabbruch beendet.

Wiederhole bis [ ]: Diese Schleife wird wiederholt, bis eine bestimmte Bedingung eintrifft.

Für Details klicke die jeweilige Schleifenart.

Typisches Beispiel

aus: wird:

Title

Hierdurch wird das Skript kürzer. Änderungen können an einer einzigen Stelle vorgenommen werden.

Diese Wiederholung wird nach Aktivierung so lange ausgeführt, bis das Programm beendet wird.

Title

Ein Abbruch ohne das Programm beenden zu müssen, kann mit «stoppe dieses Skript» erzwungen werden.

Typischerweise wird diese Schleife für Mechaniken verwendet, die während des ganzen Programms getestet und gegebenenfalls ausgeführt werden müssen.

Diese Schleife wird so lange ausgeführt, bis eine bestimmte Bedingung erfüllt ist. Beispiel:

Die Figur bewegt sich mit 7-Pixel-Schritten nach rechts, bis sie mindestens 100 Pixel von der Mitte des Bildschirms entfernt ist.

Arten von Schleifen

Bei «wiederhole x mal» handelt es sich um eine Zählerschleife (FOR), bei «wiederhole fortlaufend» um eine Endlosschliefe (z. B. WHILE 1 == 1) und bei «wiederhole bis [ ]» um eine kopfgesteuerte Schleife (WHILE).

Optional:

Zusätzliche Informationen zu Arten von Schleifen findest du zum Beispiel hier:

repeat

for

while

https://de.wikipedia.org/wiki/Schleife_(Programmierung)

Code lesen & Debugging

Schleifen

Eine Möglichkeit, sich intensiv mit neuen Programmierkonzepten auseinanderzusetzen, bietet «Code lesen» und das «Debugging». Diese Aufgaben helfen dir zu erkennen, ob du die Konzepte wirklich verstanden hast.

Schau dir die Programme an, und versuche sie zu verstehen (Code lesen) oder den Fehler zu finden (Debugging).

Code lesen & Debugging

Code lesen 1

In welche Richtung schaut die Katze nach Ausführung dieses Skripts?

Code lesen 1

Hinweis: Ohne Bearbeitung schauen Figuren in Scratch übrigens immer nach rechts und sind auch nach rechts ausgerichtet (Richtung: 90°):

Lösung

https://scratch.mit.edu/projects/391849848/editor/

Code lesen 2

Wie viele Schritte läuft die Katze hier?

Keine (Fehler)?

9?

18?

99?

198?

Code lesen 2

18 Schritte von je 11 Pixel* Länge.

Das wären insgesamt 198 Pixel*

(9 * (2 * 11))

Lösung

https://scratch.mit.edu/projects/391850633/editor/

* Anmerkung: Je nach grösse des Bildschirms kann ein 1er-Schritt auch grösser oder kleiner sein als ein Pixel: https://en.scratch-wiki.info/wiki/Pixels

Debugging 1

Die Katze soll hin- und herlaufen. Das tut sie aber nicht. Wo liegt der Fehler?

«Remixe» und «Debugge» folgendes Projekt:

Debugging

1

https://scratch.mit.edu/projects/387724836/editor/

Lösung

Die Endlosschliefe fehlt hier.

Debugging 2

Die Katze sollte bei einem Klick auf die grüne Flagge einmal um 360° drehen, tut dies aber nicht. Wo liegt der Fehler?

«Remixe» und «Debugge» folgendes Projekt:

Debugging2

https://scratch.mit.edu/projects/391851896/editor/

Lösung

Die Richtung ist bereits bei 90. Darum müssen zuerst mit einer zusätzlichen kleinen Drehung die 90 Grad verlassen werden.

Anwendung

Schleifen

Hier wird gezeigt, wie Schleifen in einem Spiel, in einer Animation oder in einer Simulation eingesetzt werden können.

Studiere die Ideenbeschreibung mit dem Video und überlege dir, wo und wie hier Schleifen verwendet werden. Du kannst die Idee nachprogrammieren, oder dir einfach die Beispiellösung anschauen.

Anwendung

Schleifen

Animation

Eine einfache rechteckige Bewegung, die alle drei Arten von Schleifen verwendet, die in Scratch zur Verfügung stehen.

Animation

Beispiellösung

https://scratch.mit.edu/projects/387725546/editor/

Der Malstift in Scratch

Hinweis zum Zeichnen mit dem Stift in Scratch

Gehe unten links auf «Erweiterung hinzufügen».

Wähle hier den Malstift aus.

Nun stehen dir zusätzliche Blöcke zur Verfügung.

Jetzt kannst du deine Figuren in Scratch so oder ähnlich programmieren, dass sie eine farbige Linie hinter sich nachziehen.

Schleifen

Spiel

Spiel

Space Invaders

Wie ein Space Invader soll sich die Figur (Alien) hin- und herbewegen und immer ein bisschen weiter nach unten rücken.

Hinweis: Hierbei handelt es sich nicht um das ganze Spiel «Space Invaders», sondern lediglich um ein Element (Gegner) aus dem Spiel.

Beispiellösung

https://scratch.mit.edu/projects/387725146/editor/

Space Invaders ist ein Arkadespiel aus dem Jahr 1987.

Der Spieler steuert einen Panzer (unten, grün) und schiesst die angreifenden Aliens (weiss) ab. Dabei kann er sich hinter die Bunker (ebenfalls grün) in Sicherheit bringen.

In Scratch kann das Spiel Space Invaders nachgebaut oder eine fertige Version gespielt werden.

Zum Beispiel hier:

Was ist Space Invaders?

Bild: Wikipedia

https://scratch.mit.edu/projects/41291764/

Schleifen

Simulation

Den Bremsweg simulieren

Simuliere zwei Bremswege von Fahrzeugen mit verschiedenen Fahrtempi.

Simulation

Achtung:

Bei dieser Simulation handelt es sich um ein vereinfachte Darstellung des Bremsweges, welcher hier linear mit 0.3 Geschwindigkeit pro Bild abnimmt.

Scratch läuft übrigens mit ca. 30 Bildern pro Sekunde.

Die Unterschiede des roten und des grünen Autos sind lediglich, dass sie mit unterschiedlichen Variablen für das Tempo und an anderen Positionen starten.

Ansonsten unterscheiden sich die Programme nicht.

Im Sinne einer Simulation können jetzt verschiedene Parameter geändert und getestet werden:

* Anfangstempo

(setze tempo auf __)

* Bremsgeschwindigkeit

(ändere tempo um __)

* Bremsposition

(wiederhole bis x-Position > __)

Beispiellösung

https://scratch.mit.edu/projects/387725628/editor/

Fangspiel-Ergänzung

Schleifen

Öffne das Fangspiel, erstelle einen Remix und ergänze es folgendermassen:

Wir bauen einen Gegner in das Spiel ein:

Ein Vogel, der unsere Ernte mit «Baseballs» verderben möchte.

Fangspiel-Ergänzung

Vorbereitungen

Vorbereitungen

1.

Wir brauchen zwei neue Figuren: ein Vogel und ein «Baseball», der fallen gelassen wird und dem Spieler Schadet.

2.

Beide Figuren kannst du auf «unsichtbar» stellen, weil sie am Anfang des Spiels nicht sichtbar sein sollen.

Schritt 1: Der Vogel

Der Vogel soll nach einer bestimmten Zeit vom linken Rand des Bildschirms zum rechten Rand fliegen, dann wieder verschwinden.

Schritt 1

Während des Flugs soll der Vogel «Baseballs» erschaffen.

Hierfür wird die Funktion «Klon erzeugen» verwendet: Nicht der «Baseball» selber wird vom Vogel erschaffen, sondern eine Kopie, oder eben ein Klon davon.

Schritt 2 - Der «Baseball»

Schritt 2

Dem «Baseball» muss jetzt noch Leben eingehaucht werden: Zuerst soll er sich beim Vogel platzieren, dann nach unten fallen. Diese Fallmechanik kennen wir aus dem Projekt Fangspiel bereits sehr gut.

Zuletzt sollen die «Baseballs» dem Spieler schaden, falls sie in Berührung mit dem Korb kommen oder sich selbst (es sind ja nur Kopien/Klone) zerstören, falls sie den Korb nicht treffen.

Beispiellösung

Beispiellösung

https://scratch.mit.edu/projects/387697336/editor/

Variablen

Variablen

Eine Variable kann man sich als Behälter vorstellen, dessen Inhalt sich ändern kann. Nimm als bildliches Beispiel die Einkaufstüte. Die Tüte selbst ist die Variable. Den Inhalt der Tüte kann man durch Herausnehmen oder Hineinlegen beliebig verändern. Der Inhalt von Variablen wird Wert genannt.

Ein typisches Beispiel für Variablen beim Programmieren ist der Punktestand. Dieser Wert wird gespeichert und an verschiedenen Orten des Programms wiederverwendet. Es können aber nicht nur Zahlen, sondern auch Buchstaben in einer Variable gespeichert werden.

Handbuch

Variablen

In diesem Handbuch findest du alles, was du über Variablen in Scratch wissen musst. Bei Unsicherheiten und Fragen kannst du hier nachschauen.

Handbuch

Variablen findet man im Menü Variablen:

Beginnt man ein neues Programm, existiert bereits die Variable "meine Variable". Diese kann umbenannt werden.

Mit dem Block "setze meine Variable auf..." wird der Wert der Variable überschrieben. Das heisst, der vorherige Wert der Variable spielt keine Rolle mehr.

Dieser Block wird meist an den Anfang des Programms, oder an den Neustart des Spiels platziert, um den Punktestand auf 0 zurückzusetzen.

Mit dem Block "Ändere meine Variable um..." wird der Wert der Variable nicht überschrieben, sondern angepasst.

Das heisst, der vorherige Wert der Variable spielt eine Rolle. Er wird um die eingegebene Zahl erhöht (+) oder verringert (-).

Damit kann zum Beispiel der Punktestand angepasst werden, wenn man etwas erfolgreich erledigt hat, oder wenn man einen Fehler gemacht hat.

Der Wert einer Variable kann im Programm angezeigt oder versteckt werden.

Dafür verwendet man die Blöcke "zeige/verstecke Variable". Eine Alternative ist, bei den Befehlsblöcken links vor der Variable mit einem Mausklick ein Häkchen zu setzen (sichtbar) oder zu entfernen (versteckt).. Dies gilt dann für das ganze Programm, kann also nicht im Programmverlauf geändert werden.

Die Anzeige des derzeitigen Variablenwertes hilft zu verstehen, was das Programm gerade macht.

Der Anzeigeblock mit dem Wert kann auch verschoben werden.

Anzeige der Variable ändern

Die Art und Weise wie die Variable angezeigt wird, kann mit einem Rechtsklick auf den Block oder einem Doppelklick geändert werden.

Anzeige der Variable verändern

Der Wertebereich (kleinster und grösster Wert) des Schiebereglers lässt sich mit einem Rechtsklick ändern.

Variable löschen

Eine Variable kann nicht nur ausgeblendet, sondern auch komplett gelöscht werden.

Hierzu geht man mit der auf einen Variablenblock, drückt die rechte Maustaste und wählt "Lösche die Variable X".

Diese Option erscheint auch, wenn man auswählt welche Variable programmiert werden soll.

Variable löschen

Variable erstellen

Bei der Definition einer Variablen wählt man einen Variablennamen und kann angeben, ob diese Variable nur lokal für eine bestimmte Figur oder global für alle Figuren zur Verfügung stehen soll.

Ausserdem gibt es die Option eine Cloud-Variable einzurichten, welche für alle angemeldeten Projektnutzer zu jeder Zeit den gleichen Inhalt haben, da sie auf den Servern permanent gespeichert werden.

Sobald die Variable erstellt wurde, stehen verschiedene Blöcke zur Verfügung:

Anweisungsblöcke, welche die Variable verändern können, sowie ein runder Block, der den Variablenwert speichert und somit als Parameter eingesetzt werden kann.

Variable erstellen

Cloud-Variable

Cloud-Variable

Der Wert einer Cloud-Variable wird auf den Servern von Scratch permantent gespeichert.

Das heisst, dass die Variable auf allen Geräten, welche das Programm abrufen, denselben Wert hat. Folgendes muss man beachten:

  • Im Offline-Editor von Scratch kann man keine Cloud-Variablen erstellen

  • Eine Cloud-Variable können nur angemeldete Nutzer erstellen.

  • Cloud-Variablen unterstützen nur Zahlen, keine Buchstaben oder Symbole.

  • Cloud-Variablen sind für neue Scratch-Accounts gesperrt:

https://en.scratch-wiki.info/wiki/New_Scratcher_Status

Beispiel

Eine Cloud-Variable kann genutzt werden, um einen Highscore zu führen.

In diesem Beispiel soll die Katze innerhalb 30 Sekunden so oft wie möglich angeklickt werden.

Knackt man den Highscore, wird dieser angepasst.

Schafft man es nicht, wird man aufgefordert es nochmal zu probieren.

Beispiel

Code

https://scratch.mit.edu/projects/389122357/editor

Code

Code lesen & Debugging

Variablen

Eine Möglichkeit, sich intensiv mit neuen Programmierkonzepten auseinanderzusetzen, bietet «Code lesen» und das «Debugging». Diese Aufgaben helfen dir zu erkennen, ob du die Konzepte wirklich verstanden hast.

Schau dir die Programme an, und versuche sie zu verstehen (Code lesen) oder den Fehler zu finden (Debugging).

Code lesen & Debugging

Code lesen 1

Welche Zahl sagt die Katze als letztes?

Code lesen 1

Lösung

Die Katze sagt als letztes 8. Die 10 wird nicht mehr gesagt, weil die Variable nach dem Aussprechen der 8 auf 10 erhöht wird, und so die Schleife nicht mehr ausgelöst wird.

Lösung

https://scratch.mit.edu/projects/389121927/editor

Code lesen 2

Wie oft muss man die Katze fangen um das Spiel zu gewinnen?

Code lesen 2

Code lesen 2

Man muss die Katze 40 Mal fangen, um das Spiel zu gewinnen. Man startet in der ersten Runde und muss die Figur 10 Mal anklicken, um in die zweite Runde zu kommen. Da es vier Runden gibt, muss die Katze 4 * 10 Mal gefangen werden, das sind 40.

Lösung

https://scratch.mit.edu/projects/389122017/editor

Debugging 1

Bei dem folgenden Spiel soll bei einer Berührung der Katze der Punktestand um eins erhöht werden. Das funktioniert aber noch nicht, weshalb?

Debugging 1

https://scratch.mit.edu/projects/389121632/editor

Lösung

Die Variable wird immer neu auf 1 gesetzt, statt um eins erhöht. Anstatt dem Block "setze X auf" muss der Block "ändere X um" verwendet werden.

Lösung

Debugging 2

Klickt man bei diesem Spiel die Katze an, erhöht sich die Punktzahl um eins. Erwischt man dagegen die Fledermaus, soll ein Punkt abgezogen werden. Dafür wird das Programm der Katze (vgl. Debugging 1) kopiert und bei der Fledermaus eingefügt. Geändert wird nur die Änderung der Variable (-1 statt 1). Es funktioniert aber nicht, woran könnte das liegen?

Öffne das Programm mit einem Klick auf den Scratch-Link. Nur anhand des Bildes rechts kannst du den Fehler nicht finden.

https://scratch.mit.edu/projects/389122199/editor

Debugging 2

Beim Erstellen der Variable wurde gewählt, dass diese nur für diese Figur (Katze) gilt. Deshalb kann die Fledermaus nicht darauf zugreifen. Bei Variablen, die von mehreren Figuren genutzt werden, ist es also wichtig, dass beim Erstellen einer neuen Variable "Für alle Figuren" ausgewählt wird.

Lösung

Debugging 3

Es soll ein Pong-Spiel programmiert werden, bei welchem der Ball nicht aus dem Bild fallen darf. Jedes Mal, wenn der Ball das Paddle berührt, soll der Punktestand um eins erhöht werden. Das funktioniert auch, aber es gibt ein anderes Problem, welches?

Debugging 3

https://scratch.mit.edu/projects/389122293/editor

Lösung

Das Problem ist, dass der Punktestand nach einem Spiel nicht auf Null zurückgesetzt wird. Deshalb zählt der Punktestand dort weiter, wo man das letzte Mal verloren hat. Man muss den Block "setze Punktestand auf 0" am Anfang des Programms einfügen.

Lösung

Code lesen 3

Was sagt die Katze?

Achtung: Grundlagen der Variablen müssen für diese Aufgabe bekannt sein.

Code lesen 3

0 ?

28 ?

35 ?

Nichts ?

Miau ?

Lösung

https://scratch.mit.edu/projects/387724243/editor

Debugging 4

Debugging4

Wieso sagt die Katze ihre Punkte nicht, nachdem sie 50 erreicht hat?

https://scratch.mit.edu/projects/387720206/editor/

Lösung

Eine Variable wurde falsch verwendet:

«meine Variable» statt «Punkte» .

Anwendung

Variablen

Hier wird gezeigt, wie Variablen in einem Spiel, in einer Animation oder in einer Simulation eingesetzt werden können.

Studiere die Ideenbeschreibung mit dem Video und überlege dir, wo und wie hier Variablen verwendet werden. Du kannst die Idee nachprogrammieren, oder dir einfach die Beispiellösung anschauen.

Anwendung

Variablen

Spiel

Es soll ein einfaches Pong-Spiel programmiert werden. Der Punktestand wird um eins erhöht, wenn der Ball das Paddle berührt.

Der Ball darf nicht den unteren Spielfeldrand berühren.

Das Paddle wird mit der Maus gesteuert.

Jedes Mal wenn der Ball das Paddle berührt, erhöht sich die Geschwindigkeit des Balles um 1.

Spiel

Beispiellösung

https://scratch.mit.edu/projects/389121748/editor

Beispiellösung

Variablen

Animation

Zwei Figuren spielen verstecken.

Die Katze zählt mithilfe einer Variable bis 10.

Das Pony wartet bis die Katze bei drei ist, und versteckt sich dann.

Animation

Beispiellösung

https://scratch.mit.edu/projects/389121686/editor

Beispiellösung

Variablen

Simulation

Mit einem Programm soll die Schwerkraft simuliert werden.

Man kann den Apfel auf verschiedene Höhen ziehen, und beobachten, wie sich die von ihm erreichte Höchst-geschwindigkeit verändert.

Simulation

Beispiellösung

https://scratch.mit.edu/projects/389121837/editor

Beispiellösung

Fangspiel-Ergänzung

Variablen

Öffne das Fangspiel, erstelle einen Remix und ergänze es folgendermassen:

Fangspiel-Ergänzung

Im Fangspiel wird für den Punktestand bereits eine Variable verwendet.

Um das Fangspiel zu ergänzen, sollen mehrere Runden hinzugefügt werden.

Sammelt man 10 Punkte, kommt man in die nächste Runde.

In jeder Runde werden die Äpfel schneller.

Vorbereitungen

Vorbereitungen

1.

Erstelle eine neue Variable namens "Runde".

2.

Setze diese neue Variable, genau wie die Variable für den Punktestand, beim Start des Programmes auf 1 zurück.

3.

Erstelle bei der Figur, welche am Ende "Gewonnen" anzeigt, ein neues Kostüm welches die neue Runde ankündigt.

Schritt 1

Passe das Programm des Schriftzuges so an, dass der Spielstopp erst erfolgt, wenn in der vierten Runde 10 Punkte gesammelt wurden.

Schritt 1

Schritt 2

Füge bei den zwei Apfelprogrammen die Variable "Runde" so ein, dass sich mit jeder neuen Runde die y-Änderung vergrössert.

Beispiel: In der ersten Runde bewegen sie sich 3 Schritte, in der zweiten 6, in der dritten 9, in der vierten 12.

So kann die Formel Runde*-3 für die Geschwindigkeit eingesetzt werden.

Schritt 2

Beispiellösung

https://scratch.mit.edu/projects/389120902/editor

Beispiellösung

Logische Operatoren

Logische Operatoren

Eine Überprüfung mit Logischen Operatoren liefert einen Wahrheitswert (wahr/falsch). Möchte man mehrere Bedingungen prüfen, kann man dies mit Verknüpfungsoperatoren tun. Beispiel rechts: Man gewinnt das Spiel, wenn 10 Punkte erreicht wurden (Bedingung X) UND man weniger als 30 Sekunden gebraucht hat (Bedingung Y). Für die zwei Bedingungen (Punktezahl>9, Zeit<30) werden Vergleichsoperatoren verwendet.

In diesem Beispiel müssten beide Bedingungen wahr sein, damit man das Spiel gewinnt.

Mehr Informationen zu Vergleichs- und Verknüpfungsoperatoren findest du hier:

Vergleichsoperatoren

Vergleichsoperatoren stellen zwei Werte, etwa numerische Grössen, einander gegenüber und liefern in Abhängigkeit vom Ausgang des Vergleichs (grösser, kleiner usw.) einen Wahrheitswert (wahr/falsch).

Vergleichsoperatoren:

  • grösser (>)
  • kleiner (<)
  • grösser oder gleich (≥)
  • kleiner oder gleich (≤)
  • gleich (=)
  • ungleich (≠)

Beispiel: 3>2 wahr

Vergleichs-operatoren

Beispiel

Beispiel

Hier wird bewertet, ob a (6) grösser ist als b (5).

Ist die Aussage wahr, sagt die Figur "WAHR", sonst sagt sie "FALSCH".

In diesem Fall wird die Figur "WAHR" sagen.

Verknüpfungsoperatoren

Ein Verknüpfungsoperator kann zwei Aussagen oder Aussagefunktionen verknüpfen.

Dabei kann zum Beispiel überprüft werden ob...

  • ... beide Aussagen wahr sind (UND),
  • ... mindestens eine der beiden Aussagen wahr ist (ODER).
  • ... die Aussage falsch ist (NICHT).

Verknüpfungs-operatoren

UND/AND

Bei einer UND (AND) Verknüpfung müssen immer beide Seiten der Aussage wahr sein, damit die gesamte Aussage wahr ist.

UND

WAHR

UND

FALSCH

WAHR

FALSCH

UND

FALSCH

WAHR

UND

FALSCH

UND

FALSCH

Beispiel

Sind i (6>5) UND j (6<8) wahr, sagt die Figur "WAHR". Ist einer der beiden Werte falsch (oder beide), sagt die Figur "FALSCH".

Hier würde die Figur "WAHR" sagen.

ODER/OR

Bei einer ODER (OR) Verknüpfung muss mindestens eine Seite der Aussage wahr sein, damit die gesamte Aussage wahr ist.

WAHR

ODER

ODER

WAHR

FALSCH

ODER

WAHR

FALSCH

ODER

WAHR

FALSCH

ODER

Beispiel

Ist entweder i (1>2) ODER j (4<6) wahr, sagt die Figur "WAHR". Sind beide Aussagen wahr, sagt die Figur ebenfalls "WAHR". Sind beide Aussagen falsch, sagt die Figur "FALSCH".

Hier wird die Figur "WAHR" sagen.

NICHT/NOT

Bei einer NICHT (NOT) Verknüpfung wird die Aussage ins Gegenteil gesetzt.

3 < 4

WAHR

NICHT

3 < 4

FALSCH

NICHT

4 = 5

FALSCH

NICHT

4 = 5

WAHR

Beispiel

Ist i (2>5) nicht wahr, wird mit dem NICHT der Wert wahr zurückgeliefert und die Figur sagt "WAHR". Ist i wahr, wird durch das NICHT ein falsch daraus, und die Anweisung wird übersprungen.

Hier würde die Figur "WAHR" sagen.

Handbuch

Logische Operatoren

In diesem Handbuch findest du alles, was du über Logische Operatoren in Scratch wissen musst. Bei Unsicherheiten und Fragen kannst du hier nachschauen.

Handbuch

Boolesche Algebra findet man im Menü Operatoren:

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 enthalten (Polygonform).

Die Ergebnisse von mathematischen Vergleichen ergeben ebenso die Aussage «wahr» oder «falsch». Darum haben diese Blöcke eine Polygonform und können als Eingaben im booleschen Aussagenblock dienen.

Wenn in Scratch ein Datentyp in Polygonform verlangt wird, kann das Ergebnis einer beliebig komplex verschachtelten Booleschen Algebra verwendet werden.

Drei Beispiele werden rechts vorgestellt.

Bedingung

Bedingungsblöcke findet man im Menü Steuerung:

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 werden. Wenn die Antwort auf die Frage «falsch» (false) ist, wird der Programmcode übersprungen. 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 ausgeführt.

Bei der "warte bis"-Anweisung wird in Scratch ein Datentyp in Polygonform verlangt.

Hier wird der betreffende Programmcode solange nicht weiter ausgefü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.

Code lesen & Debugging

Logische Operatoren

Eine Möglichkeit, sich intensiv mit neuen Programmierkonzepten auseinanderzusetzen, bietet «Code lesen» und das «Debugging». Diese Aufgaben helfen dir zu erkennen, ob du die Konzepte wirklich verstanden hast.

Schau dir die Programme an, und versuche sie zu verstehen (Code lesen) oder den Fehler zu finden (Debugging).

Code lesen & Debugging

Code lesen 1

Was macht die Katze in diesem Programm?

Code lesen 1

Code lesen 1

Lösung

Lösung

https://scratch.mit.edu/projects/389121082/editor

Sie sagt "WAHR".

Code lesen 2

Beschreibe was in diesem Programm passiert.

Code lesen 2

Code lesen 2

Lösung

Klickt man auf die Katze, schnurrt sie so lange, wie man die Maustaste gedrückt hält.

Sobald man die Maustaste loslässt, sagt sie "Grr".

https://scratch.mit.edu/projects/389121152/editor

Lösung

Code lesen 3

Beschreibe was in diesem Programm passiert:

Code lesen 3

Code lesen 3

Lösung

Lösung

https://scratch.mit.edu/projects/389121269/editor

Die Katze läuft nach rechts.

Sobald sie am Rand angekommen ist (x-Position > 230), springt sie auf eine Zufallsposition und läuft wieder nach rechts.

Das macht sie unendlich.

Code lesen 4

Was musst du machen, damit die Katze "Hey!" sagt?

Code lesen 4

Code lesen 4

Lösung

Du kannst entweder die Leertaste drücken, oder die Figur mit der Maus berühren. Die Katze sagt auch "Hey!", wenn du beides gleichzeitig machst.

Lösung

https://scratch.mit.edu/projects/389121326/editor

Debugging 1

Die Katze soll nach 15 Sekunden "15 Sekunden" sagen.

Warum funktioniert das nicht?

Debugging 1

https://scratch.mit.edu/projects/389121401/editor

Debugging 1

Lösung

Lösung

Das "Falls" wird nur ein einziges Mal ganz am Anfang des Programmes geprüft. Und dort wurde die Stoppuhr erst gerade gestartet.

Man erkennt diesen Fehler auch daran, dass das Programm nur ganz kurz aktiv (gelb umrahmt) ist.

Damit die Figur ständig überprüft, ob bereits 15 Sekunden vergangen sind, braucht es eine Schleife ("wiederhole fortlaufend"). Es ist auch möglich mit "warte bis" zu arbeiten.

Debugging 2

Hier soll die Figurensteuerung für ein Jump'n'Run programmiert werden.

Die Figur soll dabei nach einem Sprung wieder auf den Boden zurückfallen.

Mit dem Programm unten funktioniert das noch nicht. Was muss man ändern?

Debugging 2

https://scratch.mit.edu/projects/389121474/editor

Debugging 2

Lösung

Lösung

Hier wurde der falsche Vergleichs-operator gewählt. Die Katze soll aufhören nach unten zu sinken, sobald die y-Position KLEINER als -125 ist, sie also auf dem Boden (y=-125) angekommen ist.

Vielen Schülerinnen und Schülern sind die Zeichen von grösser als (>) und kleiner als (<) noch nicht klar. Hier bietet es sich an, diese kurz zu wiederholen.

Bei fehlerhaften Programmen wurde häufig das falsche Zeichen gewählt.

Debugging 3

Die Katze soll bei 10 Sekunden "10 Sekunden" sagen.

Warum funktioniert das nicht?

Debugging 3

https://scratch.mit.edu/projects/389121551/editor

Debugging 3

Lösung

In den meisten Fällen empfiehlt es sich, mit den Vergleichsoperatoren "grösser als/kleiner als" statt "gleich" zu arbeiten.

Beim Programm unten links wird kein "10 Sekunden" ausgegeben, auch wenn zehn Sekunden vorbei sind. Das liegt daran, dass die Zahl ganz genau erreicht werden muss, was meist nicht der Fall ist.

Das Programm rechts funktioniert.

Lösung

Anwendung

Logische Operatoren

Anwendung

Hier wird gezeigt, wie Logische Operatoren in einem Spiel, in einer Animation oder in einer Simulation eingesetzt werden können.

Studiere die Ideenbeschreibung mit dem Video und überlege dir, wo und wie hier logische Operatoren verwendet werden. Du kannst die Idee nachprogrammieren, oder dir einfach die Beispiellösung anschauen.

Logische Operatoren

Spiel

Eine Figur soll mit den Pfeiltasten gesteuert werden können. Wenn sie sich nach hinten bewegt, wird sie kleiner, und wenn sie nach vorne kommt, wieder grösser.

Sobald sie vor der Haustür steht, soll sie das Haus betreten (Wechsel des Bühnenbildes). Dabei muss beachtet werden, dass sie die richtige Grösse hat (sozusagen genug weit hinten steht).

Spiel

Beispiellösung

https://scratch.mit.edu/projects/394954700/editor/

Beispiellösung

Logische Operatoren

Animation

Es werden eine Tänzerin und ein Tänzer programmiert.

Die Tänzerin bewegt sich immer gleich, sie beginnt links, bewegt sich zur Mitte, wechselt dort das Kostüm, geht zurück und wechselt das Kostüm.

Der Tänzer passt seine Bewegungen der Tänzerin an. Er beginnt rechts, und bewegt sich solange nach links, bis er entweder die Tänzerin berührt, oder seine x-Position kleiner als -50 ist.

Animation

Beispiellösung

https://scratch.mit.edu/projects/394966694/editor/

Beispiellösung

Logische Operatoren

Simulation

Der Wurf einer Münze soll simuliert werden. Damit kann gezeigt werden, dass die zwei Seiten die gleiche Wahrscheinlichkeit haben.

Die Münze fragt zuerst, wie oft man sie werfen möchte. Die Würfe werden dann ausgeführt. Falls die Abweichung von Kopf und Zahl grösser als 10% ist, fragt die Münze, ob man noch mehr Würfe machen möchte.

Simulation

Beispiellösung

https://scratch.mit.edu/projects/389121038/editor

Beispiellösung

Fangspiel-Ergänzung

Logische Operatoren

Öffne das Fangspiel, erstelle einen Remix und ergänze es folgendermassen:

Fangspiel-Ergänzung

Es befinden sich bereits Vergleichsoperatoren im Fangspiel.

Bei den Äpfeln wird mit einem Vergleichsoperator festgelegt, dass sie am unteren Bildschirmrand verschwinden und am oberen wieder starten.

Beim Text "Gewonnen" wird mit einem Vergleichsoperator überprüft, ob schon 5 Punkte erreicht wurden.

Nun soll das Spiel so angepasst werden, dass es nach 10 Sekunden "Verloren" auf dem Bildschirm anzeigt.

Schritt 1

Baue den Timer mit dem Block "setze Stoppuhr zurück" ein und aktiviere die Anzeige der Stoppuhr mit einem Kreuzchen.

Schritt 1

Schritt 2

Erstelle bei der Figur mit dem Schriftzug "Gewonnen" ein zweites Kostüm mit dem Schriftzug "Verloren".

Schritt 2

Schritt 3

Für das neue Spiel gibt es zwei mögliche Spielenden:

1. FALLS 5 oder mehr Punkte erreicht werden, erscheint das Kostüm "Gewonnen".

2. FALLS mehr als 10 Sekunden vergangen sind, erscheint das Kostüm "Verloren".

Baue diese zwei Spielenden ein.

Schritt 3

Beispiellösung

https://scratch.mit.edu/projects/389120774/editor

Beispiel-lösung

Unterprogramme

Unter-

programme

In diesem Beispiel läuft die Figur mit Hilfe der Unterprogramme drei Vierecke mit verschieden langen Seiten ab.

Hinweis: Der Block «schalte Stift ein» macht die Laufpfade sichtbar.

Ein Unterprogramm ist ein Teil des Programms (Scratch-Projekts), welcher mit einem eigenen, selbst erstellten Block aufgerufen werden kann. Dabei können Werte wie Zahlen, Wahrheitswert (wahr, falsch) oder Texte mitgegeben werden.

Warum Unterprogramme?

Durch die Verwendung von Unterprogrammen, können wiederkehrende Programmteile an einem Ort ausgelagert werden und an mehreren Orten im Programm verwendet werden. Bei einer Weiterentwicklung des Programms müssen Änderungen nur an einer Stelle durchgeführt werden. Das Programm wird so kompakter, einfacher abzuändern und verständlicher.

Der Malstift in Scratch

Stift

Gehe unten links auf «Erweiterung hinzufügen».

Wähle hier den Malstift aus.

Nun stehen dir zusätzliche Blöcke zur Verfügung.

Jetzt kannst du deine Figuren in Scratch so oder ähnlich programmieren, dass sie eine farbige Linie hinter sich nachziehen.

Funktionen oder Unterprogramme?

Begriffe

Unterprogramme sind Teile eines Programms, die ausgelagert worden sind und in Scratch beispielsweise mit einem Block aufgerufen werden können.

In Scratch stehen bereits verschiedene Unterprogramme zur Verfügung, die eine ganz bestimmte Aufgabe übernehmen. Zusätzlich können eigene Unterprogramme erstellt werden.

Begriffe wie Funktionen oder Subroutine können als Synonyme von Unterprogrammen verwendet werden.

Werte, die einem Unterprogramm mitgegeben werden, werden Parameter oder Argumente genannt. Je nachdem, wie diese lauten, wird das Unterprogramm unterschiedlich ausgeführt.

Handbuch

Unterprogramme

In diesem Handbuch findest du alles, was du über Unter-programme in Scratch wissen musst. Bei Unsicherheiten und Fragen kannst du hier nachschauen.

Hier wird gezeigt, wie ein Unterprogramm für ein n-Eck erstellt wird.

Vorgehen:

Definiere ein neues Unterprogramm:

«Neuer Block» unter «Meine Blöcke».

Handbuch

Wähle einen Blocknamen aus und bestimme, welche Parameter mit dem Unterprogramm weitergegeben werden sollen (Zahl,Text und/oder Wahrheitswert).

https://scratch.mit.edu/projects/392676669/editor/

Eingabefelder:

Hier kannst du bestimmen, welche Werte (Zahl), Texte oder Wahrheitswerte (wahr/falsch) deinem Unterprogramm weitergegeben werden sollen.

In diesem Beispiel werden alle drei Arten von Parameter verwendet:

Mehr zu Parameter

Da der Wahrheitswert von Kunz und Heinz «falsch» ist, wird «sonst» ausgeführt. Darum steht auch, dass die beiden Namen NICHT die richtigen seien.

Da her Wahrheitswert hier «wahr» ist (1 = 1), wird «falls», also die obere Möglichkeit der Bedingung ausgeführt.

Unterprogramme neu erfunden

Gewisse Blöcke, die in Scratch verwendet werden, sind nichts anderes als Unterprogramme, die du sogar selber erstellen könntest.

Hier ein Beispiel:

=

Beim eigenen Block könntest du sogar noch genauer definieren, in welchem Bereich der Bühne die Figur zufällig gehen soll. So könntest du zum Beispiel definieren, dass die Figur nur in der oberen Hälfte landen kann, indem du die Zufallszahl bei y auf 0 bis 180 beschränkst.

Code lesen & Debugging

Unterprogramme

Eine Möglichkeit, sich intensiv mit neuen Programmierkonzepten auseinanderzusetzen, bietet «Code lesen» und das «Debugging». Diese Aufgaben helfen dir zu erkennen, ob du die Konzepte wirklich verstanden hast.

Schau dir die Programme an, und versuche sie zu verstehen (Code lesen) oder den Fehler zu finden (Debugging).

Code lesen & Debugging

Code lesen 1

Welche Figur wird hier gezeichnet?

Code lesen 1

Lösung

Lösung

https://scratch.mit.edu/projects/387725652/editor/

Code lesen 2

Was sagt die Katze?

Code lesen 2

Lösung

Lösung

https://scratch.mit.edu/projects/387726016/editor/

Debugging 2

Die Katze sollte ein Viereck mit Seitenlänge 100 zeichnen.

Was wurde hier falsch gemacht?

Debugging 1

Erstelle einen «Remix» des Programms und korrigiere es:

https://scratch.mit.edu/projects/387726034/editor/

Lösung

Hier darf keine Variable verwendet werden, sondern der Wert, der mit dem Unterprogramm mitgegeben wurde.

Das pinke «seitenlaenge» kann direkt aus dem Kopf des Unterprogramms gezogen und an die ensprechende Stelle gesetzt werden.

Debugging 2

Das n-eck-Unterprogramm gibt nicht das erwartete Resultat aus.

Was stimmt hier nicht?

Erstelle einen «Remix» des Programms und korrigiere es:

https://scratch.mit.edu/projects/387726027/editor/

Debugging 2

Die Werte der Eingabefelder wurden hier an die falschen Stellen im Unterprogramm weitergegeben.

Lösung

Anwendung

Unterprogramme

Hier wird gezeigt, wie Unterprogramme in einem Spiel, in einer Animation oder in einer Simulation eingesetzt werden können.

Anwendung

Studiere die Ideenbeschreibung mit dem Video und überlege dir, wo und wie hier Unterprogramme verwendet werden. Du kannst die Idee nachprogrammieren, oder dir einfach die Beispiellösung anschauen.

Unterprogramme

Spiel

Ein Wert wird dem Unterprogramm übergeben, um so zu überprüfen, ob der Wert ein neuer Highscore ist.

Die Katze gibt Feedback und speichert gegebenenfalls den neuen Highscore ab. So kann das beste Ergebnis am Schluss mehrere Spielrunden abgelesen werden.

Spiel

Beispiellösung

https://scratch.mit.edu/projects/384074062/editor/

Unterprogramme

Animation

Das Unterprogramm «n-eck»

Bei diesem Beispiel werden n-Ecke gezeichnet. Der Benutzer kann auswählen, wie viele Ecken die Figur haben soll und wie lang die Seiten dieser jeweils sind.

Animation

Beispiellösung

https://scratch.mit.edu/projects/392423611/editor/

(mit einem zusätzlichen Dreieck)

Unterprogramme

Simulation

Studiere die vereinfachte Simulation einer Krankheitsübertragung, bei der verschiedene Parameter eingestellt werden können.

Sobald eine gesunde (gelbe) Kugel eine infizierte (violette) berührt, wird sie ebenfalls violett.

Simulation

Beispiellösung

https://scratch.mit.edu/projects/387725640/editor/

Fangspiel-Ergänzung

Unterprogramme

Öffne das Fangspiel, erstelle einen Remix und ergänze es folgendermassen:

https://scratch.mit.edu/projects/335292513/editor/

Das Fangspiel (Äpfel) kann an verschiedenen Stellen mit einem Unterprogramm erweitert werden.

Fangspiel-Ergänzung

Hier wird die Fallmechanik und das Verhalten bei einer Berührung mit der Bowl in Unterprogramme ausgelagert.

Zwingend notwendig ist das natürlich in diesem Fall nicht, das Programm wird jedoch übersichtlicher und

Änderungen können direkt beim Aufruf des Programms vorgenommen werden.

Learn more about creating dynamic, engaging presentations with Prezi