Modul 3: Sentrale konsepter og begreper
Algoritmer
En algoritme er en oppskrift. En serie av spesifikke instruksjoner eller skritt, som løser et problem eller fullfører en oppgave. Vi kommer borti dem daglig, kanskje uten at vi tenker over det. Det kan være oppskriften for å bake en kake, rekkefølgen du gjør ting i når du pusser tennene, hvordan du kler på deg eller ruten du går for å komme hjemmefra til skolen.
Programmerere skriver algoritmer på et programmeringsspråk som en datamaskin kan forstå. Når programmereren bestemmer det, går datamaskinen gjennom algoritmen, skritt for skritt, og gjør hver av tingene den får beskjed om, til hele oppskriften er gjennomført. På den måten kan man få en datamaskin til å gjøre en stor oppgave ved å dele den opp i en rekke mindre beskjeder.
Pilene på bildet under er en algoritme.
Løkker
En løkke er en del av et program som gjentar seg. Vi bruker løkker når vi vil gjenta en del av et program uten å skrive den samme koden flere ganger. Man kan velge om koden i løkken skal gjentas et visst antall ganger (for-løkke) eller om den skal gjentas så lenge en spesifikk betingelse er sann (while-løkke). For eksempel kan en for-løkke si at en figur skal hoppe ti ganger (for 10 times), mens en while-løkke kan si at en figur skal ha paraplyen sitt oppslått så lenge det regner (while it rains).
Fordelen med løkker er at vi slipper å skrive mange linjer med kode. Koden blir enklere å feilsøke og rette. Den blir også mer kompakt, slik at det tar kortere tid å kjøre gjennom programmet.
Hva tror du resultatet blir hvis du kjører denne koden?
Her er den gule blokken en for-løkke som sier at kommandoene inne i løkken skal gjentas fire ganger. Fant du ut hva programmet over gjør? Hint: Tegner en geometrisk form.
For å beherske dette med løkker må man kunne se mønstre. Hvis du finner gjentakelser og mønstre, kan du se hva som kan effektiviseres ved å bruke løkker. Tenk for eksempel på danser som fugledansen eller macarena. Oppskriften på en lang dans kan skrives på en effektiv måte hvis man bruker løkker. Kjenner du igjen denne dansen?
Gjenta while musikk høres:
venstre fot til siden
venstre fot tilbake
venstre fot til siden
venstre fot tilbake
høyre fot til siden
høyre fot tilbake
høyre fot til siden
høyre fot tilbake
hopp frem
hopp tilbake
hopp frem
hopp frem
hopp frem
Fordi løkken øverst sier at dette skal gjentas så lenge musikken spilles, vil koden kjøres på nytt ovenfra igjen hver gang man kommer til bunnen, så lenge vilkåret om at musikk høres er oppfylt. Har du en lang spilleliste med musikk, kan du dermed gjennomføre timevis av dans med disse 14 linjene med kode. Samtidig ser vi at det er gjentakelser i koden, så den kunne ha vært gjort enda mer effektiv med flere løkker inne i hovedløkken. (PS. Ja, det er Jenka ;))
Oppgave: Se på koden for dansen over og finn gjentakelser. Skriv ned en ny algoritme for dansen som er mer effektiv.
Når du har laget din algoritme kan du titte på to løsningsforslag her. Men husk, i programmering er det alltid mange veier til mål, så din variant kan være vel så god.
Oppgave: Tenk på en dans med gjentakelser eller finn på en ny dans. Skriv oppskriften for dansen som en algoritme med løkker. Test oppskriften på kollegaer eller elever. Klarer de å gjennomføre dansen basert på algoritmen din?
Variabler
En variabel er et ord eller en bokstav som brukes for å vise til noe annet. En slags plassholder eller kontainer som kan inneholde tekst eller tall. Når vi oppretter en variabel gir vi den et navn, for eksempel «Poeng» i et dataspill, som kan være plassholder for den til enhver tid korrekte poengsummen til spilleren. Når vi kaller på variabelen og ber den vise seg, vil den vise innholdet sitt og ikke navnet på variabelen.
Et eksempel fra hverdagen er alderen din. Det er en variabel som varierer. Spør jeg deg i dag, svarer du et tall, spør jeg deg om to år, svarer du et annet tall. Variabelen er den samme «alder», men mengden vil øke.
Et annet hverdagseksempel er handlekurven din i en nettbutikk. «Antall varer» i handlekurven er en variabel som øker eller minker etter hvert som du legger varer i kurven eller ombestemmer deg og sletter varer. På samme måte er «totalbeløp» i handlekurven en variabel som endrer seg. Man kunne laget et program som skal hjelpe deg med å bruke mindre penger på shopping, med et vilkår som sier at HVIS variabel «totalbeløp» overstiger 1000 kr, sett på varsel om at du ikke kan handle mer.
Vilkår
Vilkår brukes i programmering når vi står ovenfor beslutninger som kan ha ulike utfall. Begrepet betingelser brukes av og til om det samme. Vi kan lage vilkår med hvis – så struktur (if-setninger) for å få programmet til å kjøre en rekke kommandoer hvis vilkåret er sant. Hvis x skjer, skal datamaskinen utføre en bestemt handling. Hvis y skjer, skal datamaskinen gjøre noe annet. Vi kan tenke på dette som en slags test: Er «hvis-kriteriet» oppfylt eller ikke?
Under ser du lenker til tre ulike aktiviteter/tilnærminger til vilkår.
Eksempel 1: Aktivitet med hvis-setninger.
Man kan også legge inn faglig innhold, som i dette eksempelet om FN-dagen.
Eksempel 2: Vilkår i hverdagen
Eksempel 3: Lek med vilkår