
Variabler og kontrolstrukturer
Sætning
Et program består af en masse sætninger. Det er programmeringssprogets grundelementer og udtrykker en form for handling. En sætning udtrykker en handling i programmet. I Scratch genkendes sætninger som blokke, der kan stables oven på hinanden, dvs. hver blok er en sætning.
Syntaks
Ligesom i sprog beskriver syntaks den korrekte form og rækkefølge på en sætning i kode. I de fleste programmeringssprog er det vigtigt, i hvilken rækkefølge kommandoerne kommer. Hvis vi fx ser på sætningen “Vandrer hest det os dem” er alle ordene korrekte, men sætningen er forkert, fordi rækkefølgen af ordene ikke giver sprogligt mening.
I Scratch får man meget hjælp til syntaksen pga. programmets opbygning, hvor dele sættes sammen som i et puslespil. I kan stadig lave syntaksfejl, men I bliver hjulpet meget.
Her er et eksempel fra ‘Katten-efter-musen’ som du kender fra introduktionen til Scratch. Læg mærke til hvordan sætningerne “passer sammen” og hvordan nogle dele kan sættes ind i sætninger og andre ikke kan ift. form.

Variabler
En vigtig del af et program er de data, som i en eller anden form bliver brugt og udvekslet med brugeren. I et program repræsenteres data i en såkaldt variabel. En variabel kan gemme én værdi, og kun én. Det kan være et tal, et ord, et navn osv. I kan betragte en variabel som en kasse, hvor man kan putte noget i for at gemme det til senere brug. En variabel kan ændre værdi afhængig af input. Dvs. hvis der indsættes en ny værdi bliver den oprindelige værdi slettet.
For at et program kan arbejde med data, er computeren nødt til at reservere en del af hukommelsen til arbejdet. Derudover skal variablen have et navn, så det er muligt at henvise til den.
En variabel kan grundlæggende bruges på tre måder:
- Den kan erklæres, hvilket betyder at der skabes plads i hukommelsen samt gives et unikt navn.
- Den kan tildeles en værdi.
- Dens værdi kan anvendes.
I videoen kan I se mere om, hvordan variabler kan anvendes i Scratch til at gemme tal for at bruge dem til et output.
Øvelse i variabler 1
Modificer lysmåler-programmet fra Øvelse i rutediagram 2, så det gemmer svar i en variabel. I kan se det oprindelige program nedenfor. Husk at erklære en ny variabel med et sigende navn, fx lysmåling.

Øvelse i variabler 2
Lav et program, som spørger brugeren om navnene på to af deres klassekammerater. Programmet skal derefter sige “Du går i klasse med XX og XX”. For at gøre dette skal I oprette 2 variabler, som erklæres med sigende navn, fx elev1 og elev2.
Vær opmærksom på, at hver variabel skal tildeles værdien svar efter hvert spørgsmål (se nedenstående eks.). For at programmet kan lave outputtet “Du går i klasse med “variabel1” og “variabel2”, skal I bruge 3 tilkobles, som I finder under Operatorer (se nedenstående eks.). Vær opmærksom på, at output hermed bliver uden mellemrum. Hvis I vil have mellemrum mellem ordene, skal I bruge flere tilkobles.

Kontrolstrukturer
Kontrolstrukturer er grundlæggende principper i programmering, der styrer rækkefølgen og betingelserne for, hvordan kode udføres. Disse principper gør det muligt at skabe dynamiske og effektive programmer, der kan udføre komplekse operationer.
Kontrolstrukturer kan opdeles i 3 hovedtyper:
- Sekvens (trin-for-trin udførelse)
- Forgrening (betingede valg som if-then-else)
- Løkke (også kaldet iteration)
Sekvens
Sekvens er den mest grundlæggende kontrolstruktur i programmering, hvor koden udføres linje for linje i den rækkefølge, den er skrevet. Der er ingen spring, betingelser eller gentagelser – hver linje udføres én efter en i rækkefølge. Det er den mest simple af de 3 kontrolstrukturer.
Her er et eksempel på en sekvens i scratch:

Øvelse i rutediagram 2
Lav et rutediagram over ovenstående program.
Forgrening
Forgrening er en kontrolstruktur i programmering, der bruges til at træffe valg baseret på betingelser. Programmet evaluerer en betingelse (typisk en sammenligning, fx om en værdi er større (>) eller mindre (<) end eller lig med (=) en anden) og udfører derefter enten den ene eller den anden del kode. Forgrening gør det muligt for programmer at reagere forskelligt afhængigt af input eller tilstand.
En betingelse er et udtryk som ved evaluering bliver sandt eller falsk. En betingelse anvendes i en forgrening eller en løkke. Som det fremgår af definitionen, indgår en betingelse i forgreninger. En betingelse kan f.eks. være antal> 100. Hvis denne betingelse er sand, udføres den efterfølgende blok af kode. Hvis betingelsen er falsk, springes kodeblokken enten over eller der vælges den anden kodeblok.
Der er 2 typer forgreninger – Hvis-så (if-then) forgreninger, som udfører en blok kode, hvis betingelsen er sand. – Hvis-så-ellers (if-the-else) forgreninger, som udfører en blok kode, hvis betingelsen er sand, ellers udfører den en anden blok kode. |
I et rutediagram kan de tegnes således.

I Scratch ser de således ud.

Her er et eks. på et mindre program som bruger en hvis-så-ellers forgrening.

Øvelse i forgrening
Lav et program, som tillader brugeren at indtaste sin alder, hvorefter programmet skal vurdere om brugeren er gammel nok til at tage kørekort.
Tag et screenshot af koden og tilføj den til jeres logbog.
Løkke (iteration)
En løkke er en kontrolstruktur i programmering, der gentager en blok af kode flere gange, enten et bestemt antal gange eller indtil en betingelse ikke længere er opfyldt. Løkker bruges til at automatisere gentagne opgaver og gøre koden mere effektiv.
En løkke har ligheder med en forgrening. I begge bliver en betingelse evalueret som sand eller falsk. I en forgrening afvikles en række instruktioner én gang, hvis betingelsen er sand. I en løkke afvikles en række instruktioner så længe betingelsen er sand eller så mange gange, den er blevet bedt om det.
Der er to typer løkker: – For-løkker, som gentager koden et bestemt antal gange. – While-løkker, som gentager koden så længe betingelsen er sand. |
I et rutediagram kan de tegnes således.

I Scratch ser de således ud.

Her er et eks. på et mindre program som bruger en for-løkke.

Her er et eks. på et mindre program som bruger en while-løkke.

Øvelse i løkke 1
Lav et program i Scratch, som siger “Jeg gentager ofte mig selv” 20 gange.
Tag et screenshot af koden og tilføj den til jeres logbog.
Øvelse i løkke 2
Lav et program i Scratch, som beder brugeren om at svare på resultatet af 12 divideret med 3 (12 / 3), og bliver ved med det indtil brugeren kommer med det korrekte svar, hvorpå programmet svarer “Det er korrekt!”.
Tag et screenshot af koden og tilføj den til jeres logbog.
Opsamlingsøvelser til variabler, forgrening og løkker
Øvelse i programmering 1
Lav et program, som beder brugeren indtaste 3 karakterer. Programmet skal på baggrund af de tre karakterer beregne en gennemsnitskarakter. Hvis gennemsnittet er større end (>) eller lig med (=) 2, skal brugeren have beskeden “bestået”, ellers skal brugeren have beskeden “ikke-bestået”.
Tag et screenshot af koden og tilføj den til jeres logbog.
Øvelse i programmering 2
Lav et program, som beder brugeren indtaste 5 tal mellem 0 og 20. Programmet skal desuden addere tallene og foretage en vurdering af summen ud fra nedenstående kriterier:
Hvis summen af de indtastede tal < 20 skal brugeren have beskeden: “Ikke-tilfredsstillende”.
Hvis summen af de indtastede tal >= 20 og < 40 skal brugeren have beskeden: “Tilfredsstillende”.
Hvis summen af de indtastede tal >= 40 og < 60 skal brugeren have beskeden: “Flot”.
Hvis summen af de indtastede tal >= 60 og < 80 skal brugeren have beskeden: “Udmærket”.
Hvis summen af de indtastede tal >= 80 og <= 100 skal brugeren have beskeden: “Fremragende”.
Programmet skal desuden kontrollere, at de indtastede tal opfylder betingelsen >=0 og <= 20. Gør de ikke det, skal brugeren have beskeden “Der er fejl i indtastningen”.