Frå prosent til vekstfaktor og tilbake
Oppgåve 1
I det første dømet med prisauke i artikkelen Vekstfaktor og prosentvis endring aukar ei vare i pris med 15 prosent. Originalprisen er 800 kroner. Vi skal finne prisen etter prisauken. Slike oppgåver er greie å løyse ved å bruke vekstfaktor.
Vi ønsker å lage eit program som kan brukast til å rekne prosentoppgåver med vekstfaktor. Brukaren av programmet skal kunne skrive inn tala i oppgåva.
a) Algoritme
Vi byrjar med vekstfaktoren. Skriv algoritmen til eit program som tek imot eit prosenttal frå brukaren av programmet og reknar ut vekstfaktoren ved ein auke med dette prosenttalet. Hugs å få med forklarande tekstar til programmet.
Løysingsforslag
Forslag til algoritme:
Skriv til skjermen "Dette programmet reknar ut vekstfaktoren ved ein auke på ein bestemd prosent. Skriv inn denne prosenten:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
prosent
. - Rekn ut 1+
prosent
/100, og lagre resultatet i variabelenvekstfaktor
. - Skriv til skjermen "Vekstfaktoren ved ein auke på
<prosent>
prosent er<vekstfaktor>
.".
Med "<prosent>
" meiner vi den verdien variabelen prosent
har. Tilsvarande gjeld for "<vekstfaktor>
".
b) Koding
Lag programmet med ein programmeringseditor, og test at det fungerer slik det skal.
Løysingsforlag
Forslag til kode:
Oppgåve 2
Vi skal lage eit program som skal kunne rekne ut kva ei vare med ein viss pris vil koste etter ein prisoppgang på ein viss prosent. Brukaren av programmet skal kunne skrive inn både førprisen og prosenten.
a) Algoritme
Skriv algoritmen til eit slikt program.
Løysingsforslag
Forslag til algoritme:
Skriv til skjermen "Dette programmet reknar ut den nye prisen på ei vare som får ein prisauke på ein viss prosent.".
- Skriv til skjermen "Skriv inn noverande pris på vara:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
gammalpris
. - Skriv til skjermen "Skriv inn prosenten for prisauken:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
prosent
. - Rekn ut 1+
prosent
/100, og lagre resultatet i variabelenvekstfaktor
. - Multipliser
vekstfaktor
medgammalpris
, og lagre resultatet i variabelennypris
. - Skriv til skjermen "Når ei vare som kostar
<gammalpris>
kroner får ein prisauke på<prosent>
prosent, blir den nye prisen<nypris>
kroner.".
Med "<gammalpris>
" meiner vi den verdien variabelen gammalpris
har. Tilsvarande gjeld for "<prosent>
" og "<nypris>
".
b) Koding
Skriv koden til algoritmen i a).
Løysing
Forslag til kode:
c) Algoritme
Det er ikkje alltid at det er ein pris som skal auke i prosent. Det kan vere kva som helst. Endre på dei forklarande tekstane i algoritmen i a) slik at programmet "passar" same kva det er som skal få ein prosentauke.
Løysing
Forslag til algoritme:
Skriv til skjermen "Dette programmet reknar ut den nye verdien av eit tal som skal auke med ein viss prosent.".
- Skriv til skjermen "Skriv inn talet som skal endrast:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
tal
. - Skriv til skjermen "Skriv inn prosenten for auken:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
prosent
. - Rekn ut 1+
prosent
/100, og lagre resultatet i variabelenvekstfaktor
. - Multipliser
vekstfaktor
medtal
, og lagre resultatet i variabelennyverdi
. - Skriv til skjermen "Når talet
<tal>
blir auka med<prosent>
prosent, aukar det til<nytal>
.".
Oppgåve 3
Vi ønsker å lage eit program der brukaren av programmet skal kunne skrive inn eit tal og ein prosent og avgjere om det opphavlege talet skal auke eller minke med denne prosenten.
a) Algoritme
Skriv algoritmen til eit slikt program.
Løysing
- Skriv til skjermen "Dette programmet reknar ut den nye verdien på eit tal som skal auke eller minke med ein viss prosent.".
- Skriv til skjermen "Dersom talet skal auke, skriv 'a'. Dersom talet skal minke, skriv 'm'.".
- Ta imot svaret frå brukaren, og lagre det i variabelen
svar
. - Skriv til skjermen "Skriv inn talet som skal få ei prosentvis endring:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
tal
. - Skriv til skjermen "Skriv inn prosenten talet skal endrast med:".
- Ta imot svaret frå brukaren, og lagre det i variabelen
prosent
. Dersom variabelen
svar
har verdien "a":Rekn ut 1+
prosent
/100, og lagre resultatet i variabelenvekstfaktor
.Set variabelen
endring
lik "aukar".
Dersom
svar
ikkje har verdien "a", men verdien "m":Rekn ut 1-
prosent
/100, og lagre resultatet i variabelenvekstfaktor
.Set variabelen
endring
lik "minkar".
- Multipliser
vekstfaktor
medtal
, og lagre resultatet i variabelennyverdi
. Skriv til skjermen "Når talet
<tal>
<endring>
med<prosent>
prosent,<endring>
det til<nytal>
.".
Merk at vi bruker variabelen endring
til å lage ei svarsetning som gir meining, til slutt.
b) Koding
Lag programmet etter den ferdige algoritmen ovanfor.
Tips
Her kan du få bruk for kommandoordet if. Sjå artikkelen "Vegval – if-elif-else".
Løysing
Utfordring: Lag programmet slik at brukaren får meldinga "Skriv inn talet som skal få ein auke" dersom talet skal aukast, og tilsvarande om talet skal minkast.
Oppgåve 4
Det hender at brukaren av eit program skriv feil. Dersom brukaren av programmet i den førre oppgåva er uheldig og skriv noko anna enn "a" eller "m" på det første spørsmålet, vil programmet krasje. Vi ønsker at brukaren skal få ein ny sjanse til å svare rett på dette spørsmålet – heilt til hen klarer å svare rett, det vil seie anten "a" eller "m".
a) Algoritme
Endre på algoritmen til programmet i den førre oppgåva slik at dette ønsket blir oppfylt.
Tips
Vi treng ein struktur som er slik at så lenge til dømes variabelen svar
har ein annan verdi enn "a" eller "m", skal brukaren bli beden om å skrive svaret på nytt.
Løysing
Den øvste delen av algoritmen:
- Skriv til skjermen "Dette programmet reknar ut den nye verdien på eit tal som skal auke eller minke med ein viss prosent.".
- La variabelen
svar
få verdien "feil". Så lenge
svar
har verdien "feil":- Skriv til skjermen "Dersom talet skal auke, skriv 'a'. Dersom talet skal minke, skriv 'm'.".
- Ta imot svaret frå brukaren, og lagre det i variabelen
svar
. - Dersom
svar
ikkje har verdien "a" eller "m", skriv til skjermen "Du skreiv noko programmet ikkje forstod.", og la variabelensvar
få verdien "feil".
- (Resten av algoritmen er som før.)
b) Koding
Endre deretter på programkoden, og kontroller at programmet fungerer slik det skal.
Tips
Her treng du ein while-struktur.
Løysing
c) Algoritme
Kvifor er den andre instruksjonen i algoritmen over viktig?
Svar
Testinga er bygd opp rundt verdien av variabelen svar
. svar
må derfor vere definert og ha fått ein verdi før vi bruker han i testen på tredje linje i algoritmen. I tillegg må den verdien svar
skal få i den andre linja, vere "feil", elles blir ikkje noko av det som høyrer til under tredje linje, køyrt i det heile.
Oppgåve 5
Vi ønsker no at programmet i den førre oppgåva skal kunne rekne ut den nye verdien etter fleire omgangar med den same prosentvise endringa, det vil seie når vi har eksponentiell vekst.
a) Algoritme
Endre på algoritmen til programmet i den førre oppgåva slik at brukaren kan skrive inn kor mange gonger talet skal endrast med den same prosenten.
Løysing
Vi har forkorta algoritmen så han ikkje skal ta så stor plass.
Skriv startmelding og ta imot informasjon frå brukaren om auke eller minking.
Køyr testen på om brukaren skriv inn 'a' eller 'm'.
Ta imot talet, prosenten og kor mange gonger talet skal endrast, frå brukaren.
Rekn ut vekstfaktor etter om det skal vere auke eller minking.
Multipliser talet med vekstfaktoren opphøgd i talet på gonger talet skal endrast.
Skriv ei passande svarmelding.
b) Koding
Skriv koden til programmet etter algoritmen i a).
Løysing
Oppgåve 6
a) Rekning
Nokre gonger veit vi kor stort eit tal er både før og etter ei prosentvis endring, men vi veit ikkje prosenten. For å finne prosenten her må vi gjere to rekneoperasjonar. Kva to rekneoperasjonar er det? Igjen er vekstfaktoren eit stikkord.
Svar
- Vi må rekne ut vekstfaktoren ut frå dei to tala.
- Vi må rekne ut prosenten ut frå vekstfaktoren.
b) Rekning
Vi ønsker å lage eit program som kan rekne ut den prosentvise auken ut frå verdien på eit tal før og etter auken. Vi ser no på trinn nummer 2 ovanfor. Korleis reknar vi ut prosenten dersom vi veit vekstfaktoren?
Tips
Formelen for vekstfaktoren ved prosentvis auke er
Prøv å snu på formelen slik at han blir på forma
prosent = ....
Tips for korleis du snur ein formel, finn du i artikkelen "Formelrekning".
Løysingsforslag
c) Rekning
Formelen ovanfor gjeld ved prosentvis auke. Finn tilsvarande formel for prosentvis nedgang.
d) Algoritme og koding
I første omgang skal vi lage eit program som reknar ut prosenten ut frå to tal når det har vore prosentvis auke.
Skriv algoritmen til eit slikt program. (Hugs å få med gode forklarande tekstar.) Lag programmet etterpå.
Løysingsforslag
- Skriv til skjermen "Dette programmet reknar ut den prosentvise auken når eit tal aukar frå ein verdi til ein annan.".
- Skriv til skjermen "Skriv inn det opphavlege talet:".
- Ta imot talet frå brukaren, konverter det til eit ekte tal, og lagre det i variabelen
gammalverdi
. - Skriv til skjermen "Skriv inn kva talet er etter den prosentvise auken:".
- Ta imot talet frå brukaren, konverter det til eit ekte tal, og lagre det i variabelen
nyverdi
. - Rekn ut
nyverdi
dividert medgammalverdi
, og set resultatet inn i variabelenvekstfaktor
. - Rekn ut 100 multipliserte med
vekstfaktor
, og trekk frå 100. Set resultatet inn i variabelenprosent
. - Skriv til skjermen "Når eit tal aukar frå
<gammalverdi>
til<nyverdi>
, er auken på<prosent>
prosent.".
e) Algoritme og koding
Endre på algoritmen til programmet slik at det kan handtere både prosentvis nedgang og prosentvis auke. Lag programmet etterpå.
Tips
Treng vi å spørje brukaren om det har vore nedgang eller auke?
f) Algoritme og koding
Endre på algoritmen til programmet slik at det kan handtere at det har vore den same prosentvise endringa eit visst tal på gonger som brukaren kan skrive inn. Lag programmet etterpå.
Oppgåve 7
Bygg saman dei to programma i dei to oppgåvene over slik at du får eit ekte "prosentprogram" som kan takle alle oppgåver med vekstfaktor.