Øving 2 – Oppgave 3
a)
Gjett tallet! Programmet under er et program som lagrer et hemmelig tall mellom 1-100 i en variabel og spør brukeren om å gjette tallet. Det som mangler i programmet er betingelsen(e) for å gi beskjed om tallet som ble gjettet var for høyt eller for lavt. Hvis brukeren gjetter feil skal han/hun få beskjed om å prøve på nytt. Skriv den manglende koden slik at programmet fungerer.
Program:
import random hemmeligTall = random.randint(0,100) # Hent et tilfeldig tall gjettet = 0 # Initier variabelen for gjettet tall antGjett = 0 # Initier counter for antall forsøk while gjettet != hemmeligTall: gjettet = int(input('Gjett det hemmelige tallet (1-100): ')) # Ta inn et gjett fra bruker antGjett += 1 # Øk antall forsøk med 1 for hver runde ### Skriv din kode under denne linjen ### ### Skriv din kode over denne linjen ### print('Du gjettet riktig! Det hemmelige tallet var', hemmeligTall, '. Du brukte', antGjett, 'forsøk.')
Løsningsforslag:
## Oppgave 3a svar import random hemmeligTall = random.randint(0,100) # Hent et tilfeldig tall gjettet = 0 # Initier variabelen for gjettet tall antGjett = 0 # Initier counter for antall forsøk while gjettet != hemmeligTall: gjettet = int(input('Gjett det hemmelige tallet (1-100): ')) # Ta inn en gjetting fra bruker antGjett += 1 # Øk antall forsøk med 1 for hver runde ### Skriv din kode under denne linjen ### if gjettet < hemmeligTall: print('Tallet du gjettet var for lavt! Prøv igjen...') elif gjettet > hemmeligTall: print('Tallet du gjettet var for høyt! Prøv igjen...') ### Skriv din kode over denne linjen ### print('Du gjettet riktig! Det hemmelige tallet var', hemmeligTall, '. Du brukte', antGjett, 'forsøk.')
b)
Nedenfor følger en kodesnutt hvor brukeren bes om å gi to tall innenfor et lovlig verdiområde, som forklart av ledeteksten – altså mellom 40-50 eller mellom 70-90. Om ikke begge tallene har fått lovlig verdi, skal koden i else-blokken utføres.
Dessverre er det feil i koden som gjør at den ikke fungerer slik den skal. Din oppgave er å rette opp i disse feilene.
Program:
print("Gi a og b, begge heltall i intervall <40,50> eller <70,90>:" ) a = int(input("Verdi for a: ")) b = int(input("Verdi for b: ")) if (a > 70 and a << 90) or (a > 40 and not a >= 50) and ( 70 < b < 90 or (b > 40 and b < 50)): print("Tallene er begge innenfor gyldige intervall.") else: print("Minst ett av tallene er utenfor et gyldig intervall.")
Løsningsforslag:
## Oppgave 3b svar print("Gi a og b, begge heltall i intervall <40,50> eller <70,90>:" ) a = int(input("Verdi for a: ")) b = int(input("Verdi for b: ")) #and (40 > b < 50 or (b > 70 and b < 90)) if ((a > 40 and a < 50) or (a > 70 and a < 90)) and ((b > 40 and b < 50) or (b > 70 and b < 90)): print("Tallene er begge innenfor gyldige intervall.") else: print("Minst ett av tallene er utenfor et gyldig intervall.")
c)
Hva blir printet til konsoll av programmet under hvis x = -5 ? Her er det meningen at du ikke skal kjøre koden for å se resultatet, men finne ut av oppgaven ved å se gjennom koden.
if -4 <= x or x >= 2:
print(x**3)
elif x == (5-10):
print(x+x)
elif 25/x < 4 and x >=0:
print(x+5)
elif x <= 25/7 or x == 0:
print(x)
else:
print(x-5)
Løsningsforslag
Oppgave 3c svar
x = -10, siden x == 5-10 er sann.