Diskussion:Gissa talet: Skillnad mellan sidversioner

Från Wikiskola
Hoppa till navigering Hoppa till sök
Ingen redigeringssammanfattning
Rad 24: Rad 24:
Men sedan jämför du variabelns värde, som alltså är en 'int', med strängen "exit".
Men sedan jämför du variabelns värde, som alltså är en 'int', med strängen "exit".
Detta borde ge ett fel.
Detta borde ge ett fel.
<pre>
# 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")
</pre>

Versionen från 25 mars 2018 kl. 11.25

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")