Diskussion:Gissa talet

Från Wikiskola
Hoppa till navigering Hoppa till sök

Betrakta koden för programmet på sidan

  1. Vilka variabler finns i programmet?
  2. Vilka värden kan heltalen anta?
  3. Vad är syftet och vad händer med variablerna som finns i programmet?
  4. Vilka är programmets huvuddelar och vad händer i respektive del?
  5. Vad är syftet med programmet?
  6. 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")