En algoritme er en nøyaktig fremgangsmåte for å løse et problem. Når du modellerer verden ved hjelp av programmering, trenger du algoritmer som kan gjenskape hvordan noe oppfører seg. Målet ditt er å kunne lage egne algoritmer, bruke eksisterende algoritmer riktig, og sjekke om de fungerer slik de skal.
En algoritme er en steg-for-steg oppskrift som løser et problem. I modellering bruker du algoritmer til å simulere virkeligheten, som å beregne hvordan en ball faller eller hvordan befolkningen vokser. Du lager, tester og vurderer om algoritmen gir riktige resultater.
En algoritme er en helt konkret, steg-for-steg plan som datamaskinen kan følge. Den ligner på en oppskrift: hvis du skal lage en kake, skriver du ned hvilke ingredienser, rekkefølgen du blander dem, og temperaturen på ovnen. En algoritme for å beregne hvor langt en gjenstand faller, må fortelle nøyaktig hvilke formler man bruker, i hvilken rekkefølge, og hva man gjør med resultatene.
I modellering bruker vi algoritmer til å gjenskape hvordan virkelige ting oppfører seg. Vi kan lage en modell av været, befolkningsvekst, eller hvordan et spill fungerer. En god algoritme gjør at modellen vår stemmer overens med virkeligheten. En dårlig algoritme gir resultater som ikke gir mening. Derfor er det viktig å kunne vurdere om en algoritme er gyldig, det vil si om den faktisk løser problemet ordentlig.
Start med å forstå problemet nøyaktig. Hva vil du modellere? Hva trenger du som input (inndata)? Hva skal algoritmen produsere som output (utdata)? Tegn gjerne en skisse eller skriv ned tankene dine før du koder.
Bryt problemet ned i mindre deler. En stor algoritme blir enklere hvis du deler den opp. For eksempel: hvis du skal modellere en fallende gjenstand, kan du gjøre det ene trinnet å beregne hastigheten, neste trinn å beregne posisjonen, og så videre.
Implementer algoritmen i kode. Skriv den ned steg for steg, og test hver del ettersom du jobber. Ikke skriv hele algoritmen på en gang og håpe at det fungerer.
Vurder gyldigheiten. Sammenlikn resultatene med kjente svar, eller test med verdier du vet svaret på. Hvis modellen gir feil resultat, må du finne feilen og rette den.
For mye kompleksitet fra start. Mange elever prøver å lage en perfekt algoritme med en gang. I stedet: start enkelt, test, og bygg videre. En enkel algoritme som fungerer er bedre enn en komplisert som ikke gjør det.
Å glemme hva som er virkeligheten. En modell er alltid en forenklet utgave av verden. Du trenger ikke håndtere alt. Men du må forstå hvilke ting som er viktige for problemet ditt, og hvilke du kan ignorere.
Testing bare på en verdi. Test algoritmen din med flere verdier: små tall, store tall, negative tall, grensekasser. En algoritme som fungerer for en verdi kan bryte sammen for en annen.
Ikke dokumentere tankene dine. Når du skriver kode eller forklarer algoritmen, skriv ned hvorfor du gjør ting, ikke bare hva du gjør. Det hjelper deg selv og andre til å forstå og finne feil.
Velg enkle modeller å starte med. Prøv å lage en algoritme som beregner arealet av ulike former, eller som simulerer en person som spiller en terning og holder styr på poengene. Disse problemene er små nok til at du kan holde oversikten.
Bruk eksisterende algoritmer og endre dem. Se på en algoritme som noen andre har skrevet, forstå hvordan den fungerer, og prøv å tilpasse den til ditt eget problem. Det lærer deg hvordan algoritmer er bygget opp.
Skap en feedback-loop. Lag et system der du kan se resultatet av algoritmen din med en gang. Tegn grafer, skriv ut tall, eller lag en visualisering. Jo raskere du ser om noe er galt, jo raskere lærer du.
Skriv pseudokode først. Før du koder, skriv ned algoritmen i vanlig norsk eller псевдокод (kunstig kode som er lett å forstå). Det tvinger deg til å tenke klart før du starter.
Lag en algoritme som modellerer hvor høyt en ball kommer når den kastes opp med en starthastighet på 20 m/s, hvis vi ser bort fra luftmotstand. Hvor høy er den etter 1 sekund? Hvor høy kommer den maksimalt?
Fasit: Etter 1 sekund: cirka 15,1 meter. Maksimalt: cirka 20,4 meter (ved t = 2,04 sekunder).
Steg 1: Vi bruker formelen h = v0*t - 0,5*g*t², der v0 = 20 m/s, g = 9,81 m/s², og t er tid i sekunder. Steg 2: For t = 1: h = 20*1 - 0,5*9,81*1² = 20 - 4,905 = 15,095 meter. Steg 3: Maksimal høyde oppnås når hastigheten blir null. v = v0 - g*t gir 0 = 20 - 9,81*t, så t = 20/9,81 = 2,04 sekunder. Steg 4: h_maks = 20*2,04 - 0,5*9,81*2,04² = 40,8 - 20,4 = 20,4 meter. Steg 5: Sjekk: går det an å kaste en ball 20 meter høyt med 20 m/s? Ja, det er rimelig. Algoritmen er gyldig.
Prøv Lekselos gratis i 14 dager for å lese hele forklaringen, se eksemplet steg for steg og øve på programmering og modellering x tilpasset deg.
Lekselos loser barnet gjennom oppgaven ett steg om gangen, så det lærer i stedet for å kopiere. Du får ukeplan, prøver og gloser samlet, og ser hva som er gjort. Forankret i LK20, laget i Norge. 14 dager gratis, uten kort.
En algoritme er planen, en oppskrift med steg som skal følges. Et program er det du skriver i en programmeringsspråk for at datamaskinen skal følge planen. Samme algoritme kan skrives som et program på mange forskjellige språk.
Test den med verdier der du allerede vet svaret. Sjekk at resultatet gir mening i virkeligheten. Sammenlign med andre kilder eller formler. Hvis alle disse sier at algoritmen gir riktig svar, er den trolig gyldig.
Ja, absolutt. Det er viktig å kunne bruke eksisterende algoritmer. Men du må forstå hvordan den fungerer, og du må vite når den er gyldig og når den ikke er det. En algoritme som fungerer for en type problem kan være helt feil for en annen.
Først: sjekk inndata. Er verdiene riktige? Deretter: gå gjennom algoritmen trinn for trinn, helst med papir og blyant. Se hvor det første avviket oppstår. Så fikser du det trinnet eller hele algoritmen.
Bare så komplisert som problemet krever. En enkel algoritme som fungerer er bedre enn en komplisert som gjør det samme. Start enkelt, og legg til kompleksitet bare hvis det er nødvendig for å få riktige resultater.
Forankring i læreplanen: Kompetansemål (LK20): Fag: Læreplan i programmering og modellering X Trinn: Programmering og modellering X Kompetansemål: Eleven skal kunne bruke, utleie og lage algoritmar som kan brukast til modellering, og vurdere gyldigheita av disse algoritmane. Nynorsk: Eleven skal kunne bruke, utleie og lage algoritmar som kan brukast til modellering, og vurdere gyldigheita av disse algoritmane. Kjerneelement: Utforsking og problemløysing (Kilde: Utdanningsdirektoratet)
Lekselos loser deg gjennom oppgaver med hint, ikke fasit, og lager øving tilpasset deg. Prøv gratis.