Gå direkt till kursmenyn Gå direkt till innehållet

Vad är en algoritm?

En algoritm är en instruktion som löser ett problem eller en uppgift. Ett datorprogram består av mängder av algoritmer och kan bestå av ett fåtal kodrader till flera miljoner rader. Algoritm i sig är en matematisk funktion och fungerar således bra ihop med datorer som gillar matematisk tydlighet.

När en dator utför en algoritm så läser datorn algoritmen rad för rad efter varandra, precis som när du läser en bok. Skriver man en algoritm är det viktigt att vara tydlig så att datorn vet exakt vad den ska göra och i vilken ordning. Algoritmer behöver vara exakta, fullständiga och i rätt ordning. I sammanhanget kan det vara viktigt att förtydliga att med dator menas här också mobiltelefoner och olika typer av webbtjänster, till exempel en sökmotor, som alla i sig är eller använder datorkraft.

Tre grundprinciper för algoritmer

Algoritmen behöver vara exakt. En dator kan inte förstå eller gissa av sig självt om du råkar stava fel i din instruktion eller om du bara säger på ett ungefär hur något ska göras. Om du vill att en robot ska göra en bra pannkakssmet behöver du beskriva exakta antal och mått på hur många ägg och hur mycket mjölk, mjöl, salt och så vidare som behöver användas, annars blir det en konstig smet.

Algoritmen behöver vara fullständig. Datorn kan inte förstå eller gissa sig till vad den ska göra om det saknas information i instruktionerna den fått, om du exempelvis glömt skriva ut ett tecken eller någon sak som datorn ska utföra. Den kan inte tolka ofullständiga meningar eller fylla i kunskap på samma sätt som en människa ofta kan. Alla moment är viktiga och måste beskrivas i detalj. Om du säger “knäck ägg ned i skålen” till pannkaksroboten så vet den inte att äggskalet aldrig ska tas med i smeten – den behöver få en fullständig instruktion.

Algoritmen behöver vara i rätt ordning. Datorn kan inte förstå av sig självt om den borde göra något i en annan ordning än vad som står i instruktionen. Därför är det viktigt att ordningen är rätt, för vad skulle hända om pannkaksroboten först knäckte äggen direkt i den varma stekpannan och sen hällde resten av ingredienserna ner i skålen? Istället för pannkakor skulle du få stekt ägg med en smet i skål bredvid.

I den roliga videon nedan testar en pappa sina allt mer frustrerade barns förmåga att formulera en algoritm för att göra en jordnötssmör- och sylt-macka.

Delar av texten ovan kommer ursprungligen från Kodboken som är licensierad enligt CC-BY-NC-SA. Texten är lätt reviderad.

I den här roliga videon testar en pappa sina allt mer frustrerade barns förmåga att formulera en algoritm för att göra en jordnötssmör- och sylt-macka.  Publicerad av Josh Darnit på Youtube. 

Övning

Skapa en algoritm för hur man loggar in på sin dator och kollar sin e-post. Testa algoritmen på en kollega som ska utföra instruktionerna till punkt och pricka.