3 Om algoritmer
En algoritm är en metod för att lösa ett problem. Metoden består av ett antal enkla instruktioner. Givet förutsättningarna leder metoden efter ett ändligt antal instruktioner till ett resultat. Algoritmen beskriver problemlösningen för en maskin. Alltså beskriver den verkliga problem med ett konstlat (pseudo) språk. Algoritmbeskrivningen visualiserar en övergripande idé av hur ett program eller maskin skall lösa ett problem. Vardagliga exempel på algoritmbeskrivningar är möbelmonteringsanvisningar eller matrecept.
För att beskriva algoritmer i programmering använder man sig av antingen pseudokod eller strukturdiagram. Pseudokod är ett språk som kan anses vara ett mellanting mellan ett programspråk och vårt vardagliga tal. Det är formellare än vår svenska men inte lika strikt i sin syntax som ett riktigt programmeringsspråk. Tanken med pseudokod är att det ska ge en god beskrivning av en algoritm oavsett vilket programmeringsspråk den tänkta läsaren är bekant med. Strukturdiagram är en mer visuell representation av en algoritm. Dessa diagram ska ge överblick och hjälpa oss människor att förstå exekveringen av instruktionerna.
Strukturdiagrammen och pseudokoden byggs upp av de tre delarna sekvens, selektion och iteration. Dessa delar kallas kontrollstrukturer (mer om dessa i kommande kapitel).
Ett strukturdiagram ritas alltid med en start
och ett slut
(i ovala figurer). Sekvenser ritas i boxar och uttryck i diamantfigurer. Flödet i diagrammet anges med pilar. S och F i figuren står för sant respektive falskt - vilken väg man skall gå beror på värdet av det uttryck som är aktuellt.
Uttryck skrivs i både pseudokod och strukturdiagram som om <villkor> så
(selektion) och så länge <villkor>
(iteration). Det enklaste och snabbaste sättet att skapa strukturdiagram är att använda penna och papper. När man skriver pseudokod är det viktigt att vara noga med indrag (indentering) eftersom dessa visar hur algoritmen fungerar.
Även när man skriver pseudokod finns start
och slut
med. Kodstyckena däremellan är indragna ett steg (och ytterligare steg vid iteration och selektion, se kommande kapitel).
start
instruktion 1
instruktion 2
instruktion 3
slut
I nästa kapitel tittar vi närmare på att skapa algoritmer utifrån de tre kontrollstrukturerna sekvens, iteration och selektion med hjälp av strukturdiagram, pseudokod och källkod (C#-kod).