lehrkraefte:blc:informatik:glf20:programmieren:while-zahlenraten

This is an old revision of the document!


Zahlenraten: Wiederholungen mit while

  • Bestimmen Sie im Kopf eine zufällige natürliche Zahl zwischen 1 und 100.
  • Ihr Nachbar soll die Zahl erraten. Sie dürfen nur sagen, ob die gesuchte Zahl grösser oder kleiner ist, oder die Zahl gefunden wurde.
  • In wie vielen Vesuchen kann die Zahl garantiert erraten werden?

Wir machen eine Übersicht der folgenden Elemente:

  • Welche Werte müssen gespeichert werden, wie sollen die Variablen heisen?
  • Wie ist genau der Ablauf vom Programm?
    • Was geschieht genau einmal am Anfang?
    • Welche Schritte werden wiederholt?
    • Was passiert am Schluss?

Python kann Zufallszahlen erzeugen. Dafür muss die entsprechende Funktion importiert (d.h. verfügbar gemacht) werden.

Testen und verstehen Sie folgendes Programm:

from random import randrange  # Funktion randrange importieren
 
wurfel = ""     # Für die Ausgabe auf einer Zeile
for i in range(50):
    wurfel += "%d " % randrange(1,7)  # Zufallszahl von 1 bis und mit 6
 
print(wurfel)

Passen Sie das Programm so an, dass Roulette-Zahlen (0 bis und mit 36) oder Münzwürfe (0 oder 1) erzeugt werden.

Bei einem for-loop sind die Anzahl Wiederholungen zu Beginn der Schleife festgelegt.

Beim Rate-Spiel muss geraten werden (d.h. wiederholt), bis die Zahl gefunden wurde. In Python könnte das wie folgt aussehen:

gefunden = False   # Die Zahl ist noch nicht gefunden
while not gefunden:   # Solange nicht gefunden, wiederholen
  # Tu
  # was (hier muss Code stehen, so meldet das Programm einen Fehler wegen leerer Schlaufe
grenze = 100
zahl = 42   # Hier eine Zufallszahl mit randrange zwischen 1 und granze bestimmen
 
gefunden = False   # Zahl schon erraten?
versuche = 0       # Anzahl Versuche
 
while not gefunden:
  # Anzahl versuche um eins Erhöhen.
 
  # Benutzer soll raten
  raten = inputInt("Versuch %d: Zahl zwischen 1 und %d erraten:" % (versuche, grenze))
 
 
  # Zahl gefunden? Also entsprechende Ausgabe, die Variable 'gefunden' auf True setzen
  # Sonst Ausgabe, ob zu gross oder zu klein
 
# Ende des Programms
print("Die Zahl wurde in %d Versuchen erraten!" % versuche)
  • lehrkraefte/blc/informatik/glf20/programmieren/while-zahlenraten.1603912961.txt.gz
  • Last modified: 2020/10/28 20:22
  • by Ivo Blöchliger