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".

Del 1: Beregning av vekstfaktor fra prosent

Algoritme

  1. Skriv til skjermen "Dette programmet regner ut vekstfaktoren ved en økning på en bestemt prosent. Skriv inn denne prosenten:".
  2. Ta imot svaret fra brukeren, og lagre det i variabelen prosent.
  3. Regn ut 1 + prosent / 100, og lagre resultatet i variabelen vekstfaktor.
  4. Skriv til skjermen "Vekstfaktoren ved en økning på <prosent> prosent er <vekstfaktor>.".

Koding

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()

Del 2: Beregning av ny pris etter prosentvis økning

Algoritme

  1. Skriv til skjermen "Dette programmet regner ut den nye prisen på en vare som får en prisøkning på en viss prosent."
  2. Skriv til skjermen "Skriv inn nåværende pris på varen:".
  3. Ta imot svaret fra brukeren, og lagre det i variabelen gammelpris.
  4. Skriv til skjermen "Skriv inn prosenten for prisøkningen:".
  5. Ta imot svaret fra brukeren, og lagre det i variabelen prosent.
  6. Regn ut 1 + prosent / 100, og lagre resultatet i variabelen vekstfaktor.
  7. Multipliser vekstfaktor med gammelpris, og lagre resultatet i variabelen nypris.
  8. 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.".

Koding

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()

Del 3: Beregning av ny verdi etter prosentvis endring (økning eller minking)

Algoritme

  1. Skriv til skjermen "Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent."
  2. Skriv til skjermen "Dersom tallet skal øke, skriv 'a'. Dersom tallet skal minke, skriv 'm'."
  3. Ta imot svaret fra brukeren, og lagre det i variabelen svar.
  4. Skriv til skjermen "Skriv inn tallet som skal få en prosentvis endring:".
  5. Ta imot svaret fra brukeren, og lagre det i variabelen tall.
  6. Skriv til skjermen "Skriv inn prosenten tallet skal endres med:".
  7. Ta imot svaret fra brukeren, og lagre det i variabelen prosent.
  8. Dersom variabelen svar har verdien 'a':
    • Regn ut 1 + prosent / 100, og lagre resultatet i variabelen vekstfaktor.
    • Sett variabelen endring lik "øker".
  9. Dersom svar har verdien 'm':
    • Regn ut 1 - prosent / 100, og lagre resultatet i variabelen vekstfaktor.
    • Sett variabelen endring lik "minker".
  10. Multipliser vekstfaktor med tall, og lagre resultatet i variabelen nyverdi.
  11. Skriv til skjermen "Når tallet <tall> <endring> med <prosent> prosent, <endring> det til <nyverdi>."

Koding

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()

Del 4: Beregning av ny verdi etter flere prosentvise endringer (eksponentiell vekst)

Algoritme

  1. 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."
  2. Gjenta trinnene 2-10 fra forrige del for å få tall, prosent, vekstfaktor, og endring.
  3. Skriv til skjermen "Skriv inn hvor mange ganger tallet skal endres:".
  4. Ta imot svaret fra brukeren, og lagre det i variabelen n.
  5. Multipliser vekstfaktor med tall opphøyd i n, og lagre resultatet i variabelen nytall.
  6. Skriv til skjermen "Når tallet <tall> <endring> med <prosent> prosent <n> ganger, <endring> det til <nytall>."

Koding

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()

Del 5: Beregning av prosentvis endring basert på opprinnelig og ny verdi

Algoritme

  1. Skriv til skjermen "Dette programmet regner ut den prosentvise økningen når et tall øker fra en verdi til en annen."
  2. Skriv til skjermen "Skriv inn det opprinnelige tallet:".
  3. Ta imot tallet fra brukeren, og lagre det i variabelen gammelverdi.
  4. 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."

Koding

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()

Komplett "Prosentprogram"

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.

Komplett "Prosentprogram" og Funksjonsutforsking

Prosentprogram

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()

Funksjonsutforsking

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()

Hvordan bruke programmene

  1. 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.
  2. 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!

⚠️ **GitHub.com Fallback** ⚠️