Skip to content
Snippets Groups Projects
Commit 9e122987 authored by Geir Ola Lillestøl Tvinnereim's avatar Geir Ola Lillestøl Tvinnereim
Browse files

Feil mappestruktur

parent a29735e9
No related branches found
No related tags found
No related merge requests found
Showing
with 0 additions and 1038 deletions
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
antallCookies = int(input("Hvor mange cookies ønsker du å bake? "))
gramSukker = antallCookies/48 * 400
gramSmør = antallCookies/48 * 320
gramSjokolade = antallCookies/48 * 500
egg = antallCookies/48 * 2
hvetemel = antallCookies/48 * 460
print("Antall Cookies:", antallCookies, " \nsukker(g):", gramSukker,
"\nsmør(g):", gramSmør, "\nsjokolade(g):", gramSjokolade, "\negg:", egg,
"\nhvetemel(g):", hvetemel)
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
cookies1=int(input("Hvor mange cookies vil du lage? "))
cookies2=int(input("og hvor mange cookies vil du lage nå? "))
cookies3=int(input("og hvor mange cookies vil du lage til slutt? "))
sukker1=cookies1/48*400
sukker2=cookies2/48*400
sukker3=cookies3/48*400
sjokolade1=cookies1/48*500
sjokolade2=cookies2/48*500
sjokolade3=cookies3/48*500
print("Antall cookies: \tsukker(g) \tsjokolade(g)" )
print(str(cookies1).ljust(17), str(sukker1).rjust(15), str(sjokolade1).rjust(17))
print(str(cookies2).ljust(17), str(sukker2).rjust(15), str(sjokolade2).rjust(17))
print(str(cookies3).ljust(17), str(sukker3).rjust(15), str(sjokolade3).rjust(17))
```
%% Cell type:markdown id: tags:
a) og b)
%% Cell type:code id: tags:
``` python
r = 5
print("Vi har en sirkel med radius", r)
omkrets = 2 * 3.14 * r
print("Omkretsen er", omkrets)
#b) print("Omkretsen er", format(omkrets, '.2f'))
areal = 3.14 * r**2
print("Arealet er", areal)
h = 8
volum = areal * h
print("Sylinder med høyde", h, ": Volumet er, volum")
```
%% Output
Vi har en sirkel med radius 5
Omkretsen er 31.400000000000002
Arealet er 78.5
Sylinder med høyde 8 : Volumet er, volum
%% Cell type:markdown id: tags:
c) Det skyldes at flyttall ikke lagres nøyaktig i Python.
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
print(input("Navn? "), "- fint navn!")
print(input("Favorittfag? "), "- interessant!")
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
navn = input("Navn? ")
print("Hei,", navn)
fag = input("Favorittfag? ")
print(fag, "- interessant!")
print("Ha en fin dag,", navn)
print("- og lykke til med", fag)
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
import math
r = 5.4
h = 7.9
print("Har en sirkel med radius", r, "som er grunnflate i en sylinder med høyde", h)
omkrets = math.tau * r
print("Omkrets av sirkelen:", omkrets) #tau er det samme som 2 pi
areal_sirkel = math.pi * r**2
print("Areal av sirkelen:", areal_sirkel)
areal_sylinder = omkrets * h + 2 * areal_sirkel
print("Areal av sylinderen:", areal_sylinder)
```
%% Cell type:markdown id: tags:
d)
%% Cell type:code id: tags:
``` python
fornavn = "Per"
ideal_alder = 42
kundensAlder = 37
differanse = ideal_alder - kundensAlder
print(fornavn, "er", differanse, "år unna idealalderen")
```
%% Cell type:markdown id: tags:
a)
Denne løsningen klarer seg med det som er pensum som er undervist før øvingen, men har en liten skjønnhetsfeil (det kommer .0 bak tall som skal være heltall)
%% Cell type:code id: tags:
``` python
tall = float(input("Tallet som skal avrundes: "))
d = int(input("Ønsket antall desimaler: "))
faktor = 10 ** d
resultat = int(tall * faktor + 0.5) / faktor
print("Avrundet til", d, "desimaler:", resultat)
```
%% Cell type:markdown id: tags:
For å få vekk skjønnhetsfeilen er det mest hensiktsmessig å bruke en if-setning:
%% Cell type:code id: tags:
``` python
tall = float(input("Tallet som skal avrundes: "))
d = int(input("Ønsket antall desimaler: "))
resultat = int(tall + 0.5)
faktor = 10 ** d
resultat = int(tall * faktor + 0.5) / faktor
if d <= 0: # skal ende med et heltall
resultat = int(resultat)
print("Avrundet til", d, "desimaler:", resultat)
```
%% Cell type:markdown id: tags:
b) Ideen her er å sette sammen heltallsdel og desimaldel til ett heltall og gjøre avrundingen på det (siden heltall alltid lar seg representere eksakt), da kan vi bruke round() med negativt antall desimaler for å kvitte oss med passende mange desimaler. Hvor mange kan regnes ut som differansen mellom antall desimaler vi har (lengden av desimalstrengen) og antallet vi ønsker. De overflødige desimalene kuttes vekk med heltallsdivisjon og til slutt må punktumet settes tilbake på rett plass (ved hjelp av heltallsdivisjon og modulo).
%% Cell type:code id: tags:
``` python
hel = input("Oppgi heltallsdelen av tallet (det foran punktum): ")
des = input("Oppgi desimaldelen av tallet (det bak punktum): ")
inn_des = len(des) #lengden av strengen, dvs antall desimaler nå
tall = int(hel + des)
ant = int(input("Oppgi ønsket antall desimaler i avrunding: "))
kuttes = max(inn_des - ant, 0) #hvor mange desimaler skal kuttes
avr = round(tall, -kuttes)
# bruker heltallsdivisjon for å finne sifrene som er heltallet
nytt_heltall = avr // 10 ** inn_des
hel_ut = str(nytt_heltall)
# bruker modulo for å finne sifrene som er desimaler
# og deretter heltallsdivisjon for å kutte desimaler som skal bort
nytt_destall = (avr % 10**inn_des) // 10**kuttes
# setter sammen tallet, "." tilbake på riktig plass
# bool(ant) blir False hvis ant er 0, da tom streng for desimaldel
tall_ut = str(nytt_heltall) + ("." + str(nytt_destall)) * bool(ant)
d = "desimal" + "er" * bool(ant-1)
print(hel + "." + des, "avrundet til", ant, d, "blir", tall_ut)
```
%% Cell type:markdown id: tags:
c) Denne kan løses på mange måter. En mulighet er å bruke for-løkke og if-setning som vist under.
%% Cell type:code id: tags:
``` python
navn= input("Jeg heter: ")
sist = len(navn)
start = sist
for i in range(len(navn)):
if navn[i]==" ":
start = i + 1
print("The name is", navn[start:sist]+", " + navn)
```
%% Cell type:markdown id: tags:
En annen mulighet er å bruke strengmetoden split():
%% Cell type:code id: tags:
``` python
navn = input("Jeg heter: ")
liste = navn.split()
print("The name is", liste[-1] + ",", navn)
```
%% Cell type:markdown id: tags:
Forklaring av denne løsningen: Linje 2, split() gir en oppdeling av tekststrengen der det er mellomrom, med navn "Grace Murray Hopper" vil vi få liste med ordene "Grace", "Murray", "Hopper".
Linje 3: liste[-1] vil være bakerste element i variabelen liste, altså "Hopper" med eksemplet gitt ovenfor.
Begge de ovenstående løsningene vil imidlertid få problemer med navn med påheng som Jr, Sr, d.y., III osv., såvel som med navn med preposisjoner som Von, De, ... Hvis man skal ta høyde for dette, blir løsningen noe mer innfløkt, nedenfor en mulighet som en videreutvikling av løsningen med split() ovenfor.
Det fins selvsagt flere mulige elementer man kunne ha lagt til både i PREP og EXT. Løsningen tar ikke høyde for at noen kan ha flere tillegg bak navnet (f.eks. både Jr og III i samme navn), eller navn hvor det fins flere enn ett mellomord som skal være del av etternavnet (f.eks. Alan van der Aalst).
Dette kunne f.eks. ha vært taklet ved å kjøre både sjekken vs. EXT og sjekken vs. PREP i while-løkker heller enn som engangstester, koden ville da ha blitt noe mer komplisert enn den er nå.
%% Cell type:code id: tags:
``` python
PREP = {"De", "de", "Di", "di", "von", "Von", "van", "Van", "St", "Saint"}
EXT = {"Jr", "jr", "Sr", "sr", "d.e.", "d.y.",
"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX"}
navn = input("Jeg heter: ")
liste = navn.split() # får ei liste med alle delnavn i navnet
if liste[-1] in EXT: #bakerste ord er ikke et navn
i_enavn = -2 # etternavnet da nest bakerst i lista
else:
i_enavn = -1 # etternavnet er bakerst i lista
etternavn = liste[i_enavn]
if len(liste) > abs(i_enavn - 1): # det fins mellomnavn
mellom = liste[i_enavn - 1] # mellomnavnet er like foran etternavn
if mellom in PREP: # mellomnavn skal inngå i etternavnet
etternavn = mellom + " " + etternavn # putter mellomnavn foran
print("The name is", etternavn + ",", navn)
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
print("Jeg elsker ITGK!")
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
print('Norge')
print()
print('Areal (kv.km):', 385180)
print('Folketall (mill.):', 5.3)
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
print('"Jeg elsker ITGK!" ropte studenten da 1c funket.')
#tatt enkle fnutter rundt strengen slik at de doble fnuttene printes ut
```
%% Cell type:markdown id: tags:
d)
%% Cell type:code id: tags:
``` python
print("Noen barn sto og hang ved lekeplassen.")
print("Diskusjonstemaet deres var noe uventet.")
print('''- Hvorfor heter'e "Python"?''')
print("- Var'e slanger som laget det? - Nei, Guido van Rossum.")
print('- Likte slanger kanskje da? - Nei, digga "Monty Python".')
print("- Hva er det? Et fjell?")
print("- Nei, engelsk komigruppe. Begynte i '69."
print("- Wow! Var'e fremdeles dinosaurer da?")
# alternativt kan oppgaven løses med en enkelt print-setning,
# med triple fnutter rundt hele den 8-linjers teksten
```
%% Cell type:markdown id: tags:
e)
%% Cell type:code id: tags:
``` python
# i oppgave b tok jeg enkle fnutter rundt strengen slik at de doble fnuttene kunne printes ut
# i oppgave c tok jeg tre enkle/doble fnutter rundt strengen ettersom strengen inneholdt både en enkel fnutt og doble fnutter
#print('Hei")
```
%% Cell type:markdown id: tags:
f)
%% Cell type:code id: tags:
``` python
print("Heihei, jeg vil visst ikke kompilere jeg :(") #evt. med enkle fnutter rundt hele strengen.
print('Halla, så "bra" du ser ut i dag') #dersom det skal være doble fnutter rundt bra, må det være enkle fnutter rundt strengen.
print("Hei på deg") #sette på fnutter rundt strengen.
print("Er ikke dette gøy?") #sette på parentes på starten.
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
print('1+2(−3) =', 1+2*(-3))
print('[(3+5·2) +1]:2 =', ((3+5*2)+1)/2)
print('-3^2 + 5*3 - 7 =', -3**2+5*3-7)
#1)
print('5:2-4 =', 5/2 -4)
#2)
print('5·12+6-1 =', 5*12 + 6 - 1)
#3)
print('3(5+2) =', 3*(5+2))
#4)
print('4[(5+3):2 +7] =', 4*((5+3)/2+7))
#5)
print('(−4)^(-3)+5·(3−7:2) =', (-4)**(-3)+5*(3-7/2))
```
%% Output
1+2(−3) = -5
[(3+5·2) +1]:2 = 7.0
-3^2 + 5*3 - 7 = -1
5:2-4 = -1.5
5·12+6-1 = 65
3(5+2) = 21
4[(5+3):2 +7] = 44.0
(−4)^(-3)+5·(3−7:2) = -2.515625
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
print(355, "minutt blir", 355 // 60, "timer og", 355 % 60, "minutt.")
print(403, "sekund blir", 403 // 60, "minutt og", 403 % 60, "sekund.")
print(67, "dager blir", 67 // 7, "uker og", 67 % 7, "dager.")
print(100, "timer blir", 100 // 24, "døgn og", 100 % 24, "timer.")
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
import math
# importerer fra math-biblioteket
print("|-8|, dvs. absoluttverdien til -8, er", abs(-8))
print(2.544, "avrundet til helt tall er", round(2.544))
print("Funksjonen int() derimot bare kutter vekk desimalene:", int(2.544) )
print(2.544, "avrundet til to desimaler er", round(2.544, 2))
print("Kvadratroten til", 10, "er", math.sqrt(10) )
print("En sirkel med radius 7 har omkrets", math.tau * 7)
print("En sirkel med radius 7 har areal", math.pi * 7**2)
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
pizza = 750
Studentrabatt = 0.20
Tips = 0.08
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
totalt = pizza*(1-Studentrabatt)*(1+Tips)
print("Total pris:",totalt)
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
antall = int(input("Hvor mange deltok på middagen? "))
prisPerPers = totalt/antall
print("Ettersom dere var",antall, "personer, så må hver person betale",
prisPerPers, "kroner.")
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
flyt1 = float(input("Skriv inn et flyttall: "))
flyt2 = float(input("Skriv inn enda et flyttall: "))
flyt3 = float(input("Skriv inn et siste flyttall: "))
print("Konvertert til heltall blir det", int(flyt1),int(flyt2),int(flyt3))
int1 = int(input("Skriv inn et heltall: "))
print("Konvertert til flyttall blir det:",float(int1))
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
navn = input("Skriv ditt navn: ")
alder = int(input("Hei, " + navn + ", hvor gammel er du? "))
alderProgStart = int(input("Hvor gammel var du da du startet å programmere? "))
progTid = alder - alderProgStart
print("Da har du programmert i", progTid, "år.")
svar = input("Syns du de " + str(progTid) + " årene har vært givende?" )
print("Takk for svar," , navn)
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
print("Vennligst gi inn et flyttall med minst 5 siffer både før og etter .")
tall = float(input("Hva er tallet ditt? ")
heltall = int(tall)
print("Konvertert til heltall med int():", heltall)
print("Avrundet til nærmeste heltall:", round(tall))
print("Avrundet til to desimaler:", round(tall, 2))
print("Avrundet til fire desimaler:", round(tall, 4))
print("Avrundet til nærmeste tusen:", round(tall, -3))
print("Heltall fra int() konvertert tilbake til flyttall:", float(heltall))
```
%% Cell type:markdown id: tags:
d)
%% Cell type:code id: tags:
``` python
flyttall = float(input("Skriv et flyttall: "))
antallDesimaler = int(input("Hvor mange deismaler er ønskelig? "))
print("Tallet du skrev var",flyttall, "og med",antallDesimaler,
"desimaler blir det til", round(flyttall, antallDesimaler))
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
import math
h = 3
a = 3/math.sqrt(6)*h
areal = math.sqrt(3)*pow(a,2)
print("Et tetraeder med høyde",h,"har areal",areal)
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
import math
h = 3
a = 3/math.sqrt(6)*h
volum = 1/12*math.sqrt(2)*pow(a,3)
print("Et tetraeder med høyde",h,"har volum",volum)
```
%% Cell type:markdown id: tags:
c)
%% Cell type:code id: tags:
``` python
import math
h = float(input("Skriv inn en høyde: "))
a = 3/math.sqrt(6)*h
areal = math.sqrt(3)*pow(a,2)
volum = 1/12*math.sqrt(2)*pow(a,3)
print("Et tetraheder med høyde",h,"har volum",round(volum,2),"og areal",round(areal,2),".")
```
%% Cell type:markdown id: tags:
a)
%% Cell type:code id: tags:
``` python
stoff = input("Si et stoff du er i besittelse av: ")
molvekt = float(input("Hva er molvekt i gram for "+stoff+"? "))
gram = float(input("Hvor mange gram har du? "))
mol = gram/molvekt
antall = mol*6.022e+23
print("Du har", format(antall, '.1e'), "molekyler "+stoff)
```
%% Cell type:markdown id: tags:
b)
%% Cell type:code id: tags:
``` python
antallHørt = int(input("Antall ulike 10-toners melodilinjer du har hørt? "))
prosent = antallHørt/8.25e+19*100
print("Du har hørt", format(prosent, '.15e'), "av melodier som er mulig")
```
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment