Frå prosent til vekstfaktor og tilbake - Elektroniske krinsar og nettverk (EL-ELE vg1) - NDLAHopp til innhald
Oppgave
Frå prosent til vekstfaktor og tilbake
Vi har ofte bruk for å rekne ut vekstfaktoren når vi held på med prosentvis vekst, men vi har nesten like ofte bruk for å gå den andre vegen. Nedst på sida kan du laste ned oppgåvene som Word- og pdf-dokument.
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 variabelen vekstfaktor.
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 variabelen vekstfaktor.
Multipliser vekstfaktor med gammalpris, og lagre resultatet i variabelen nypris.
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 variabelen vekstfaktor.
Multipliser vekstfaktor med tal, og lagre resultatet i variabelen nyverdi.
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 variabelen vekstfaktor.
Set variabelen endring lik "aukar".
Dersom svar ikkje har verdien "a", men verdien "m":
Rekn ut 1-prosent/100, og lagre resultatet i variabelen vekstfaktor.
Set variabelen endring lik "minkar".
Multipliser vekstfaktor med tal, og lagre resultatet i variabelen nyverdi.
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.
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 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.
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?
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 med gammalverdi, og set resultatet inn i variabelen vekstfaktor.
Rekn ut 100 multipliserte med vekstfaktor, og trekk frå 100. Set resultatet inn i variabelen prosent.
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.