lehrkraefte:snr:informatik:bruehl-2022:schleifen

Schleifen

Besprechung der Hausaufgabe (bei 1c evtl. Quiz besprechen).

  • while-Schleifen kennenlernen (bereits informell im Zeichenprogramm verwendet)
  • … und wie man diese sinnvoll verwendet

In Python gibt es drei Arten von Schleifen alias Möglichkeiten, einen Code-Block mehrmals auszuführen:

  • repeat-Schleifen 1) - diese kennen wir bereits seit der ersten Doppellektion.
  • while-Schleifen - diese lernen wir heute kennen
  • for-Schleifen - das kommt nach den Oster-Ferien

Motivierende Beispiele:

Solange Suppenteller nicht leer:
    Iss einen Löffel Suppe!
Putze deine Zähne!

Was ist hier das Problem?

Solange Suppenteller nicht leer:
    Schreibe eine Email!
Putze deine Zähne!

Eine while-Schleife wird mit dem Schlüsselwort while (für deutsch solange) eingeleitet und hat die folgende Struktur (beachte den Doppelpunkt und die Einrückung):

while <Ausführ-Bedingung>:                                            # der sogenannte Kopf der Schleife
    <Code-Block, der so lange wiederholt ausgeführt wird,             # der sogenannte Körper der Schleife 
    wie die Ausführ-Bedingung erfüllt ist.
    Dieser Code-Block ist um vier Leerschläge eingerückt>    

Vergleich mit if-Selektion: Wenn man while durch if ersetzt, wird der eingerückte Code-Block genau einmal durchgeführt, wenn die Ausführ-Bedingung erfüllt ist. Bei der while-Schleife wird dieser solange ausgeführt, wie die Ausführbedingung erfüllt ist.

Einzelarbeit, ca. 8 Minuten

  • Teste das folgende Programm.
  • Was passiert und warum passiert dies, wenn du die letzte Zeile nicht einrückst?
  • Was passiert, wenn du die beiden letzten Zeile miteinander vertauschst?
  • Was passiert, wenn du die Zeile x = x + 3 löschst (oder mit # auskommentierst)?
x = 0
while x < 20:
    print(x)
    x = x + 3     

Bearbeite dann die nächste Aufgabe.

Einzelarbeit, ca. 5 Minuten

Schreibe ein Programm (mit einer while-Schleife), das alle Zahlen zwischen 5 und 19 (einschliesslich der beiden Grenzen 5 und 19) ausgibt.

Bearbeite dann die nächste Aufgabe.

Einzelarbeit, ca. 5 Minuten

Schreibe ein Programm (mit einer while-Schleife), das vom Benutzer eine Zahl a einliest und die Quadrate aller Zahlen zwischen 1 und a ausgibt. Bei Eingabe 13 soll die Ausgabe wie folgt aussehen:

Hinweis: Schreibe zuerst ein Programm, dass alle Zahlen von 1 bis a ausgibt. Ändere es danach so, dass statt jeder Zahl deren Quadrat ausgegeben wird.

1
4
9
16
25
36
49
64
81
100
121
144
169

Bearbeite dann die nächste Aufgabe.

Einzelarbeit, ca. 10 Minuten

Schreibe mit Hilfe einer while-Schleife ein Programm, um die Turtle zu steuern. Das Programm soll den Benutzer jeweils zur Eingabe eines Wortes auffordern.

  • Gibt der Benutzer links ein, soll die Turtle 50 Schritte vorwärts gehen und sich dann um 90 Grad nach links drehen.
  • Gibt der Benutzer rechts ein, soll die Turtle 50 Schritte vorwärts gehen und sich dann um 90 Grad nach rechts drehen.
  • Gibt der Benutzer Ende ein, so soll das Programm enden.
  • Bei allen andere Eingaben soll im Ausgabefenster (das Fenster in Tigerjython unter dem Programmcode) unbekannter Befehl ausgegeben werden.

Einzelarbeit, ca. 10 Minuten

Schreibe mit Hilfe einer while-Schleife ein Programm, das vom Benutzer eine Zahl entgegennimmt und die Summe aller Zahlen von 1 bis zu dieser Zahl ausrechnet.

Beispiel: Bei Eingabe 10 soll die Ausgabe lauten:

Die Summe der Zahlen von 1 bis 
10 
ist 
55

Lerne auf die Prüfung!

  • Beachte die Lösungsvorschläge, die stets am Ende der Web-Seiten stehen, meist in “Ausklapp-Boxen”. Verwende eventuell das Einzelschrittverfahren, um die Programme besser zu verstehen.
  • Die Lernziele und Hinweise zur Prüfungsvorbereitung stehen am Ende der Hauptseite.
  • Bitte melden, wenn Lösungen fehlen oder unklar sind oder sonstige Fragen aufkommen. Am schnellsten geht das über meine Email-Adresse an der Kanti am Burggraben

MeinVorname.MeinNachname@ksbg.ch

(Meine Brühl-Email-Adresse und Teams checke ich etwas seltener. Mein Name steht unten rechts auf dieser Seite.)

Erst selbst überlegen!

Erst selbst überlegen!

  • Ich weiss, wie eine while-Schleife funktioniert und kann sie sinnvoll einsetzen.

Bitte einfach am Anfang des Programms oder der eingereichten Datei die Frage aufschreiben (mit oder ohne Hashtag # als Kommentareinleitungszeichen am Zeilenanfang).

Link zur Fragebox

Aufgabe 1

Aufgabe 1

Es wird jeweils nur der eingerückte Code-Block mehrfach ausgeführt. Wie immer werden die Zeilen der Reihe nach von oben abgearbeitet.

  • Nur einmal am Ende wird der Wert der Variablen x ausgegeben.
  • Jeweils zuerst Ausgabe, dann Erhöhung um 3. Erste Ausgabe ist dann 0.
  • Endlosschleife, da die Bedingung x < 20 immer gilt, da sich x innerhalb der Schleife nicht ändert.

Aufgabe 2

Aufgabe 2

x = 5
while x <= 19:
    print(x)
    x = x + 1

Aufgabe 3

Aufgabe 3

a = input("Gib eine Zahl ein:")
x = 1
while x <= a:
    print(x * x)
    x = x + 1    

Aufgabe 4

Aufgabe 4

from gturtle import *
makeTurtle()
 
eingabe = input("Was soll ich tun?")
while eingabe != "Ende":
    if eingabe == "links":
        forward(50)
        left(90)
    elif eingabe == "rechts":
        forward(50)
        right(90)
    else:
        print("unbekannter Befehl")
    eingabe = input("Was soll ich tun?")    

Bonusaufgabe

Bonusaufgabe

a = input("Gib eine Zahl ein:")
summe = 0
x = 1
while x <= a:
    summe = summe + x
    x = x + 1
print("Die Summe der Zahlen von 1 bis")
print(a)
print("ist")
print(summe)   

1)
Genaugenommen gibt es diese Struktur nur in unserem “Java-Dialekt” Jython von Python.
  • lehrkraefte/snr/informatik/bruehl-2022/schleifen.txt
  • Last modified: 2022/03/29 16:57
  • by Olaf Schnürer