Finner du feil eller har forbedringsforslag? Send en e-post til knut @ skrindo no.
print("Hello, World!")
print(3+4**2-3/(2**4+1))
Svar: 18.823529411764707
print(43.2/11)
Svar: 3.9272727272727277
print(50//6)
print(50%6)
print(167335%3 == 0)
Svar: Nei.
print(64%2 == 0)
print(115469%24)
Klokka er fem om morgenen.
a = 5
a = a + 4
a = a + 6
a = a + 5
print(a)
a = 2
b = 3
c = a
a = b
b = c
v_0 = 5
a = 9.81
t = 4
uttrykk = v_0*t + (1/2)*a*t**2
tall = 56
print(f'Verdien av variabelen tall er {tall}.')
a = 11/7
print(f"{a:.2f}")
a = 1000
b = a//23
svar = b*23
print(svar)
l = 3
b = 4
h = 5
overflate = 2*l*b + 2*l*h + 2*b*h
volum = l*b*h
print(f"Overflaten er {overflate}.")
print(f"Volume er {volum}.")
fornavn = input("Skriv inn fornavnet ditt: ")
etternavn = input("Skriv inn etternavnet ditt: ")
print(f"Hei, {fornavn} {etternavn}!")
tall = float(input("Skriv inn et tall: "))
print(f"Du tastet inn tallet {tall}.")
tall = float(input("Skriv inn et tall: "))
halvparten = tall/2
print(f"Halvparten av {tall} er {halvparten}.")
tall = int(input("Skriv inn et tall: "))
antall = (tall//5)
print(f"Tallet {tall} er minst {antall} ganger så stort som 5.")
tall = int(input("Skriv inn et tall: "))
if tall > 0:
print(f"Tallet {tall} er positivt.")
elif tall < 0:
print(f"Tallet {tall} er negativt.")
else:
print(f"Tallet {tall} er null.")
tall1 = int(input("Skriv inn et tall: "))
tall2 = int(input("Skriv inn et tall til: "))
if tall1 == tall2:
print(f"Tallene {tall1} og {tall2} er like.")
else:
print(f"Tallene {tall1} og {tall2} er ikke like.")
tall = int(input("Skriv inn et tall: "))
if tall%2==0:
print(f"Tallet {tall} er et partall.")
else:
print(f"Tallet {tall} er et oddetall.")
tall1 = float(input("Skriv inn et tall: "))
tall2 = float(input("Skriv inn et tall: "))
if tall1*tall2 > 0:
print(f"Tallene {tall1} og {tall2} har samme fortegn.")
elif tall1*tall2 < 0:
print(f"Tallene {tall1} og {tall2} har ulikt fortegn.")
else:
print(f"Et av tallene {tall1} eller {tall2} er null.")
xstart = -10
xslutt = 10
xsteg = .1
x = xstart
while x <= xslutt:
y = -x**2 + 7*x - 12
print(f'{x} {y}')
x += xsteg
a = 5
tall = a
teller = 0
while teller < 10:
print(tall)
tall += 5
teller += 1
a = 4
while a <= 1000:
print(a)
a = 2*a + 1
start = 7
slutt = 15
svar = 0
temp = start
while slutt - temp > 0:
svar += 1
temp += 1
print(f"{slutt}-{start} = {svar}")
start = 1
slutt = 128
svar = 0
temp = start
while temp != slutt:
svar += 1
temp *= 2
print(f"Løsningen er {svar}.")
fortsett = True
while fortsett:
print("Hei, hei! :)")
svar = input("Vil du fortsette? Svar «ja» eller «nei»: ")
if svar == "nei":
fortsett = False
a = 6
for i in range(1, 11):
print(a*i)
for i in range(1, 100, 2):
print(i)
a_n = 3
k = 2
for i in range(100):
print(a_n)
a_n = a_n * k
for i in range(4):
print('x'*(2*i + 1))
def f(x):
return 3*x**2 + 3
print(f(0))
print(f(-3))
print(f(5))
def f(x):
return x**2 - 7*x + 1
xstart = -5
xslutt = 5
xsteg = .1
x = xstart
y = f(x)
while x <= xslutt:
print(f'{x:.3f} {y:.3f}')
x += xsteg
y = f(x)
def multiplikasjon(n,m):
return n*m
def addisjon(n, m):
print(f"{n} + {m} = {n+m}")
liste = [0,1,2,3,4,5,6,7,8,9]
eller
liste = list(range(10))
liste = []
liste.append("Niels")
liste.append("Henrik")
liste.append("Caspar")
liste = []
liste.append('brøk')
liste.append('likninger')
liste.append('mengdelære')
print(len(liste))
matematikere = ['Abel', 'Bernoulli', 'Cauchy', 'Descartes', 'Euler', 'Fibonacci',\
'Gauss', 'Hilbert', 'ibn Musa al-Khwarizmî', 'Jacobi']
tredje = matematikere[2]
fjerde = matematikere[3]
femte = matematikere[4]
print(tredje, fjerde, femte)
liste = [1, 4, 9, 16, 25, 36]
produkt = 1
for x in liste:
produkt *= x
print(produkt)
liste = []
ønsket_lengde = int(input("Skriv inn et heltall: "))
print(f"Legger inn {ønsket_lengde} 1-tall i en liste.")
while len(liste) < ønsket_lengde:
liste.append(1)
print(liste)
def f(x):
return x**2 + 3*x - 1
xverdier = []
yverdier = []
fortsett = True
while fortsett:
svar = input('Skriv inn x-verdi. (Avslutt med "q".) ')
if svar.lower() == 'q':
fortsett = False
else:
x = float(svar)
xverdier.append(x)
for x in xverdier:
yverdier.append(f(x))
print('x\t f(x)')
for i in range(len(xverdier)):
print(f'{xverdier[i]:7} {yverdier[i]:7}')
partall = []
for i in range(0,101,2):
partall.append(i)
eller
partall = list(range(0,101,2))
def gjennomsnitt(a, b):
return (a + b)/2
for i in range(2,10,2):
print(gjennomsnitt(i, i+1))
def f(x):
return x**2 + 2*x + 3
xstart = float(input('Skriv inn nedre grense for x: '))
xslutt = float(input('Skriv inn øvre grense for x: '))
xsteg = float(input('Skriv inn steglengden: '))
x = xstart
y = f(x)
while x <= xslutt:
print(f'{x:.3f} {y:.3f}')
x += xsteg
y = f(x)
tall = int(input("Skriv inn et tall: "))
summen = 0
for i in range(tall + 1):
summen += i
print(summen)
tall = int(input("Skriv inn et oddetall: "))
if tall%2 != 1:
print("Tallet er ikke et oddetall!")
else:
summen = 0
for i in range(1, tall + 1, 2):
summen += i
print(summen)
tall = int(input("Skriv inn et heltall: "))
for i in range(1, tall):
if i%6 == 0:
print(i)
eller
tall = int(input("Skriv inn et heltall: "))
for i in range(6, tall, 6):
print(i)
def x_n(x,n):
potens = 1
for i in range(n):
potens *= x
return potens
tall = int(input("Skriv inn et tall: "))
temptall = tall
teller = 0
while temptall > 1:
teller += 1
temptall /= 10
print(f"Tallet {tall} har {teller} sifre.")
eller
tall = input("Skriv inn et tall: ")
print(f"Tallet {tall} har {len(tall)} sifre.")
a_i = 1
a_j = 1
print(a_i)
print(a_j)
for i in range(2, 100):
a_k = a_i + a_j
print(a_k)
a_i = a_j
a_j = a_k
for i in range(4):
print(' ' * (4 - (i+1)),'x' * (2*i+1))
primtall = [2]
for i in range(3,100,2):
iPrimisk = True
for j in primtall:
if i % j == 0:
iPrimisk = False
if iPrimisk:
primtall.append(i)
tall = int(input("Skriv inn et heltall: "))
primtallsfaktorer = [1]
for i in range(2,tall):
if tall%i == 0:
iPrimtallsfaktor = True
for j in primtallsfaktorer[1:]:
if i%j == 0:
iPrimtallsfaktor = False
if iPrimtallsfaktor:
primtallsfaktorer.append(i)
if primtallsfaktorer == [1]:
print(f"Tallet {tall} er et primtall.")
else:
print(f"Største primtallsfaktor i {tall} er {max(primtallsfaktorer[1:])}.")
n = int(input("Skriv inn et heltall: "))
objekt = n
funnet = False
while not funnet:
objekt += 1
divisorer = [1]
for i in range(2, objekt):
if objekt%i == 0:
divisorer.append(i)
if sum(divisorer) == objekt:
funnet = True
print(f"Neste perfekte tall etter {n} er {objekt}.")
import math
print(math.pi)
print(math.e)
import random
print(random.randint(1,6))
print(random.random())
randint(1,6) trekker ut et tilfeldig heltall blant \(\{1, 2, \ldots , 6\}\), altså som å kaste terning.
random() trekker ut et tilfeldig tall mellom 0 og 1
import numpy as np
x_verdier = np.arange(0,10,.1)
def f(x):
return x**2 + 3*x + 1
for x in x_verdier:
print(f"{x:.2f}\t{f(x):.2f}")
import math
print("Løsning av andregradslikningen ax**2 + bx +c = 0.")
a = float(input("Skriv inn koeffisienten a: "))
b = float(input("Skriv inn koeffisienten b: "))
c = float(input("Skriv inn koeffisienten c: "))
d = b**2 - 4*a*c
if d < 0:
print("Likningen har ingen løsning.")
elif d == 0:
print(f"Likningen har løsning x = {-b/(2*a):.3f}")
else:
x_1 = (-b + math.sqrt(d))/(2*a)
x_2 = (-b - math.sqrt(d))/(2*a)
print(f"Løsningen av likningen er x = {x_1:.3f} eller x = {x_2:.3f}.")
Det er mange måter å skrive dette programmet på. Her kommer én mulig variant.
import random
fortsett = True
poeng_maskin = 0
poeng_bruker = 0
while fortsett:
maskin = random.randint(1,3) #1=stein, 2=saks, 3=papir
bruker = input("Skriv inn st(ein), sa(ks) eller p(apir): ")
if maskin == 1:
maskinvalg="stein"
elif maskin ==2:
maskinvalg="saks"
else:
maskinvalg="papir"
#
if bruker == "st":
brukervalg="stein"
elif bruker =="sa":
brukervalg="saks"
elif bruker == "p":
brukervalg="papir"
else:
print("Feil! Du skulle tastet inn st, sa eller p.")
print(f"\nDu valgte {brukervalg}.")
print(f"Maskinen valgte {maskinvalg}.")
if (bruker == 'st' and maskin==1):
print("Uavgjort!")
elif (bruker == 'st' and maskin==2):
poeng_bruker += 1
print("Du vinner.")
elif (bruker == 'st' and maskin==3):
poeng_maskin += 1
print("Maskinen vinner.")
elif (bruker == 'sa' and maskin==2):
print("Uavgjort!")
elif (bruker == 'sa' and maskin==3):
poeng_bruker += 1
print("Du vinner.")
elif (bruker == 'sa' and maskin==1):
poeng_maskin += 1
print("Maskinen vinner.")
elif (bruker == 'p' and maskin==3):
print("Uavgjort!")
elif (bruker == 'p' and maskin==1):
poeng_bruker += 1
print("Du vinner.")
elif (bruker == 'p' and maskin==2):
poeng_maskin += 1
print("Maskinen vinner.")
else:
print("Noe galt skjedde.")
print("")
svar = input("Vil du spille igjen? (j/n) ")
if svar.lower() != "j":
print("Da slutter vi. :-)")
fortsett = False
if poeng_bruker > poeng_maskin:
print(f"Du vant! Stillingen ble {poeng_bruker} – {poeng_maskin} til deg.")
elif poeng_bruker < poeng_maskin:
print(f"Maskinen vant. Stillingen ble {poeng_maskin} – {poeng_bruker} til maskinen.")
else:
print("Det ble uavgjort!")
import matplotlib.pyplot as plt
plt.plot([0, 5, 10, 15],[30, 43, 55, 60],'o')
plt.show()
import matplotlib.pyplot as plt
def f(x):
return x**2 + 3*x - 4
xstart = -5
xslutt = 5
xsteg = .01
xverdier = []
yverdier = []
x = xstart
y = f(x)
while x <= xslutt:
xverdier.append(x)
yverdier.append(y)
x += xsteg
y = f(x)
plt.plot(xverdier, yverdier)
plt.show()
Alternativ kode med numpy:
import matplotlib.pyplot as plt
import numpy as np
xstart = -5
xslutt = 5
trinn = 0.01
def f(x):
return x**2 + 3*x - 4
x = np.arange(xstart, xslutt, trinn)
y = f(x)
plt.plot(x, y)
plt.show()
def f(x):
return 3*x - 4 - (3/2)*x + 7
nedregrense = -10
øvregrense = 10
presisjon = .01
a = nedregrense
b = øvregrense
m = (a + b)/2
feil = False
while b - a > presisjon:
if f(a) * f(m) < 0:
b = m
elif f(b) * f(m) < 0:
a = m
elif f(m) == 0:
break
else:
feil = True
break
m = (a + b)/2
if feil:
print(f"f({a}) og f({b}) er på samme side av x-aksen.")
print(f"Jeg finner ingen løsning.")
else:
print(f"Funksjonen har et nullpunkt i x = {m:.3f}.")
Vi bruker \(f(x)=x^2+3x-5\). Først \(x\) mellom \(-10\) og \(0\), og så mellom \(0\) og \(10\). Det gir \(x= -4{,}194\) eller \(x=1{,}196\).
Vi bruker \(f(x)=x+\sin x-4\) med \(x\) mellom \(0\) og \(10\). Det gir \(x=4{,}966\).
Vi bruker \(f(x)=x\lg x-2\) med \(x\) mellom \(1\) og \(10\). Det gir \(x=2{,}349\)
import numpy as np
def f(x):
return x+np.sin(x)-4
nedregrense = 0
øvregrense = 100
presisjon = .01
a = nedregrense
b = øvregrense
m = (a + b)/2
feil = False
antall_iterasjoner = 0
while b - a > presisjon:
if f(a) * f(m) < 0:
b = m
elif f(b) * f(m) < 0:
a = m
elif f(m) == 0:
break
else:
feil = True
break
m = (a + b)/2
antall_iterasjoner += 1
if feil:
print(f"f({a}) og f({b}) er på samme side av x-aksen.")
print(f"Jeg finner ingen løsning.")
else:
print(f"Funksjonen har et nullpunkt i x = {m:.3f}.")
print(f"Programmet brukte {antall_iterasjoner} halveringer.")
import numpy as np
def f(x):
return x+np.sin(x)-4
nedregrense = 0
øvregrense = 10
presisjon = .01
a = nedregrense
b = øvregrense
m1 = a + (b - a)/3
m2 = a + 2*(b - a)/3
feil = False
while b - a > presisjon:
if f(a) * f(m1) < 0:
b = m1
elif f(m1) * f(m2) < 0:
a = m1
b = m2
elif f(m2) * f(b) < 0:
a = m2
elif f(m1) == 0:
break
elif f(m2) == 0:
break
else:
feil = True
break
m1 = a + (b - a)/3
m2 = a + 2*(b - a)/3
if feil:
print(f"f({a}) og f({b}) er på samme side av x-aksen.")
print(f"Jeg finner ingen løsning.")
else:
print(f"Funksjonen har et nullpunkt i x = {(m1+m2)/2:.3f}.")
import random
antall_kast = 1000
antall_kron = 0
for i in range (antall_kast):
kast = random.randint(0,1)
if kast == 1:
antall_kron +=1
print(f"Det ble {antall_kron} kron og {antall_kast - antall_kron} mynt på {antall_kast} kast.")
import random
antall_kast = 100
antall_en = 0
antall_to = 0
antall_tre = 0
antall_fire = 0
antall_fem = 0
antall_seks = 0
for i in range(antall_kast):
kast = random.randint(1,6)
if kast == 1:
antall_en += 1
elif kast == 2:
antall_to += 1
elif kast == 3:
antall_tre += 1
elif kast == 4:
antall_fire += 1
elif kast == 5:
antall_fem += 1
else:
antall_seks += 1
print(f"Resultatet etter {antall_kast} kast:")
print("")
print(f"Antall enere:\t{antall_en}")
print(f"Antall toere:\t{antall_to}")
print(f"Antall treere:\t{antall_tre}")
print(f"Antall firere:\t{antall_fire}")
print(f"Antall femere:\t{antall_fem}")
print(f"Antall seksere:\t{antall_seks}")
import random
teoremer = ["Pythagoras setning", "Nullpunktssetningen", \
"Setning om vinkelhalveringslinjer", "Analysens fundamentalsetning",\
"Første logaritmesetning", "Andre logaritmesetning", \
"Tredje logaritmesetning", "Første kvadratsetning", \
"Andre kvadratsetning", "Konjugatsetningen"]
print(random.sample(teoremer, 3))
import math
def f(x):
return math.sqrt(x**2 + 3*x)
deltax = 0.01
x_0 = 3
derivert = (f(x_0 + deltax) - f(x_0))/deltax
print(derivert)
import numpy as np
import matplotlib.pyplot as plt
def f(x):
return np.sqrt(x**2 + 3*x)
def derivert(f, x, deltax):
return (f(x + deltax) - f(x))/deltax
xstart = 0.1
xslutt = 10
deltax = 0.01
x = np.arange(xstart, xslutt, .1)
y1 = f(x)
y2 = derivert(f,x,deltax)
plt.plot(x, y1)
plt.plot(x, y2)
plt.show()
import numpy as np
xstart = 1
xslutt = 3
antall_partisjoner = 10000
delta_x = (xslutt - xstart)/antall_partisjoner
def f(x):
return np.sin(x)
xverdier = np.linspace(xstart,xslutt,antall_partisjoner)
integral = 0
for x in xverdier[:-1]:
integral += f(x)*delta_x
print(f"{integral:.3f}")
Som over, men bytter ut grensene med \(0\) og \(5\) og funksjonen med «np.exp(2*x)».
Som over, men bytter ut grensene med \(-2\) og \(5\) og funksjonen med «x**2 + 3».
import numpy as np
xstart = 1
xslutt = 3
antall_partisjoner = 10000
delta_x = (xslutt - xstart)/antall_partisjoner
def f(x):
return np.sin(x)
xverdier = np.linspace(xstart,xslutt,antall_partisjoner)
integral = 0
for x in xverdier[:-1]:
integral += f(x + delta_x)*delta_x
print(f"{integral:.3f}")
import numpy as np
xstart = 1
xslutt = 3
antall_partisjoner = 10000
delta_x = (xslutt - xstart)/antall_partisjoner
def f(x):
return np.sin(x)
xverdier = np.linspace(xstart,xslutt,antall_partisjoner)
integral = 0
for x in xverdier[:-1]:
integral += f(x + delta_x/2)*delta_x
print(f"{integral:.3f}")
import numpy as np
xstart = 1
xslutt = 3
antall_partisjoner = 10000
delta_x = (xslutt - xstart)/antall_partisjoner
def f(x):
return np.sin(x)
xverdier = np.linspace(xstart,xslutt,antall_partisjoner)
integral = 0
for x in xverdier[:-1]:
integral += (f(x + delta_x) + f(x))/2*delta_x
print(f"{integral:.3f}")