Nyckelord: Algoritmer, Flödesscheman, Pseudokod, Arbetsbeskrivning
Den här sidan kommer förklara vad en algoritm är och hur man använder dem när man programmerar. Vi kommer även se hur vi använder både flödesscheman och pseudokod för att illustrera och strukturera en algoritm.
En algoritm är en metodisk och exakt beskrivning av hur man löser ett problem. Definitionen av en algoritm är en stegvis procedur av väldefinierade exekverbara instruktioner avsedda att utföra en uppgift eller lösa ett problem. En algoritm har många liknelser med ett program där skillnaden är att vi kan beskriva algoritmer oberoende av programspråk.
En algoritm kan ses som en arbetsbeskrivning på hur vi ska lösa ett problem och beskriver i vilka steg programmet ska göra vad. Det är viktigt att komma ihåg är att det oftast finns många algoritmer för att lösa samma problem, och ofta gäller det att resonera sig fram till det enklaste och mest effektiva sätt som löser problemet.
En algoritm kan ses som en arbetsbeskrivning på hur vi ska lösa ett problem.
Vid enklare problemlösning klarar man sig genom att ha sin algoritm i huvudet men i takt med att svårighetsgraden och komplexiteten på uppgifterna ökar så är det nästintill nödvändigt att tänka igenom sin algoritm noggrant innan man börjar koda. Så ett bra tips är att ha för vana att rita upp eller skriva ned lösningsgången för uppgiften.
Vid första anblick när man ska skapa en ny algoritm, kan det vara komplicerat att få en uppfattning hur man ska börja och hur allt hänger ihop. Att ställa upp en algoritm är kreativ process som kräver problemlösningsförmåga och struktur. Till vår hjälp för att göra det enklare att få ett grepp om problemet framför oss kan vi använda flödesscheman och pseudokod. Dessa hjälpmedel är inte bara fördelaktiga att använda för din egen skull, utan även om du vill förklara och diskutera din tänkta lösning med till exempel en vän eller en kollega.
För att visualisera algoritmer, brukar man rita ett så kallat flödesschema (engelska: flowchart) som hjälper till att visa vad för typ av handling som programmet ska utföra. De tre vanligaste symbolerna i ett flödesschema och när man använder dem är:
Vill du rita dina egna flödesscheman så rekommenderar vi draw.io som är en gratis sida online för att rita olika typer av figurer och diagram. Vi har använt draw.io för att rita de illustrationer som vi använder i exempeluppgifterna längre ner på denna sida.
Pseudokod (engelska: Pseudocode) är i datorprogrammering en programkodsliknande text som används för att beskriva hur algoritmen bör vara formulerad.
Man skulle kunna beskriva pseudokod som en ”kod-skiss” eller ”låtsaskod”, vanligen skriven i punktform, på hur en algoritm struktureras. Relaterat till flödesscheman som vi såg innan så kan pseudokod beskrivas som ett flödesschema i textform.
Det finns ingen generell standard för pseudokod utan det viktiga är att man är konsekvent. I pseudokod utelämnar man ofta detaljer som inte är kritiska för förståelsen, utan fokuserar snarare på att övergripande beskriva algoritmen. Viktigt också att man inte försöker göra det mer komplicerat än vad det behöver vara, vilket kanske kan vara lättare sagt än gjort. En bra tumregel kan vara att tänka att pseudokoden, likt flödesschemat, är till för att hjälpa dig, inte stjälpa. Ju enklare och mer lättläst de är, desto större chans är det att du skriver rätt kod från början.
Det finns ingen generell standard för pseudokod utan det viktiga är att man är konsekvent
Nedan ska vi se två enklare exempel på hur en algoritm fungerar. Vi ska självklart använda de två hjälpmedel vi har tagit upp, flödesscheman och pseudokod. Låt oss börja med ett exempel för en algoritm för en termometer.
Här ska vi ta fram en algoritm för en termometer som mäter en temperatur. Vi vill skapa ett program som startar ett element om temperaturen är under 10 grader. Däremot, om temperaturen är över 10 grader så ska ingenting hända med elementet och programmet ska då vänta 30 minuter innan det kollar temperaturen igen.
Om vi skriver ned det med pseudokod så får vi:
Om vi sedan använder ett flödesschema för att visualisera det:
Låt oss ta ett till exempel. Vi ska skriva en algoritm som beroende på om det regnar och i sånna fall hur mycket, ska starta vindrutetorkarna på en bil. Till vår hjälp har vi en regnsensor som mäter hur mycket regn det kommer.
Om det regnar under 0,5 mm/h (millimeter per hour) så känner inte sensorn av det och vindrutetorkarna ska inte starta. Regnar det mellan 0,5 mm/h och 4 mm/h så ska vindrutetorkarna starta på låg effekt. Regnar det över 4 mm/h så ska vindrutetorkarna köra igång på max effekt. Slutligen, eftersom vi vill spara på datorkraft och ström ska vi bara läsa av sensorn varannan minut.
Okej, vi tar det steg för steg och skriver ned det i pseudokod, alltså en arbetsbeskrivning.
Vi tar och ritar det med ett flödesschema också
När man programmerar underlättar det ofta om man skissar på en algoritm innan man börjar koda. Antingen kan man skriva ner steg för steg på instruktioner som programmet ska utföra, alternativt kan man rita upp ett flödesschema när man har mer komplexa problem att lösa.
Sammanfattning av algoritmer:
En algoritm kan ses som en arbetsbeskrivning på hur vi ska lösa ett problemet och beskriver i vilken ordning saker och ting på den arbetsbeskrivningen ska utföras. Med en mer formell beskrivning så är definitionen av en algoritm en stegvis procedur av väldefinierade exekverbara instruktioner avsedda att utföra en uppgift eller lösa ett problem.
Nej. Det är ett hjälpmedel som ska underlätta när du programmerar att strukturera din kod och få en överblick över hur alla delar hänger ihop. Det är inget måste utan enbart ett hjälpmedel du kan använda dig av.
Det finns ingen generell standard för pseudokod utan det viktiga är att man försöker vara tydlig och konsekvent. En bra tumregel kan vara att tänka om någon bekant med motsvarande kunskap som du skulle förstå din pseudokod. Med andra ord, hålla det enkelt och tydligt så att någon annan kan förstå din pseudokod.
Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!