Diskussion:Gissa talet
Betrakta koden för programmet på sidan
- Vilka variabler finns i programmet?
- Vilka värden kan heltalen anta?
- Vad är syftet och vad händer med variablerna som finns i programmet?
- Vilka är programmets huvuddelar och vad händer i respektive del?
- Vad är syftet med programmet?
- Vilken sorts matematisk kunskap kan eleverna tillgodogöra sig om de kör programmet ett antal gånger
Didaktiskt tips
- Eleverna hittar strategin att halvera intervallet.
- Diskutera maximala antalet intervall eller gissningar
- Rita och diskutera
- Diskutera hur delning med två upprepade gånger är ekvivalent med upphöjt i två
- Led in diskussionen på potenser av 2.
Kodförbättringsförslag
Per Persson ställde följande relevanta fråga:
Fungerar verkligen programmet?
Du läser in en sträng och lägger den i 'guess' som du sedan konverterar till 'int'. Men sedan jämför du variabelns värde, som alltså är en 'int', med strängen "exit". Detta borde ge ett fel.
# Korrigerad version
# Ange ett tal
number = input("Ange ett tal mellan 1 - 100. ")
# Använd heltal
number = int(number)
# Räknare
guess = 0
count = 0
# Loopa tills vi avbryter
while True:
# Skriver ut text
guess = input("Gissa det tal som din kamrat angav. ")
if guess == "exit":
break
guess = int(guess)
# Räknar antalet gissningar
count += 1
# Jämför
if guess < number:
print("Talet du angav är mindre än det sökta talet.")
elif guess > number:
print("Talet du angav är större än det sökta talet.")
else:
print("Grattis du har gissat talet som din kamrat angav. ")
print("Talet är: ", number)
print("Det har tagit dig", count, "gissningar. ")
break
# Resultatet visas så länge vi vill
input ("Tryck Enter för att avsluta programmet")