{{ toc.name }}
{{ toc.signature }}
{{ toc.name }} {{ 'ml-btn-view-details' | message }}
{{ stepNode.name }}
{{ 'ml-toc-proceed' | message }}
Lektion
Övningar
Rekommenderade
Tester
Ett fel uppstod, försök igen senare!
Kapitel {{ article.chapter.number }}
{{ article.number }}. 

{{ article.displayTitle }}

{{ article.intro.summary }}
{{ 'ml-btn-show-less' | message }} {{ 'ml-btn-show-more' | message }} expand_more
{{ 'ml-heading-abilities-covered' | message }}
{{ ability.description }} {{ ability.displayTitle }}

{{ 'ml-heading-lesson-settings' | message }}

{{ 'ml-lesson-show-solutions' | message }}
{{ 'ml-lesson-show-hints' | message }}
{{ 'ml-lesson-number-slides' | message : article.intro.bblockCount}}
{{ 'ml-lesson-number-exercises' | message : article.intro.exerciseCount}}
{{ 'ml-lesson-time-estimation' | message }}

Datorer idag är väldigt kraftfulla och har en enorm bredd av användningsområden, men för att kunna utnyttja den här kraften måste datorn först förstå vad den ska göra. Det går inte att bara säga åt den att lösa ett problem, utan man måste ge tydliga instruktioner som förklarar hur den ska göra. Att formulera sådana instruktioner är att programmera.

Intro algoritmer 1 p.svg
Innan man börjar skriva program är det dock viktigt att komma in i rätt sätt att tänka. Datorer är ganska petiga när det gäller instruktioner, och små fel eller otydligheter kan få programmet att göra helt fel eller kanske inget alls. På den här sidan kommer du därför att få träna på att skriva algoritmer, alltså instruktioner för att lösa ett problem eller utföra en uppgift.

Begrepp

Algoritm

Inom matematik och programmering är en algoritm en serie instruktioner för att uppnå något. I skolan får man t.ex. lära sig en algoritm för addition genom uppställning, och senare -formeln som är en algoritm för att lösa andragradsekvationer. Algoritmer kan liknas vid recept, där tydliga steg måste utföras i en viss ordning för att det ska bli rätt. Ta t.ex. ett recept på havregrynsgröt.

Blanda 1 dl havregryn med 2 dl vatten och 1 krm salt i en kastrull.
Koka upp blandningen och låt sjuda tills gröten är tillräckligt tjock.

Recept behöver inte vara mer detaljerade än så, men en algoritm är ofta väldigt specifik. Receptet skulle kunna göras mer som en algoritm genom att dela upp stegen så här.

Ställ fram en kastrull.
Häll 2 dl vatten i kastrullen.
Häll 1 dl havregryn i kastrullen.
Häll 1 krm salt i kastrullen.
Blanda innehållet i kastrullen.
Ställ kastrullen på en spis.
Sätt spisens temperatur på medelhög värme.
Vänta tills blandningen kokar.
Sänk temperaturen till låg värme.
Rör om tills gröten når önskad konsistens.
Man kan förfina algoritmen ytterligare genom att dela upp instruktionerna igen. I det här fallet kan det kännas lite onödigt men inom matematik och programmering är det viktigt att alla instruktioner är detaljerade och entydiga.

Exempel

Skriv algoritmen

fullscreen

Skriv en algoritm som beskriver hur man beräknar arean av en kvadrat om man känner till dess omkrets.

Visa Lösning expand_more

Arean av en kvadrat beräknas genom att multiplicera sidlängden med sig själv, så först måste vi bestämma dess sidlängd. Eftersom vi känner till kvadratens omkrets kan vi dividera den med för att få sidlängden. Det blir vårt första steg.

Dividera omkretsen med 4.

För att beräkna arean upphöjer vi sedan resultatet till Det blir andra steget.

Dividera omkretsen med 4.
Upphöj resultatet till 2.

Det är allt man behöver göra för att beräkna arean baserat på omkretsen, så vår algoritm är färdig.

Begrepp

Verktyg för algoritmer

När man skriver algoritmer måste man ibland ta en mer komplicerad väg genom instruktionerna än att bara gå igenom dem steg för steg. Det kan t.ex. vara så att vissa instruktioner bara ska göras ibland eller att vissa ska upprepas.

Begrepp

Upprepning

Om en algoritm innehåller något som ska göras flera gånger kan man markera upprepningen i instruktionerna istället för att skriva samma sak gång på gång. Ibland kanske man inte ens vet hur många gånger stegen ska upprepas när algoritmen skrivs. Om man t.ex. ska skriva en algoritm för att skala morötter kan man använda något i stil med följande.
Ta fram morötter.
Upprepa för varje morot: Skölj av moroten. Skär av blasten. Skala moroten.

Här ska de indragna instruktionerna, dvs. de som står längre in på raderna, göras för varje morot. Har man t.ex. morötter kommer alltså rad till upprepas gånger.

Begrepp

Villkor

Om en algoritm innehåller steg som bara ska göras under vissa omständigheter kan man införa ett villkor. Om man ska ut och cykla behöver man förmodligen inte pumpa däcken varje gång, så en algoritm för förberedelserna skulle kunna se ut på följande sätt.
Ta fram cykeln.
Om det är dåligt med luft i däcken: Pumpa däcken.
Sätt dig på cykeln och åk.
Här gör man ett val i rad baserat på hur mycket luft det finns i däcken. Är det för lite luft går man till rad och pumpar dem, annars går man direkt till rad

Exempel

Använd algoritmen

fullscreen

Följande algoritm tar ett tal och gör en beräkning baserat på det.

Multiplicera talet med 3.
Subtrahera 12 från resultatet.
Om resultatet är jämnt: Dividera resultatet med 2.
Upphöj resultatet till 2.

Vad får man om man använder algoritmen på talet

Visa Lösning expand_more
För att använda algoritmen går vi igenom stegen i ordning och utför instruktionerna. Först ska vi alltså multiplicera vårt tal med
Vi tar sedan resultatet och subtraherar
Sedan ska vi dividera med om det resultat vi fick från föregående steget är jämnt. Vårt resultat är inte jämnt så vi går vidare utan att göra något. Till sist ska vi upphöja resultatet till
Algoritmen ger alltså resultatet för talet