Vi har ofte bruk for å regne ut vekstfaktoren når vi holder på med prosentvis vekst, men vi har nesten like ofte bruk for å gå den andre veien. Nederst på siden kan du laste ned oppgavene som Word- og pdf-dokumenter.
Oppgave 1
I det første eksempelet med prisøkning i artikkelen Vekstfaktor og prosentvis endring øker en vare i pris med 15 prosent. Originalprisen er 800 kroner. Vi skal finne prisen etter prisøkningen. Slike oppgaver er greie å løse ved å bruke vekstfaktor.
Vi ønsker å lage et program som kan brukes til å regne prosentoppgaver med vekstfaktor. Brukeren av programmet skal kunne skrive inn tallene i oppgaven.
a) Algoritme
Vi begynner med vekstfaktoren. Skriv algoritmen til et program som tar imot et prosenttall fra brukeren av programmet og regner ut vekstfaktoren ved en økning med dette prosenttallet. Husk å få med forklarende tekster til programmet.
Løsningsforslag
Forslag til algoritme:
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 variabelen vekstfaktor.
Skriv til skjermen "Vekstfaktoren ved en økning på <prosent> prosent er <vekstfaktor>.".
Med "<prosent>" mener vi den verdien variabelen prosent har. Tilsvarende gjelder for "<vekstfaktor>".
b) Koding
Lag programmet med en programmeringseditor, og test at det fungerer slik det skal.
Løsningsforlag
Forslag til kode:
Oppgave 2
Vi skal lage et program som skal kunne regne ut hva en vare med en viss pris vil koste etter en prisoppgang på en viss prosent. Brukeren av programmet skal kunne skrive inn både førprisen og prosenten.
a) Algoritme
Skriv algoritmen til et slikt program.
Løsningsforslag
Forslag til algoritme:
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 variabelen vekstfaktor.
Multipliser vekstfaktor med gammelpris, og lagre resultatet i variabelen nypris.
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.".
Med "<gammelpris>" mener vi den verdien variabelen gammelpris har. Tilsvarende gjelder for "<prosent>" og "<nypris>".
b) Koding
Skriv koden til algoritmen i a).
Løsning
Forslag til kode:
c) Algoritme
Det er ikke alltid at det er en pris som skal øke i prosent. Det kan være hva som helst. Endre på de forklarende tekstene i algoritmen i a) slik at programmet "passer" uansett hva det er som skal få en prosentøkning.
Løsning
Forslag til algoritme:
Skriv til skjermen "Dette programmet regner ut den nye verdien av et tall som skal øke med en viss prosent.".
Skriv til skjermen "Skriv inn tallet som skal endres:".
Ta imot svaret fra brukeren, og lagre det i variabelen tall.
Skriv til skjermen "Skriv inn prosenten for økningen:".
Ta imot svaret fra brukeren, og lagre det i variabelen prosent.
Regn ut 1+prosent/100, og lagre resultatet i variabelen vekstfaktor.
Multipliser vekstfaktor med tall, og lagre resultatet i variabelen nyverdi.
Skriv til skjermen "Når tallet <tall> økes med <prosent> prosent, øker det til <nytall>.".
Oppgave 3
Vi ønsker å lage et program der brukeren av programmet skal kunne skrive inn et tall og en prosent og bestemme om det opprinnelige tallet skal øke eller minke med denne prosenten.
a) Algoritme
Skriv algoritmen til et slikt program.
Løsning
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 variabelen vekstfaktor.
Sett variabelen endring lik "øker".
Dersom svar ikke har verdien "a", men verdien "m":
Regn ut 1-prosent/100, og lagre resultatet i variabelen vekstfaktor.
Sett variabelen endring lik "minker".
Multipliser vekstfaktor med tall, og lagre resultatet i variabelen nyverdi.
Skriv til skjermen "Når tallet <tall><endring> med <prosent> prosent, <endring> det til <nytall>.".
Merk at vi bruker variabelen endring til å lage en svarsetning som gir mening, til slutt.
b) Koding
Lag programmet etter den ferdige algoritmen ovenfor.
Utfordring: Lag programmet slik at brukeren får meldinga "Skriv inn tallet som skal få en økning" dersom tallet skal økes, og tilsvarende om tallet skal minkes.
Oppgave 4
Det hender at brukeren av et program skriver feil. Dersom brukeren av programmet i forrige oppgave er uheldig og skriver noe annet enn "a" eller "m" på det første spørsmålet, vil programmet krasje. Vi ønsker at brukeren skal få en ny sjanse til å svare rett på dette spørsmålet – helt til hen klarer å svare riktig, det vil si enten "a" eller "m".
a) Algoritme
Endre på algoritmen til programmet i forrige oppgave slik at dette ønsket blir oppfylt.
Tips
Vi trenger en struktur som er slik at så lenge for eksempel variabelen svar har en annen verdi enn "a" eller "m", skal brukeren bli bedt om å skrive svaret på nytt.
Løsning
Den øverste delen av algoritmen:
Skriv til skjermen "Dette programmet regner ut den nye verdien på et tall som skal øke eller minke med en viss prosent.".
La variabelen svar få verdien "feil".
Så lenge svar har verdien "feil":
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.
Dersom svar ikke har verdien "a" eller "m", skriv til skjermen "Du skrev noe programmet ikke forsto.", og la variabelen svar få verdien "feil".
(Resten av algoritmen er som før.)
b) Koding
Endre deretter på programkoden, og kontroller at programmet fungerer slik det skal.
Hvorfor er den andre instruksjonen i algoritmen over viktig?
Svar
Testingen er bygd opp rundt verdien av variabelen svar. svar må derfor være definert og ha fått en verdi før vi bruker den i testen på tredje linje i algoritmen. I tillegg må den verdien svar skal få i den andre linja, være "feil", ellers blir ikke noe av det som hører til under tredje linje, kjørt i det hele tatt.
Oppgave 5
Vi ønsker nå at programmet i forrige oppgave skal kunne regne ut den nye verdien etter flere omganger med samme prosentvise endring, det vil si når vi har eksponentiell vekst.
a) Algoritme
Endre på algoritmen til programmet i forrige oppgave slik at brukeren kan skrive inn hvor mange ganger tallet skal endres med den samme prosenten.
Løsning
Vi har forkortet algoritmen så den ikke skal ta så stor plass.
Skriv startmelding og ta imot informasjon fra brukeren om økning eller minking.
Kjør testen på om brukeren skriver inn 'a' eller 'm'.
Ta imot tallet, prosenten og hvor mange ganger tallet skal endres, fra brukeren.
Regn ut vekstfaktor etter om det skal være økning eller minking.
Multipliser tallet med vekstfaktoren opphøyd i antall ganger tallet skal endres.
Skriv en passende svarmelding.
b) Koding
Skriv koden til programmet etter algoritmen i a).
Løsning
Oppgave 6
a) Regning
Noen ganger vet vi hvor stort et tall er både før og etter en prosentvis endring, men vi vet ikke prosenten. For å finne prosenten her må vi gjøre to regneoperasjoner. Hvilke to regneoperasjoner er det? Igjen er vekstfaktoren et stikkord.
Svar
Vi må regne ut vekstfaktoren ut ifra de to tallene.
Vi må regne ut prosenten ut ifra vekstfaktoren.
b) Regning
Vi ønsker å lage et program som kan regne ut den prosentvise økningen ut ifra verdien på et tall før og etter økningen. Vi ser nå på trinn nummer 2 ovenfor. Hvordan regner vi ut prosenten dersom vi vet vekstfaktoren?
Tips
Formelen for vekstfaktoren ved prosentvis økning er
Formelen ovenfor gjelder ved prosentvis økning. Finn tilsvarende formel for prosentvis nedgang.
d) Algoritme og koding
I første omgang skal vi lage et program som regner ut prosenten ut ifra to tall når det har vært prosentvis økning.
Skriv algoritmen til et slikt program. (Husk å få med gode forklarende tekster.) Lag programmet etterpå.
Løsningsforslag
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, konverter det til et ekte tall, og lagre det i variabelen gammelverdi.
Skriv til skjermen "Skriv inn hva tallet er etter den prosentvise økningen:".
Ta imot tallet fra brukeren, konverter det til et ekte tall, og lagre det i variabelen nyverdi.
Regn ut nyverdi dividert med gammelverdi, og sett resultatet inn i variabelen vekstfaktor.
Regn ut 100 multiplisert med vekstfaktor, og trekk fra 100. Sett resultatet inn i variabelen prosent.
Skriv til skjermen "Når et tall øker fra <gammelverdi> til <nyverdi>, er økningen på <prosent> prosent.".
e) Algoritme og koding
Endre på algoritmen til programmet slik at det kan håndtere både prosentvis nedgang og prosentvis økning. Lag programmet etterpå.
Tips
Trenger vi å spørre brukeren om det har vært nedgang eller økning?
f) Algoritme og koding
Endre på algoritmen til programmet slik at det kan håndtere at det har vært den samme prosentvise endringen et visst antall ganger som brukeren kan skrive inn. Lag programmet etterpå.
Oppgave 7
Bygg sammen de to programmene i de to oppgavene over slik at du får et ekte "prosentprogram" som kan takle alle oppgaver med vekstfaktor.