lehrkraefte:snr:informatik:bruehl-2022:auswahl

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
lehrkraefte:snr:informatik:bruehl-2022:auswahl [2022/03/20 22:45]
Olaf Schnürer [Lösungsvorschläge und Tafelanschriebe]
lehrkraefte:snr:informatik:bruehl-2022:auswahl [2022/03/21 10:25] (current)
Olaf Schnürer [Lösungsvorschläge und Tafelanschriebe]
Line 383: Line 383:
 </hidden> </hidden>
  
-<hidden Aufgabe 2>+<hidden Aufgabe 2: Zufällige Bewegung>
 {{:lehrkraefte:snr:informatik:bruehl-2022:brownsche-bewegung-flussdiagramm-cropped.jpg?400|Flussdiagramm dazu}} {{:lehrkraefte:snr:informatik:bruehl-2022:brownsche-bewegung-flussdiagramm-cropped.jpg?400|Flussdiagramm dazu}}
 <code python> <code python>
Line 403: Line 403:
 </hidden> </hidden>
  
-<hidden Aufgabe 3> +<hidden Aufgabe 3: getKeyWait() und if-elif-...-elif-else kennenlernen
-Das Programm wartet auf einen Tastendruck und speichert diesen in der Variablen ''taste''. Je nach Eingabe wird in den verschachtelten ''if''-Strukturen entschieden, was ausgegeben wird.+Das Programm wartet auf einen Tastendruck und speichert diesen in der Variablen ''taste'' und gibt den Wert von ''taste'' aus. Je nach Eingabe wird dann in der verschachtelten ''if''-Struktur entschieden, was ausgegeben wird.
  
 Der Befehl ''input("...")'' nimmt eine Eingabe (die auch aus mehreren Zeichen bestehen kann) entgegen; die Eingabe muss mit der Return-Taste oder Klicken auf den Ok-Button abgeschlossen werden. Der Befehl ''input("...")'' nimmt eine Eingabe (die auch aus mehreren Zeichen bestehen kann) entgegen; die Eingabe muss mit der Return-Taste oder Klicken auf den Ok-Button abgeschlossen werden.
 Der Befehl ''getKeyWait()'' wartet auf den nächsten Tastendruck (nur ein Zeichen); die Eingabe wird nicht mit Return o. ä. abgeschlossen. Der Befehl ''getKeyWait()'' wartet auf den nächsten Tastendruck (nur ein Zeichen); die Eingabe wird nicht mit Return o. ä. abgeschlossen.
 +
 +Es geht auch nur mit ''if'', z. B. wie folgt. Beachte, dass die letzte ''if''-Selektion deutlich komplizierter geworden ist!
 +<code python>
 +from gturtle import *       # Die ersten beiden Zeilen dienen nur dazu, dass der Befehl getKeyWait() bekannt ist.
 +makeTurtle()                # Ohne sie funktioniert das Programm leider nicht.
 +
 +taste = getKeyWait()          
 +print(taste)
 +
 +if taste == "a":
 +    print("a wie Anna")
 +if taste == "b":
 +    print("b wie Berta")
 +if taste == "c":
 +    print("c wie Caesar")
 +if taste == "d":
 +    print("d wie Daniel")
 +if taste == "e":
 +    print("E wie Emil")
 +if taste != "a" and taste != "b" and taste != "c" and taste != "d" and taste != "e":                 
 +    print("Du hast keine der Tasten a, b, c, d, e gedrückt.")
 +
 +dispose()     # Schliesst das Turtle-Fenster.
 +</code>
 </hidden> </hidden>
  
-<hidden zu ergänzen>+<hidden Aufgabe 4: Ferngesteuerte Turtle>
 <code python> <code python>
 +from gturtle import *
 +makeTurtle("black")
 +
 +taste = " "                         # oder irgendetwas anderes ungleich "e"
 +
 +                                    # Die folgende sogenannte "while"-Schleife funktioniert 
 +                                    # ähnlich wie eine repeat-Schleife: Der 
 +                                    # eingerückte Code-Block wird solange wiederholt
 +                                    # ausgeführt, wie die angegebene Bedingung gilt.
 +                                    # englisch WHILE = deutsch SOLANGE  
 +s = 10
 +
 +while taste != "e":  
 +    taste = getKeyWait()
 +
 +    if taste == "i":
 +        forward(s)
 +    elif taste == "j":
 +        left(60)
 +    elif taste == "k":
 +        backward(s)
 +    elif taste == "l":
 +        right(60)
 +    elif taste == "p":
 +        s = s + 1 
 +    elif taste == "m":
 +        s = s - 1
 +    elif taste == "w":
 +        winkel = input("Bitte Winkel eingeben. ")
 +        right(winkel)    
 +    elif taste == "h":
 +        home()
 +    elif taste != "e":
 +        print("Taste ohne Funktion.")
 +
 +dispose()
 </code> </code>
 +</hidden>
 +
 +<hidden Aufgabe 5: Quiz>
 +<code python>
 +n = 0 # Anzahl korrekter Antworten.
 +
 +a = input("Wie viele Kantone hat die Schweiz?")
 +if a == 26:                                     # Achtung, manche haben hier a == "26" geschrieben. Jedoch: Der Befehl "input" speichert eine Zahleingabe wie 26 als Zahl, nicht als String!
 +    print("Korrekt!")
 +    n = n + 1
 +else:
 +    print("Leider falsch. Die richte Antwort wäre 26 gewesen.")
 +    
 +b = input("Wie viele Einwohner hat die Schweiz ungefähr in Millionen?")
 +if b == 8 or b == 9:
 +    print("Korrekt!")
 +    n = n + 1
 +else:
 +    print("Leider falsch. Die richte Antwort wäre 8 oder 9 gewesen.")
 +
 +c = input("In welcher Stadt sitzt die Schweizer Regierung?")
 +if c == "Bern":
 +    print("Korrekt!")
 +    n = n + 1
 +else:
 +    print("Leider falsch. Die richte Antwort wäre Bern gewesen.")
 +
 +print("Anzahl korrekter Antworten:")
 +print(n)
 +
 +if n > 2: 
 +    print("Sehr gut!")
 +elif n == 0:
 +    print("Sehr schlecht!")
 +</code>
 +    
 +Und hier die Bonus-Variante (die ersten beiden Fragen per ''repeat'', die dritte per ''while'', damit du zwei Möglichkeiten siehst):
 +<code python>
 +n = 0 # Anzahl korrekter Antworten.
 +v = 0 # Anzahl falsche Versuche
 +
 +eingabeStimmt = 0
 +repeat 3:
 +    if eingabeStimmt == 0:
 +        a = input("Wie viele Kantone hat die Schweiz?")
 +        if a == 26:
 +            print("Korrekt!")
 +            n = n + 1
 +            eingabeStimmt = 1
 +        else:
 +            print("Leider falsch.")
 +            v = v + 1
 +if eingabeStimmt == 0:
 +    print("Alle drei Versuche falsch. Die richte Antwort wäre 26 gewesen.")
 +
 +print(20 * "-" + " Neue Frage " + 20 * "-")
 +eingabeStimmt = 0
 +repeat 3:
 +    if eingabeStimmt == 0:
 +        b = input("Wie viele Einwohner hat die Schweiz ungefähr in Millionen?")
 +        if b == 8 or b == 9:
 +            print("Korrekt!")
 +            n = n + 1
 +            eingabeStimmt = 1
 +        else:
 +            print("Leider falsch.")
 +            v = v + 1
 +if eingabeStimmt == 0:
 +    print("Alle drei Versuche falsch. Die richte Antwort wäre 8 oder 9 gewesen.")
 +
 +# Und nun die Variante mit der while-Schleife
 +
 +
 +print(20 * "-" + " Neue Frage " + 20 * "-")
 +nochVersuche = 3 # Anzahl der Versuche, die der Antwortende noch hat.
 +
 +while nochVersuche > 0:
 +    c = input("In welcher Stadt sitzt die Schweizer Regierung?")
 +    nochVersuche = nochVersuche - 1
 +    if c == "Bern":
 +        print("Korrekt!")
 +        n = n + 1
 +        nochVersuche = 0
 +    else:
 +        print("Leider falsch.")
 +        v = v + 1
 +if c != "Bern":
 +    print("Alle drei Versuche falsch. Die richte Antwort wäre Bern gewesen.")
 +
 +
 +print(20 * "-" + " Auswertung " + 20 * "-")
 +print("Anzahl korrekt beantworteter Fragen:")
 +print(n)
 +print("Anzahl Fehlversuche:")
 +print(v)
 +
 +if n == 3 and v == 0: 
 +    print("Sehr gut!")
 +else:
 +    print("Du kannst dich noch steigern!"         
 +</code>    
 </hidden> </hidden>
  
  • lehrkraefte/snr/informatik/bruehl-2022/auswahl.1647812749.txt.gz
  • Last modified: 2022/03/20 22:45
  • by Olaf Schnürer