20TD02U Fra prosent til vekstfaktor og tilbake - itnett/FTD02H-N GitHub Wiki
Skurdal, B. (2022, 31. mai). Fra prosent til vekstfaktor og tilbake. NDLA. https://ndla.no/article/23316
La oss lage et program som håndterer prosentvise endringer, enten det er en økning eller en nedgang, og som kan brukes til flere iterasjoner med prosentvise endringer. Dette programmet vil også kunne beregne prosenten basert på opprinnelig og ny verdi. Vi vil dele opp programmene i forskjellige deler og deretter kombinere dem til et komplett "prosentprogram".
- Skriv til skjermen "Dette programmet regner ut vekstfaktoren ved en økning på en bestemt prosent. Skriv inn denne prosenten:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
prosent
. - Regn ut
1 + prosent / 100
, og lagre resultatet i variabelenvekstfaktor
. - Skriv til skjermen "Vekstfaktoren ved en økning på
<prosent>
prosent er<vekstfaktor>
.".
def beregn_vekstfaktor():
print("Dette programmet regner ut vekstfaktoren ved en økning på en bestemt prosent.")
prosent = float(input("Skriv inn denne prosenten: "))
vekstfaktor = 1 + prosent / 100
print(f"Vekstfaktoren ved en økning på {prosent} prosent er {vekstfaktor}.")
beregn_vekstfaktor()
- Skriv til skjermen "Dette programmet regner ut den nye prisen på en vare som får en prisøkning på en viss prosent."
- Skriv til skjermen "Skriv inn nåværende pris på varen:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
gammelpris
. - Skriv til skjermen "Skriv inn prosenten for prisøkningen:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
prosent
. - Regn ut
1 + prosent / 100
, og lagre resultatet i variabelenvekstfaktor
. - Multipliser
vekstfaktor
medgammelpris
, og lagre resultatet i variabelennypris
. - Skriv til skjermen "Når en vare som koster
<gammelpris>
kroner får en prisøkning på<prosent>
prosent, blir den nye prisen<nypris>
kroner.".
def beregn_ny_pris():
print("Dette programmet regner ut den nye prisen på en vare som får en prisøkning på en viss prosent.")
gammelpris = float(input("Skriv inn nåværende pris på varen: "))
prosent = float(input("Skriv inn prosenten for prisøkningen: "))
vekstfaktor = 1 + prosent / 100
nypris = gammelpris * vekstfaktor
print(f"Når en vare som koster {gammelpris} kroner får en prisøkning på {prosent} prosent, blir den nye prisen {nypris} kroner.")
beregn_ny_pris()
- Skriv til skjermen "Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent."
- Skriv til skjermen "Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'."
- Ta imot svaret fra brukeren, og lagre det i variabelen
svar
. - Skriv til skjermen "Skriv inn tallet som skal få en prosentvis endring:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
tall
. - Skriv til skjermen "Skriv inn prosenten tallet skal endres med:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
prosent
. - Dersom variabelen
svar
har verdien 'a':- Regn ut
1 + prosent / 100
, og lagre resultatet i variabelenvekstfaktor
. - Sett variabelen
endring
lik "øker".
- Regn ut
- Dersom
svar
har verdien 'm':- Regn ut
1 - prosent / 100
, og lagre resultatet i variabelenvekstfaktor
. - Sett variabelen
endring
lik "minker".
- Regn ut
- Multipliser
vekstfaktor
medtall
, og lagre resultatet i variabelennyverdi
. - Skriv til skjermen "Når tallet
<tall>
<endring>
med<prosent>
prosent,<endring>
det til<nyverdi>
."
def beregn_ny_verdi():
print("Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent.")
svar = input("Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'.")
tall = float(input("Skriv inn tallet som skal få en prosentvis endring: "))
prosent = float(input("Skriv inn prosenten tallet skal endres med: "))
if svar == 'a':
vekstfaktor = 1 + prosent / 100
endring = "øker"
elif svar == 'm':
vekstfaktor = 1 - prosent / 100
endring = "minker"
else:
print("Ugyldig valg.")
return
nyverdi = tall * vekstfaktor
print(f"Når tallet {tall} {endring} med {prosent} prosent, {endring} det til {nyverdi}.")
beregn_ny_verdi()
- Skriv til skjermen "Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent et visst antall ganger."
- Gjenta trinnene 2-10 fra forrige del for å få
tall
,prosent
,vekstfaktor
, ogendring
. - Skriv til skjermen "Skriv inn hvor mange ganger tallet skal endres:".
- Ta imot svaret fra brukeren, og lagre det i variabelen
n
. - Multipliser
vekstfaktor
medtall
opphøyd in
, og lagre resultatet i variabelennytall
. - Skriv til skjermen "Når tallet
<tall>
<endring>
med<prosent>
prosent<n>
ganger,<endring>
det til<nytall>
."
def beregn_ny_verdi_flere_ganger():
print("Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent et visst antall ganger.")
svar = input("Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'.")
while svar not in ['a', 'm']:
print("Du skrev inn verken 'a' eller 'm'.")
svar = input("Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'.")
tall = float(input("Skriv inn tallet som skal få en prosentvis endring: "))
prosent = float(input("Skriv inn prosenten tallet skal endres med: "))
n = int(input("Skriv inn hvor mange ganger tallet skal endres: "))
if svar == 'a':
vekstfaktor = 1 + prosent / 100
endring = "øker"
elif svar == 'm':
vekstfaktor = 1 - prosent / 100
endring = "minker"
nytall = tall * (vekstfaktor ** n)
print(f"Når tallet {tall} {endring} med {prosent} prosent {n} ganger, {endring} det til {nytall}.")
beregn_ny_verdi_flere_ganger()
- Skriv til skjermen "Dette programmet regner ut den prosentvise økningen når et tall øker fra en verdi til en annen."
- Skriv til skjermen "Skriv inn det opprinnelige tallet:".
- Ta imot tallet fra brukeren, og lagre det i variabelen
gammelverdi
. - Skriv til skjermen "Skriv inn hva tallet er etter den prosentvise økningen:". 5
. Ta imot tallet fra brukeren, og lagre det i variabelen nyverdi
.
6. Regn ut nyverdi / gammelverdi
, og sett resultatet inn i variabelen vekstfaktor
.
7. Regn ut 100 * vekstfaktor - 100
, og sett resultatet inn i variabelen prosent
.
8. Skriv til skjermen "Når et tall øker fra <gammelverdi>
til <nyverdi>
, er økningen på <prosent>
prosent."
def beregn_prosentvis_okning():
print("Dette programmet regner ut den prosentvise økningen når et tall øker fra en verdi til en annen.")
gammelverdi = float(input("Skriv inn det opprinnelige tallet: "))
nyverdi = float(input("Skriv inn hva tallet er etter den prosentvise økningen: "))
vekstfaktor = nyverdi / gammelverdi
prosent = (vekstfaktor - 1) * 100
print(f"Når et tall øker fra {gammelverdi} til {nyverdi}, er økningen på {prosent} prosent.")
beregn_prosentvis_okning()
Dette programmet kombinerer alle de ovennevnte funksjonene, slik at det kan takle alle oppgaver med vekstfaktor og prosentvis endring.
def prosentprogram():
print("Velkommen til prosentprogrammet!")
print("Velg en av følgende funksjoner:")
print("1. Beregn vekstfaktor fra prosent")
print("2. Beregn ny pris etter prosentvis økning")
print("3. Beregn ny verdi etter prosentvis endring (økning eller minking)")
print("4. Beregn ny verdi etter flere prosentvise endringer")
print("5. Beregn prosentvis endring basert på opprinnelig og ny verdi")
valg = input("Skriv inn nummeret på funksjonen du vil bruke: ")
if valg == '1':
beregn_vekstfaktor()
elif valg == '2':
beregn_ny_pris()
elif valg == '3':
beregn_ny_verdi()
elif valg == '4':
beregn_ny_verdi_flere_ganger()
elif valg == '5':
beregn_prosentvis_okning()
else:
print("Ugyldig valg. Vennligst prøv igjen.")
prosentprogram()
Dette komplette programmet gir brukeren mulighet til å velge hvilken type prosentregning de vil utføre, og det gir en omfattende løsning for oppgaver med vekstfaktor og prosentvis endring. La meg vite om du trenger ytterligere tilpasninger eller flere funksjoner!
For å hjelpe elevene med å oppfylle kompetansemålene i matematikk, kan vi lage et omfattende program som dekker bruk av prosent, prosentpoeng, promille og vekstfaktor i utregninger, samt utforsking og beskrivelse av funksjoner. Programmet skal også kunne formulere og løse problemer ved hjelp av algoritmisk tenkning.
Dette programmet hjelper brukeren med å regne ut nye verdier basert på prosentvise endringer, enten det er en økning eller minking. Det kan også håndtere flere iterasjoner av prosentvise endringer og beregne prosentvis endring basert på opprinnelig og ny verdi.
def beregn_vekstfaktor():
print("Dette programmet regner ut vekstfaktoren ved en økning på en bestemt prosent.")
prosent = float(input("Skriv inn denne prosenten: "))
vekstfaktor = 1 + prosent / 100
print(f"Vekstfaktoren ved en økning på {prosent} prosent er {vekstfaktor}.")
def beregn_ny_pris():
print("Dette programmet regner ut den nye prisen på en vare som får en prisøkning på en viss prosent.")
gammelpris = float(input("Skriv inn nåværende pris på varen: "))
prosent = float(input("Skriv inn prosenten for prisøkningen: "))
vekstfaktor = 1 + prosent / 100
nypris = gammelpris * vekstfaktor
print(f"Når en vare som koster {gammelpris} kroner får en prisøkning på {prosent} prosent, blir den nye prisen {nypris} kroner.")
def beregn_ny_verdi():
print("Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent.")
svar = input("Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'.")
tall = float(input("Skriv inn tallet som skal få en prosentvis endring: "))
prosent = float(input("Skriv inn prosenten tallet skal endres med: "))
if svar == 'a':
vekstfaktor = 1 + prosent / 100
endring = "øker"
elif svar == 'm':
vekstfaktor = 1 - prosent / 100
endring = "minker"
else:
print("Ugyldig valg.")
return
nyverdi = tall * vekstfaktor
print(f"Når tallet {tall} {endring} med {prosent} prosent, {endring} det til {nyverdi}.")
def beregn_ny_verdi_flere_ganger():
print("Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent et visst antall ganger.")
svar = "feil"
while svar not in ['a', 'm']:
svar = input("Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'.")
if svar not in ['a', 'm']:
print("Du skrev inn verken 'a' eller 'm'.")
tall = float(input("Skriv inn tallet som skal få en prosentvis endring: "))
prosent = float(input("Skriv inn prosenten tallet skal endres med: "))
n = int(input("Skriv inn hvor mange ganger tallet skal endres: "))
if svar == 'a':
vekstfaktor = 1 + prosent / 100
endring = "øker"
elif svar == 'm':
vekstfaktor = 1 - prosent / 100
endring = "minker"
nytall = tall * (vekstfaktor ** n)
print(f"Når tallet {tall} {endring} med {prosent} prosent {n} ganger, {endring} det til {nytall}.")
def beregn_prosentvis_okning():
print("Dette programmet regner ut den prosentvise økningen når et tall øker fra en verdi til en annen.")
gammelverdi = float(input("Skriv inn det opprinnelige tallet: "))
nyverdi = float(input("Skriv inn hva tallet er etter den prosentvise økningen: "))
vekstfaktor = nyverdi / gammelverdi
prosent = (vekstfaktor - 1) * 100
print(f"Når et tall øker fra {gammelverdi} til {nyverdi}, er økningen på {prosent} prosent.")
def prosentprogram():
print("Velkommen til prosentprogrammet!")
print("Velg en av følgende funksjoner:")
print("1. Beregn vekstfaktor fra prosent")
print("2. Beregn ny pris etter prosentvis økning")
print("3. Beregn ny verdi etter prosentvis endring (økning eller minking)")
print("4. Beregn ny verdi etter flere prosentvise endringer")
print("5. Beregn prosentvis endring basert på opprinnelig og ny verdi")
valg = input("Skriv inn nummeret på funksjonen du vil bruke: ")
if valg == '1':
beregn_vekstfaktor()
elif valg == '2':
beregn_ny_pris()
elif valg == '3':
beregn_ny_verdi()
elif valg == '4':
beregn_ny_verdi_flere_ganger()
elif valg == '5':
beregn_prosentvis_okning()
else:
print("Ugyldig valg. Vennligst prøv igjen.")
prosentprogram()
Dette programmet hjelper elevene med å utforske egenskapene ved polynomfunksjoner, rasjonale funksjoner, eksponentialfunksjoner og potensfunksjoner.
import numpy as np
import matplotlib.pyplot as plt
import sympy as sp
def polynomial_function(coefficients):
x = sp.symbols('x')
f = sum(c*x**i for i, c in enumerate(coefficients))
return f
def find_roots(f):
x = sp.symbols('x')
roots = sp.solve(f, x)
return roots
def find_extrema(f):
x = sp.symbols('x')
f_prime = sp.diff(f, x)
critical_points = sp.solve(f_prime, x)
return critical_points, f_prime
def plot_polynomial(coefficients):
x_vals = np.linspace(-10, 10, 400)
x = sp.symbols('x')
f = polynomial_function(coefficients)
f_lambdified = sp.lambdify(x, f, 'numpy')
y_vals = f_lambdified(x_vals)
roots = find_roots(f)
critical_points, f_prime = find_extrema(f)
f_prime_lambdified = sp.lambdify(x, f_prime, 'numpy')
y_prime_vals = f_prime_lambdified(x_vals)
plt.plot(x_vals, y_vals, label='f(x)')
plt.plot(x_vals, y_prime_vals, label="f'(x)", linestyle='--')
for root in roots:
plt.plot(root, f_lambdified(root), 'ro', label=f'Root: x={root:.2f}')
for cp in critical_points:
plt.plot(cp, f_lambdified(cp), 'go', label=f'Critical Point: x={cp:.2f}')
plt.axhline(0, color='black', linewidth=0.5)
plt.axvline(0, color='black', linewidth=0.5)
plt.legend()
plt.title('Polynomfunksjon og dens deriverte')
plt.xlabel('x')
plt.ylabel('y')
plt.grid(True)
plt.show()
def utforske_funskjoner():
print("Dette programmet utforsker egenskapene ved polynomfunksjoner, rasjonale funksjoner, eksponentialfunksjoner og potensfunksjoner.")
user_input = input("Skriv inn koeffisientene til polynomfunksjonen separert med mellomrom (start med den laveste graden): ")
coefficients = list(map(float, user_input.split()))
plot_polynomial(coefficients)
utforske_funskjoner()
- Prosentprogrammet: Lar brukeren velge mellom ulike funksjoner for å beregne vekstfaktor, ny pris, ny verdi etter prosentvis endring, ny verdi etter flere prosentvise endringer, og prosentvis endring basert på opprinnelig og ny verdi.
- Funksjonsutforsking: Lar brukeren utforske egenskapene ved polynomfunksjoner ved å plotte funksjonen og dens deriverte, samt finne røtter og ekstremalpunkter.
Disse programmene er designet for å oppfylle kompetansemålene i matematikk ved å bruke prosent og vekstfaktor i utregninger og presentere løsninger, samt utforske egenskapene ved funksjoner
ved hjelp av algoritmisk tenkning og digitale verktøy. La meg vite om du trenger ytterligere tilpasninger eller flere ressurser!