Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
lehrkraefte:snr:informatik:bruehl-2022:auswahl [2022/03/15 08:46] Olaf Schnürer [Bonusaufgabe, Aufgabe 6] |
lehrkraefte:snr:informatik:bruehl-2022:auswahl [2022/03/21 10:25] (current) Olaf Schnürer [Lösungsvorschläge und Tafelanschriebe] |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ~~NOTOC~~ | ||
+ | |||
===== Lernziele heute ===== | ===== Lernziele heute ===== | ||
Line 4: | Line 6: | ||
* mit anderen Worten: Wir schreiben ein Zeichen- oder Mal-Programm! | * mit anderen Worten: Wir schreiben ein Zeichen- oder Mal-Programm! | ||
* " | * " | ||
- | |||
- | |||
- | |||
- | |||
- | |||
====== if-Selektion (Auswahl, Selektion, if-then-else-Struktur, | ====== if-Selektion (Auswahl, Selektion, if-then-else-Struktur, | ||
Line 93: | Line 90: | ||
* Verwende eine '' | * Verwende eine '' | ||
- | <hidden **Bonusaufgaben:** (bitte ausklappen)> | + | <hidden **Bonusteilaufgaben:** (bitte ausklappen)> |
* Verändere die Strecke '' | * Verändere die Strecke '' | ||
* Sorge dafür, dass '' | * Sorge dafür, dass '' | ||
Line 113: | Line 110: | ||
* Bonusfrage: Geht dasselbe auch nur mit '' | * Bonusfrage: Geht dasselbe auch nur mit '' | ||
- | <WRAP left round box 48%> | + | <WRAP left round box 40%> |
<code python> | <code python> | ||
from gturtle import * # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist. | from gturtle import * # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist. | ||
Line 141: | Line 138: | ||
</ | </ | ||
</ | </ | ||
- | <WRAP right round box 48%> | + | <WRAP right round box 40%> |
<code python> | <code python> | ||
from gturtle import * | from gturtle import * | ||
Line 208: | Line 205: | ||
Die erwünschte Lösung verwendet die obige " | Die erwünschte Lösung verwendet die obige " | ||
- | <hidden **Bonusaufgaben:** (bitte ausklappen)> | + | <hidden **Bonusteilaufgaben:** (bitte ausklappen)> |
Erweitere dein Zeichenprogramm! Hier einige Vorschläge: | Erweitere dein Zeichenprogramm! Hier einige Vorschläge: | ||
* Tasten '' | * Tasten '' | ||
Line 246: | Line 243: | ||
* Der Vergleich einer " | * Der Vergleich einer " | ||
- | <hidden **Bonusaufgabe:** (bitte ausklappen)> | + | <hidden **Bonusteilaufgabe:** (bitte ausklappen)> |
Der Benutzer soll nun bei jeder falsch beantworteten Frage zwei weitere Versuche haben. Versuche, dies mit einer '' | Der Benutzer soll nun bei jeder falsch beantworteten Frage zwei weitere Versuche haben. Versuche, dies mit einer '' | ||
Hinweis: Verwende eine Variable, die '' | Hinweis: Verwende eine Variable, die '' | ||
+ | |||
+ | Alternativ geht es auch mit einer '' | ||
</ | </ | ||
Line 259: | Line 258: | ||
Du hast die Wahl: | Du hast die Wahl: | ||
* Aufgabe 5 oder | * Aufgabe 5 oder | ||
- | * Aufgabe 4 mit mindestens drei der Bonusaufgaben | + | * Aufgabe 4 mit mindestens drei der Bonusteilaufgaben |
- | * Aufgabe 2 mit mindestens drei der Bonusaufgaben | + | * Aufgabe 2 mit mindestens drei der Bonusteilaufgaben |
+ | * eine der beiden nachfolgenden Bonusaufgaben, | ||
<hidden Hier ist der Anfang der Lösung von Aufgabe 4, falls jemand das in der Lektion noch nicht geschafft hatte. Bitte ausklappen.> | <hidden Hier ist der Anfang der Lösung von Aufgabe 4, falls jemand das in der Lektion noch nicht geschafft hatte. Bitte ausklappen.> | ||
Line 313: | Line 313: | ||
**Rasenmäher-Schildkröte** | **Rasenmäher-Schildkröte** | ||
- | Lass die Schildkröte so lange geradeaus laufen, bis sie nahe am Rand des Fensters ist. Dann soll sie etwas zurück gehen und sich etwas drehen (dies können feste oder zufällige Werte sein); danach geht wieder | + | Lass die Schildkröte so lange geradeaus laufen, bis sie nahe am Rand des Fensters ist. Dann soll sie etwas zurück gehen und sich etwas drehen (dies können feste oder zufällige Werte sein); danach geht es wieder mit der Vorwärtsbewegung weiter |
Hinweis: | Hinweis: | ||
Line 326: | Line 326: | ||
Wähle am Anfang einen zufälligen Startwinkel. Lass die Schildkröte geradeaus in diese Richtung laufen, bis sie auf den Rand des Fensters trifft. Dort soll sie wie ein Lichtstrahl bzw. wie eine idealisierte Billardkugel reflektiert werden. | Wähle am Anfang einen zufälligen Startwinkel. Lass die Schildkröte geradeaus in diese Richtung laufen, bis sie auf den Rand des Fensters trifft. Dort soll sie wie ein Lichtstrahl bzw. wie eine idealisierte Billardkugel reflektiert werden. | ||
+ | |||
+ | Schaffst du es, dass die Billard-Schildkröte bei jeder Reflektion die Zeichenfarbe ändert? Die Farbe kann zufällig oder in einer festgelegten Reihenfolge - etwa rot-grün-blau - geändert werden. | ||
Hinweise: Neben den Hinweisen bei der vorigen Aufgabe verwende: | Hinweise: Neben den Hinweisen bei der vorigen Aufgabe verwende: | ||
Line 381: | Line 383: | ||
</ | </ | ||
- | <hidden Aufgabe 2> | + | <hidden Aufgabe 2: Zufällige Bewegung> |
{{: | {{: | ||
<code python> | <code python> | ||
Line 401: | Line 403: | ||
</ | </ | ||
- | < | + | < |
+ | Das Programm wartet auf einen Tastendruck und speichert diesen in der Variablen '' | ||
+ | |||
+ | Der Befehl '' | ||
+ | Der Befehl '' | ||
+ | |||
+ | Es geht auch nur mit '' | ||
<code python> | <code python> | ||
+ | from gturtle import * # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist. | ||
+ | makeTurtle() | ||
+ | |||
+ | taste = getKeyWait() | ||
+ | print(taste) | ||
+ | |||
+ | if taste == " | ||
+ | print(" | ||
+ | if taste == " | ||
+ | print(" | ||
+ | if taste == " | ||
+ | print(" | ||
+ | if taste == " | ||
+ | print(" | ||
+ | if taste == " | ||
+ | print(" | ||
+ | if taste != " | ||
+ | print(" | ||
+ | |||
+ | dispose() | ||
</ | </ | ||
+ | </ | ||
+ | |||
+ | <hidden Aufgabe 4: Ferngesteuerte Turtle> | ||
+ | <code python> | ||
+ | from gturtle import * | ||
+ | makeTurtle(" | ||
+ | |||
+ | taste = " " | ||
+ | |||
+ | # Die folgende sogenannte " | ||
+ | # ähnlich wie eine repeat-Schleife: | ||
+ | # eingerückte Code-Block wird solange wiederholt | ||
+ | # ausgeführt, | ||
+ | # englisch WHILE = deutsch SOLANGE | ||
+ | s = 10 | ||
+ | |||
+ | while taste != " | ||
+ | taste = getKeyWait() | ||
+ | |||
+ | if taste == " | ||
+ | forward(s) | ||
+ | elif taste == " | ||
+ | left(60) | ||
+ | elif taste == " | ||
+ | backward(s) | ||
+ | elif taste == " | ||
+ | right(60) | ||
+ | elif taste == " | ||
+ | s = s + 1 | ||
+ | elif taste == " | ||
+ | s = s - 1 | ||
+ | elif taste == " | ||
+ | winkel = input(" | ||
+ | right(winkel) | ||
+ | elif taste == " | ||
+ | home() | ||
+ | elif taste != " | ||
+ | print(" | ||
+ | |||
+ | dispose() | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | <hidden Aufgabe 5: Quiz> | ||
+ | <code python> | ||
+ | n = 0 # Anzahl korrekter Antworten. | ||
+ | |||
+ | a = input(" | ||
+ | if a == 26: # Achtung, manche haben hier a == " | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | else: | ||
+ | print(" | ||
+ | | ||
+ | b = input(" | ||
+ | if b == 8 or b == 9: | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | else: | ||
+ | print(" | ||
+ | |||
+ | c = input(" | ||
+ | if c == " | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | else: | ||
+ | print(" | ||
+ | |||
+ | print(" | ||
+ | print(n) | ||
+ | |||
+ | if n > 2: | ||
+ | print(" | ||
+ | elif n == 0: | ||
+ | print(" | ||
+ | </ | ||
+ | | ||
+ | Und hier die Bonus-Variante (die ersten beiden Fragen per '' | ||
+ | <code python> | ||
+ | n = 0 # Anzahl korrekter Antworten. | ||
+ | v = 0 # Anzahl falsche Versuche | ||
+ | |||
+ | eingabeStimmt = 0 | ||
+ | repeat 3: | ||
+ | if eingabeStimmt == 0: | ||
+ | a = input(" | ||
+ | if a == 26: | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | eingabeStimmt = 1 | ||
+ | else: | ||
+ | print(" | ||
+ | v = v + 1 | ||
+ | if eingabeStimmt == 0: | ||
+ | print(" | ||
+ | |||
+ | print(20 * " | ||
+ | eingabeStimmt = 0 | ||
+ | repeat 3: | ||
+ | if eingabeStimmt == 0: | ||
+ | b = input(" | ||
+ | if b == 8 or b == 9: | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | eingabeStimmt = 1 | ||
+ | else: | ||
+ | print(" | ||
+ | v = v + 1 | ||
+ | if eingabeStimmt == 0: | ||
+ | print(" | ||
+ | |||
+ | # Und nun die Variante mit der while-Schleife | ||
+ | |||
+ | |||
+ | print(20 * " | ||
+ | nochVersuche = 3 # Anzahl der Versuche, die der Antwortende noch hat. | ||
+ | |||
+ | while nochVersuche > 0: | ||
+ | c = input(" | ||
+ | nochVersuche = nochVersuche - 1 | ||
+ | if c == " | ||
+ | print(" | ||
+ | n = n + 1 | ||
+ | nochVersuche = 0 | ||
+ | else: | ||
+ | print(" | ||
+ | v = v + 1 | ||
+ | if c != " | ||
+ | print(" | ||
+ | |||
+ | |||
+ | print(20 * " | ||
+ | print(" | ||
+ | print(n) | ||
+ | print(" | ||
+ | print(v) | ||
+ | |||
+ | if n == 3 and v == 0: | ||
+ | print(" | ||
+ | else: | ||
+ | print(" | ||
+ | </ | ||
</ | </ | ||