Et program skrevet i et programmeringssprog består af sætninger.
En sætning er et programmeringssprogs grundelement.
En sætning udtrykker en handling.
I Scratch genkendes sætninger som blokke, der kan stables oven på hinanden.
Sætning
En sætning er et programmeringssprogs grundelement, der udtrykker en handling.
Ligesom i sprog beskriver syntaks den korrekte form på en sætning i kode.
I de fleste programmeringssprog er det vigtigt, i hvilken rækkefølge kommandoerne kommer.
Sætninger i naturlige sprog kan være mere eller mindre korrekte.
Se på følgende to sætninger:
"Hygjik alpif gutre"
"Vandrer hest det os dem"
Den første sætning består slet ikke af ord fra et naturligt sprog, og den anden sætning består ganske vist af ord fra det danske sprog, men sætningen giver ikke logisk mening.
Ingen af de to ovenstående sætninger er syntaktisk korrekte, hvis vi tager udgangspunkt i det danske sprog.
Vi vil gerne lave syntaktisk korrekte sætninger i vores programmer. Det kan de forskellige editorer, som vi skriver koden i, hjælpe med ved f.eks. at bruge farver.
I Scratch udgør blokkene nøgleord, for eksempel "Når denne sprite klikkes" og er dermed afhængig af det valgte sprog (dansk eller engelsk).
Sætningen "Højden på farven har en anden lyd" er syntaktisk korrekt, men giver ingen logisk mening. Vi vil gerne have, at de sætninger vi skriver i vores programmer giver mening, men her kan editorerne ikke hjælpe. Hvis vi skriver programsætninger, der dividerer med 0 eller på anden måde ikke giver mening, kan vi først ved test opdage denne type fejl.
I Scratch får man meget hjælp til syntaksen pga. programmets opbygning, hvor dele sættes sammen som i et puslespil.
Her er et eksempel fra 'Katten-efter-musen' som du kender fra introduktionen til Scratch:
Syntaks
Syntaks beskriver den grammatisk korrekte form på en sætning i sproget.
En vigtig del af it-systemer er de data, som i en eller anden form bliver manipuleret (ændret) i it-systemet og udvekslet med brugeren.
I et program repræsenteres data i en variabel. For at få en forståelse af, hvilke variable der kan indgå i et program, betragter vi et eksempel på et velkendt it-system.
Eksempel: Variable i Facebook
Facebook behandler hvert sekund store mængder af data. I kørslen af de programmer, som resulterer i de viste hjemmesider, benyttes variable til midlertidigt at gemme dataværdier, som i sidste ende skal vises på skærmen eller gemmes i en database.
Eksempelvis vil der i programmet være en variabel, som indeholder dit navn øverst i Facebook. Derudover kunne der være en variabel, som indeholder antallet af notifikationer.
Variabel
En variabel er et navn og et stykke lagerplads, som kan indeholde en værdi.
En variabel kan ændre værdi i et program afhængigt af input.
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 og eventuelt en datatype (se mere i afsnittet Datatyper).
Den kan tildeles en værdi.
Dens værdi kan anvendes.
Se videoen og lær om variabler og hvordan de kan bruges i din programmering.
En vigtig del af programmering er styringen af rækkefølgen sætningerne i programmet afvikles og på hvilket tidspunkt.
Dette kaldes også kontrolstrukturer.
En kontrolstruktur er en sætning i et programmeringssprog, der styrer den rækkefølge, et programs sætninger udføres.
Der er 3 kontrolstrukturer:
Sekvens
Forgrening
Løkke (også kaldet iteration og loop)
Kontrolstruktur
En kontrolstruktur er en sætning i et programmeringssprog, der styrer den rækkefølge, et programs sætninger udføres.
En sekvens er en simpel kontrolstruktur til at udføre en liste af sætninger i rækkefølge.
Hver sætning bliver kørt en efter en i rækkefølge. Dette er den mest simple af de 3 kontrolstrukturer.
Her er en sekvens beskrevet i et rutediagram:
Sekvens
I videoen præsenteres kontrolstrukturen sekvens i Scratch.
Det er sjældent nok at bruge en enkelt sekvens i et program. Vi ønsker, at et programs kørsel bevæger sig i forskellige retninger afhængig af en given betingelse.
Forgrening er en kontrolstruktur, som udfører en række sætninger, hvis en given betingelse er sand.
Betingelse
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 over.
Der er to typer forgreninger.
Enten kan du bruge en 'Hvis - så'-forgrening eller også kan du bruge en 'Hvis - så - ellers'-forgrening.
De to former for forgrening er vist her:
De to diagrammer herover visualiserer forløbet ved de to typer betingelser.
Én gren: Hvis betingelsen A er sand, udføres blok B.
To grene: Hvis betingelsen A er sand, udføres blok B. Ellers udføres blok C.
Forgrening i Scratch
I Scratch anvendes blokken til højre til en forgrening med to grene. Den indsatte kode i det første indhak bliver udført, hvis betingelsen øverst er sand, og den indsatte kode i det andet indhak bliver udført, hvis betingelsen er falsk.
Se de to videoer om forgreninger nedenfor.
I videoerne gennemgås et eksempel på en forgrening.
Videoen 'Forgrening#1' afsluttes med en lille øvelse til dig.
Den skal du forsøge at løse, inden du ser videoen 'Forgrening#2'.
Forgrening#1
Forgrening#2
En computer kan programmeres til at udføre præcis den samme handling, eller varianter af den samme handling, i et vilkårligt antal gange. Dette kaldes en løkke (loop) eller iteration.
En løkke er en kontrolstruktur til at gentage en række instruktioner, så længe en given betingelse er sand.
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 alle de gange, hvor betingelsen er sand.
En løkke kan derfor betragtes som en forgrening, som hele tiden springer tilbage til betingelsen.
Man benytter typisk to forskellige typer løkker:
En while-løkke er en kontrolstruktur, hvor en blok af sætninger gentages, så længe en given betingelse er sand.
En for-løkke er en kontrolstruktur, hvor en blok af sætninger gentages for hvert tal i et interval eller hvert element i en datastruktur.
På figuren vises en while-løkkens generelle opbygning. En betingelse A evalueres til sandt eller falsk. Hvis A er sand, udføres blokken af sætninger B, og A evalueres på ny. Dette fortsætter, indtil A er falsk.
Jeg gentager ofte mig selv
Lav et rutediagram over et program med en løkke, der 20 gange skriver ”Jeg gentager ofte mig selv”.
Lav herefter programmet i Scratch.
Du skal tage et billede af det færdige program og sætte billedet ind i din logbog.
Beskriv hvad der sker i hvert trin/linje i dit program. Dette skriver du også i din logbog.
Folketingsvalg
Du skal lave et program, som beder brugeren indtaste sin alder. Hvis personen er under 18 år, skal der vises beskeden: "Du må ikke stemme ved folketingsvalg.".
Ellers skal der vises beskeden: "Du må gerne stemme ved folketingsvalg.".
Lav et rutediagram over dit program
Lav programmet i Scratch
Dokumenter programmet med et skærmdump i din logbog
Lav en kort forklaring til hver linje i dit program i din logbog.
Husk at skrive et refleksionsskriv i din logbog, hvor du forklarer, hvad du har arbejdet med i lektion 2, hvad du har lært og hvilket udfordringer, du er stødt på.
Bestået/ikke-bestået
Lav et program, som beder brugeren indtaste 3 karakterer.
Programmet skal på baggrund af de tre karakterer beregne en gennemsnitskarakter.
Hvis gennemsnittet er >= 2, så er brugeren bestået. Ellers er brugeren ikke-bestået.
Brugeren skal enten have beskeden "Bestået" eller "Ikke-bestået".
Programmet laves i Scratch og dokumenteres med et skærmdump i din logbog.
Lav en kort forklaring til hver linje i dit program i din logbog.
Beregnet vurdering
Lav et program, som beder brugeren indtaste 5 tal mellem 0-20
Programmet skal på baggrund af de indtastede tal beregne en vurdering:
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"
Bemærk: I skal kontrollere, at de indtastede tal opfylde betingelsen >=0 og <= 20. Gør de ikke det, er der fejl i indtastningen.
Lav et rutediagram over programmet.
Lav programmet i Scratch og dokumenter med et skærmdump i din logbog.
Skriv en kort forklaring til hver linje i dit program i din logbog.
Husk at skrive et refleksionsskriv i din logbog, hvor du forklarer, hvad du har arbejdet med i lektion 2 og 3, hvad du har lært og hvilket udfordringer, du er stødt på.
Gå til Lektion 4