Positive heltall og brøk
- utvikle og bruke ulike strategiar for rekning med positive tal og brøk og forklare tenkjemåtane sine
- formulere og løyse problem frå eigen kvardag som har med brøk å gjere
Oppgave 1:
Lag et program der du har en :
- variabel a for et positivt heltall
- Variabel b for en brøk
Finn summen (+), differansen (-), produktet (*) og kvotienten (/) av a og b
Tips:
from fractions import Fraction
a = 2
b = Fraction(1,2)
from fractions import Fraction # a er en variabel for et positivet heltall # b er en variabel for en brøk a = 2 b = Fraction(1,2) print(a + b) print(a - b) print(a * b) print(a / b)
Lag en regel for hvordan man regner med et heltall og en brøk.
Prøv deg med følgende stykker og sjekk svaret i Python etterpå:
- 3 +
- 5 –
- 3
- : 2
- 2 :
Oppgave 2.
Lag et Python-program som gir deg tilfeldige brøker med teller mellom 1-10, og en nevner som hele tiden er større enn telleren.
La programmet skrive ut de tilfeldige brøkene.
Gjør brøkene om til desimaltall.
Tips:
from fractions import Fraction
from random import randint
t = randint(1,10)
n = t + (randint(1,10))
from fractions import Fraction from random import randint # t = teller # n = nevner t = randint(1,10) n = t + (randint(1,10)) print(Fraction(t/n).limit_denominator()) print(round(t/n,2))
Kjør programmet 5 ganger og skriv ned de 5 tilfeldige brøkene og desimaltallene.
Oppgave 3.
Bjørn og Kari skal selge saft på 17. mai. De skal lage a antall liter saft og helle det over på flasker med volum: 0,5 liter, 0,25 liter, 0,33 liter, 0,2 liter.
Lag et Python-program som hjelper dem med å finne ut hvor mange flasker de trenger avhengig av antall liter saft og volum på flaskene.
from fractions import Fraction # a = antall liter saft # b = brøk for str på flasker det skal fylles på ( 0.5 liter = 1/2, # 0.25 liter = 1/4, 0.33 liter = 1/3 , 0.2 liter = 2/10) a = 5 b = Fraction(1,3) print("Antall flasker: " + str(a/b))
Bruk programmet til å finne antall flasker ved:
- 10 liter saft på 0.25 liters flasker.
- 7 liter saft på 0.2 liters flasker.
- 34 liter saft på 0.33 liters flasker
- 17 liter på 0.5 liters flasker
Oppgave 4.
Her er et program der du kan teste deg selv i å finne likeverdige brøker. Skriv koden i Python, og jobb med likeverdige brøker. (Dersom det er vanskelig så kan du kopiere koden.)
Prøv å forstå hva koden gjør:
from fractions import Fraction from random import randint,random import random print("Prøv å lage likeverdige brøker. Du kan multiplisere og dividere teller og nevner med samme faktor: ") while True: teller = randint(1,10) if (teller % 2) == 0: nevner = randint(1,10)*2 else: o = [3,5,7,9] nevner = teller * random.choice(o) print(str(teller) + "/" + str(nevner)) fasit = (Fraction(teller,nevner)) t = int(input("teller: ")) n = int(input("nevner: ")) svar = (Fraction(t,n)) print("Fasit er: " + str(fasit)) if svar == fasit: print("Bra, du fant en likeverdig brøk, sjekk fasit om du kunne forkortet mer. ") else: print("Feil, du fant ikke en likeverdig brøk, se på fasit og prøv å se feilen.")
Kjør programmet 10 ganger og se hvor mange likeverdige brøker du klarer å finne.
Oppgave 5.
Vi skal lage et program som skriver ut et antall tilfeldige heltall mellom 1-100 og legger tallene inn i en liste.
Da må vi kunne:
- Opprette tomme lister.
- Importere bibliotek i koden.
- Lage en løkke som genererer tilfeldige tall.
- Legge tallene inn i lista.
- Skrive ut lista til skjerm.
import random liste = [] for i in range(5): tall = random.randint(1,100) liste.append(tall) print(liste)
a)
Skriv koden og kjør programmet flere ganger. Lager den lister med nye tilfeldige tall?
b)
Hvor mange tall er det i lista og hvorfor? Kan du endre slik at det kommer 8 tall i lista?
c)
Kan du endre slik at programmet skriver ut 6 tilfeldige tall mellom 10 og 200?
Vi ønsker å få programmet til å ordne tallene i sortert rekkefølge, fra minst til størst og fra størst til minst.
Da må vi kunne:
- Sortere lister fra minst til størst og fra størst til minst.
liste.sort() liste.sort(reverse = True)
d)
Prøv å få disse linjene inn i koden din på riktig plass.
Forslag til kode:
import random liste = [] for i in range(5): tall = random.randint(1,100) liste.append(tall) print(liste) liste.sort() print(liste) liste.sort(reverse = True) print(liste)
e)
Hva blir forskjell på disse to utskriftene?
liste.sort() liste.sort(reverse = True) print(liste)
liste.sort() print(liste) liste.sort(reverse = True) print(liste)
f)
Vi ønsker å lage en kode der elevene kan prøve å plassere tallene i stigende og synkende rekkefølge før det kommer en fasit.
Dette kan gjøre på mange måter. Her er to forslag.
Alternativ 1:
- Vi importerer biblioteket time
- Vi legger inn en pause: time.sleep() i koden.
import random import time liste = [] for i in range(5): tall = random.randint(1,100) liste.append(tall) print(liste) time.sleep(2) liste.sort() print(liste) time.sleep(2) liste.sort(reverse = True) print(liste)
Hvor lang pause er det før fasiten kommer?
Kunne linje 8 og linje 11 vært en annen plass i koden?
Alternativ 2:
- Vi legger inn en input slik at programmet venter på et tastetrykk fra brukeren før fasit skal skrives til skjerm.
import random liste = [] for i in range(5): tall = random.randint(1,100) liste.append(tall) print(liste) fasit = input("Tast enter: ") liste.sort() print(liste) liste.sort(reverse = True) print(liste)
Kan vi få koden til å fungere slik at brukeren må trykke på feks «f» for at fasiten skal vises?