lehrkraefte:snr:informatik:glf22:wissens-check-nach-herbstferien

This is an old revision of the document!


Was weisst du noch von vor den Herbstferien?

Es folgt eine schrittweise Anleitung zum Schreiben eines Programms, das vom Benutzer einen Satz erfragt und diesen 100 Mal in Slalom-Form ausgibt:

Gib einen Satz ein: Schleifen sind cool!
  Schleifen sind cool!
   Schleifen sind cool!
    Schleifen sind cool!
     Schleifen sind cool!
    Schleifen sind cool!
   Schleifen sind cool!
  Schleifen sind cool!
 Schleifen sind cool!
Schleifen sind cool!
 Schleifen sind cool!
  Schleifen sind cool!
   Schleifen sind cool!
...
  • (1) Öffne eine neue Datei slalom.py in Visual Studio Code in deinem Ordner mit den Python-Programmen.

Hinweis

Hinweis

Das geht über das Menü: File, New File; dann den Namen eingeben (+ Return) und den Ordner auswählen, in dem es gespeichert werden soll.


  • (2) Eingabe des Satzes durch den Benutzer: Schreibe in die erste Zeile den Befehl, der vom Benutzer den Satz erfragt (per “Gib einen Satz ein: ”) und diesen in einer Variablen namens satz speichert.

Hinweis

Hinweis

Eingabe durch den Benutzer geht mit dem Befehl input.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")

  • (3) Definiere in der zweiten Zeile eine Variable einrueckung und weise ihr den Wert 2 zu.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2

  • (4) Definiere in der dritten Zeile eine Variable veraenderung und weise ihr den Wert 1 zu.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1

Die Idee hinter diesen beiden Variablen: Sie werden verwendet, um den Slalomtext zu erzeugen:

  • Bei jeder der 100 Ausgaben müssen wir wissen, wie viele Leerzeichen vor dem Satz ausgegeben werden sollen. Diese Zahl wird in der Variable einrueckung gespeichert.
  • Die Variable einrueckung wächst manchmal um eins (wenn der Slalomtext nach rechts wandert), manchmal wird sie um eins kleiner (wenn der Slalomtext nach links wandert. Wir merken uns diese Veränderung der Einrückung in der Variablen veraenderung, die nur die Werte 1 und -1 annehmen wird: Ist sie 1, wandert der Text nach rechts. Ist sie -1, wandert der Text nach links.
  • (5) Ergänze am Ende des Programms eine for-Schleife, die den vom Benutzer eingegebenen Satz 100 Mal ausgibt.

Hinweis, wenn du for-Schleifen noch nicht kennst

Hinweis, wenn du for-Schleifen noch nicht kennst

Schreibe for index in range(100): in eine Zeile und dann in die nächste Zeile zuerst viel Leerschläge und dann den Befehl zur Ausgabe des Satzes. Bemerkung: for-Schleifen dienen dazu, dass ein gewisser (eingrückter) Codeblock mehrfach ausgeführt wird.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(satz)

  • (6) Teste dein Programm!
  • (7) Verändere den Befehl zur Ausgabe des Satzes so, dass vor dem Satz so viele Leerzeichen ausgegeben werden, wie die Variable einrueckung angibt. (Bitte wirklich die Variable verwenden und nicht einfach den aktuellen Wert - wie in der Infobox beschrieben, verändert sich der Wert von einrueckung während des Programmablaufs.)

Hinweis

Hinweis

Rechnen mit Zeichenketten!

Hinweis

Hinweis

Nimme einrueckung mal die Zeichenkette, die nur aus einem Leerzeichen besteht, und addiere zu ihr die Variable satz.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(einrueckung * " " + satz)

  • (8) Teste dein Programm! Der Text sollte nun 100 Mal jeweils um 2 Leerzeichen eingerückt ausgegeben werden.
  • (9) Neue letzte Zeile des Progamms (innerhalb der for-Schleife, also eingerückt): Weise der Variablen einrueckung als neuen Wert diejenige Zahl zu, die aus dem aktuellen Wert von einrueckung durch Addition der Variablen veraenderung entsteht.

Hinweis:

Hinweis:

Hier sollst du ein if-statement verwenden!

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(einrueckung * " " + satz)
    einrueckung = einrueckung + veraenderung

  • (10) Teste dein Programm! Der Text sollte nun nach rechts wandern.
  • (11) Ergänze am Ende des Programm (innerhalb der for-Schleife): Wenn die Variable einrueckung den Wert 5 hat, so setze die Variable veraenderung auf -1.

Hinweis:

Hinweis:

Hier sollst du ein if-statement verwenden!

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(einrueckung * " " + satz)
    einrueckung = einrueckung + veraenderung
    if einrueckung == 5:
        veraenderung = -1

  • (12) Teste dein Programm! Der Text sollte nun einmal nach rechts und dann nach links wandern.
  • (13) Ergänze am Ende des Programm: Wenn die Variable einrueckung den Wert 0 hat, so setze veraenderung auf 1.

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(einrueckung * " " + satz)
    einrueckung = einrueckung + veraenderung
    if einrueckung == 5:
        veraenderung = -1
    if einrueckung == 0:
        veraenderung = 1

  • (14) Teste dein Programm! Nun sollte alles klappen und der Slalomtext ausgegeben werden.
  • (15) Wenn du eine langsamere Ausgabe erreichen willst: Schreibe import time ganz an den Anfang des Programms und time.sleep(0.05) ganz ans Ende des Programms (eingerückt oder nicht?)

Erwarteter Zustand des Programms:

Erwarteter Zustand des Programms:

import time
satz = input("Gib einen Satz ein: ")
einrueckung = 2
veraenderung = 1
for i in range(100):
    print(einrueckung * " " + satz)
    einrueckung = einrueckung + veraenderung
    if einrueckung == 5:
        veraenderung = -1
    if einrueckung == 0:
        veraenderung = 1
    time.sleep(0.05)

  • (16) Bonusfrage: Wie kann man die beiden if-statements durch ein einziges if-statement ersetzen?

Antwort 1:

Antwort 1:

    if einrueckung == 5 or einrueckung = 0:
        veraenderung = -veraenderung

Antwort 2:

Antwort 2:

    if einrueckung % 5 == 0:
        veraenderung = -veraenderung
  • lehrkraefte/snr/informatik/glf22/wissens-check-nach-herbstferien.1666893308.txt.gz
  • Last modified: 2022/10/27 19:55
  • by Olaf Schnürer