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(50//6)
print(50%6)
print(167335%3==0)
Svar: Nei.
print(64%2 == 0)
print(115469%12)
Klokka er fem.
a = 5
a += 5
a += 5
a += 5
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.")
for i in range(1, 101,2):
print(i)
Alternativ løsning:
for i in range(0, 100):
if i%2 == 1:
print(i)
print("x\t f(x)")
print("-------------")
for x in range(0, 10):
print(f"{x}\t {x**2 + 3*x - 1}")
Litt penere utskrift:
print(" x\t f(x)")
print("-------------")
for x in range(0, 10):
print(f"{x:2}\t {x**2 + 3*x - 1:4}")
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))
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
def multiplikasjon(n,m):
return n*m
def f(x):
return 3*x**2 + 3
print(f(0))
print(f(-3))
print(f(5))
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 = []
ø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))
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.")
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
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}.")
def f(x):
return x**2 + 2*x + 3
print(f'x\t f(x)')
for x in range(10):
print(f'{x}\t {f(x)}')
def f(x):
return x**2 + 2*x + 3
nedregrense = int(input('Skriv inn nedre grense: '))
øvregrense = int(input('Skriv inn øvre grense: '))
trinnlengde = int(input('Skriv inn trinnlengde: '))
print(f'x\t f(x)')
for x in range(nedregrense, øvregrense + 1, trinnlengde):
print(f'{x}\t {f(x)}')
import numpy as np
print(np.pi)
print(np.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 numpy as np
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("Likningen har løsning x = {-b/(2*a):.3f}")
else:
x_1 = (-b + np.sqrt(d))/(2*a)
x_2 = (-b - np.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')
import matplotlib.pyplot as plt
import numpy as np
xstart = -10
xslutt = 10
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)
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 = 1000
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 numpy as np
def f(x):
return np.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)
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}")
import numpy as np
x = [0,10,31,53]
y = [0,25,52,98]
astart = .5
aslutt = 3
deltaa = .01
bestea = astart
minste_kvadratavvik = np.inf
for a in np.arange(astart,aslutt,deltaa):
kvadratavvik = 0
for i in range(len(x)):
observert_y = y[i]
utregnet_y = a * x[i]
kvadratavvik += (observert_y - utregnet_y)**2
if kvadratavvik < minste_kvadratavvik:
minste_kvadratavvik = kvadratavvik
bestea = a
print(f'Svar: y = {bestea:.2f}x')
import numpy as np
import matplotlib.pyplot as plt
x = [0,10,31,53]
y = [0,25,52,98]
astart = .5
aslutt = 2
deltaa = .1
bstart = -2
bslutt = 3
deltab = .1
bestea = astart
besteb = bstart
minste_kvadratavvik = np.inf
for a in np.arange(astart,aslutt,deltaa):
for b in np.arange(bstart,bslutt,deltab):
kvadratavvik = 0
for i in range(len(x)):
observert_y = y[i]
utregnet_y = a * x[i] + b
kvadratavvik += (observert_y - utregnet_y)**2
if kvadratavvik < minste_kvadratavvik:
minste_kvadratavvik = kvadratavvik
bestea = a
besteb = b
plt.plot(x,y,'o')
t1 = np.arange(0,x[-1],0.01)
t2 = bestea*t1 + besteb
plt.plot(t1,t2,label = f"y = {bestea:.1f}x + {besteb:.1f}")
plt.legend()
import matplotlib.pyplot as plt
import numpy as np
x_0 = 0
y_0 = 0
deltax = .01
xstart = x_0
xslutt = 10
antall_punkter = int((xslutt - xstart)/deltax) + 1
x = np.zeros(antall_punkter)
x[0] = x_0
y = np.zeros(antall_punkter)
y[0] = y_0
for i in range(len(x)-1):
x[i+1] = x[i] + deltax
y[i+1] = y[i] + deltax * (3*x[i]**2 + 1)
plt.plot(x,y)
import matplotlib.pyplot as plt
import numpy as np
x_0 = 1
y_0 = 3
deltax = .01
xstart = x_0
xslutt = 10
antall_punkter = int((xslutt - xstart)/deltax) + 1
x = np.zeros(antall_punkter)
x[0] = x_0
y = np.zeros(antall_punkter)
y[0] = y_0
for i in range(len(x)-1):
x[i+1] = x[i] + deltax
y[i+1] = y[i] + deltax * ((1/x[i])*y[i] - 3/(x[i]**3))
plt.plot(x,y)
import matplotlib.pyplot as plt
import numpy as np
x_0 = 0
y_0 = 0
deltax = .01
xstart = x_0
xslutt = 10
antall_punkter = int((xslutt - xstart)/deltax) + 1
x = np.zeros(antall_punkter)
x[0] = x_0
y = np.zeros(antall_punkter)
y[0] = y_0
for i in range(len(x)-1):
x[i+1] = x[i] + deltax
y[i+1] = y[i] + deltax * (2*y[i] + 4*np.exp(2*x[i]))
plt.plot(x,y)