You are on page 1of 5

 

Så länge som man jobbar med små, enkla program kan man
skriva koden direkt. När programmen blir större och mer
komplexa ökar behovet av strategi och förberedelse. Innan
man börjar med själva kodskrivandet måste man skissera
programmet, vilket vi ska beröra i detta avsnitt.

Den enklaste formen av "kod-skiss" brukar kallas


pseudokod. Denna "låtsaskod" innebär att du på vanlig svenska skriver
programkoden. Man kan då i punktform skriva varje steg i programmet,
ungefär som satser i en källkod. Vanligtvis gör man först en "grov skiss",
d.v.s. skriver programmets pseduokod utan att närmare beröra detaljer. Sedan
"slipar och filar" man på pseudokoden och blir mer och mer detaljerad för
varje gång man går igenom koden. Slutprodukten skall helst vara så
detaljerad att man kan ha den som en mall för källkoden, d.v.s. tankearbetet
ska vara klart och kodskrivandet blir i stort sett bara att översätta
pseudokoden till källkod.

Antag att du ska skriva ett program som kontrollerar ifall inmatade tal är
jämna eller udda. Pseudokoden skulle då kunna se ut så här:

Pseudokod - version 1

 Hämta in tal från användaren


 Kontrollera om talet är udda eller jämnt
 Meddela resultatet av kontrollen

Pseudokod - version 2 (lite mer detaljerad)

 Uppmana användaren att mata in ett tal


 Hämta in tal från användaren
 Kontrollera om talet är jämnt.
 .. i så fall meddela det på skärmen
 .. i annat fall meddela att talet är udda

Version två av pseudokoden är här den något mer bearbetade och detaljerade
koden. Här kan man även se hur det är tänkt att kontrollen av udda eller jämnt
ska gå till. Tankearbetet är färdigt och allt som återstår är att översätta det
hela till programkod. Nedan kan du jämföra programkoden med
pseudokoden.

 
 

Psudokod har sina begränsningar, men är ett enkelt sätt att skissera program.
När programmen blir mer komplexa är pseudokod inte så användbart och ger
heller inte så bra överblick över programmet. Då finns det andra metoder som
passar bättre.

Flödesdiagram är en grafisk bild av ett program, vilket ger en bra överblick


av hur programmet är uppbyggt. Man kan använda sig av flödesdiagram för
att skissera upp ett program man ska konstruera, eller man kan använda
diagrammet för att dokumentera ett program man redan gjort. I det
sistnämnda fallet kan flödesdiagram vara till god hjälp när man analyserar ett
program i syfte att modifiera och/eller förbättra det. Det finns till och med
programvara som översätter källkod till flödesdiagram vilket är mycket
praktiskt när man ska dokumentera sitt arbete. Nackdelen med flödesdiagram
är att det inte lämpar sig så väl för klassuppbyggda, händelsestyrda program,
men vi har en bit kvar innan vi når dit så ännu fungerar flödesdiagram bra.

Ett flödesdiagram är vanligtvis en ganska detaljerad beskrivning av ett


program, men det finns olika sätt att göra det på. Det beror på att det finns
olika skolbildningar för hur flödesdiagram ska skrivas samt vilka symboler
som ska användas. Tack och lov är skillnaderna inte så stora så kan man en
form av flödesdiagram kan man oftast utan större problem tolka andra typer
av flödesdiagram.

Innan vi går in på hur man skapar ett flödesdiagram tar vi ett enkelt exempel,
så du kan se hur ett diagram kan se ut.

 
Källkod Flödesdiagram
#include <iostream>

using namespace std;

int main()
{
   cout<<"Ange ett tal"<<endl;
   int tal;
   cin>>tal;
   if(tal>9) cout<<"Stort
tal!!"<<endl;
   else cout<<"Litet tal"<<endl;
   return 0;
}

Som framgår av exemplet ovan så består ett flödesdiagram av olika symboler


sammanbundna med pilar. I symbolerna skriver man en kortfattat text som
beskriver vad som symboliseras. På de efterföljande sidorna ska vi titta
närmare på vad symbolerna betyder och hur man skapar ett flödesdiagram.

Nedan ser du en uppställning av de symboler som här används till


flödesscheman, samt en kortfattad beskrivning av dessa.

 
  Symbol   Betydelse

Programstart och slut anges med denna symbol

In- och output anges med denna symbol.

Symbolen brukar kallas process och rymmer


beräkningar och händelser som inte omfattas av de
andra symbolerna, d.v.s ej val eller in- och utput.
Denna symbol betyder val eller beslut och kan på
olika sätt symbolisera selektion (if och switch) men
även utgöra en del av en loop (for, while och
do..while).
Förbindelse betyder denna symbol. Den används t.ex.
när flödesschemat inte får plats på en A4-sida.
 

De grafiska symbolerna och sammanbindningen med pilar gör att


flödesdiagrammen ger en bättre överblick över programmet än vad
pseudokod gör. Antalet symboler som används varierar och de som visas
ovan är de som vanligtvis (men inte alltid) förekommer. På de efterföljande
sidorna ges exempel på hur selektion och loopar illustreras i flödesdiagram.

Nedan ser du två exempel på hur en enkel selektion ritas i ett flödesschema. Själva
selektionen representeras av   symbolen. Exemplen nedan skiljer sig åt beträffande
vad som händer om villkoret i selektionen inte uppfylls. I det vänstra exemplet sker
inget om villkoret i selektionen inte uppfylls, medan i det högra leder det till en
alternativ process.

Exempel 1 Exempel 2
if(tal<10) tal=10; if(tal<10) tal=1;
else tal=tal/10;

Nedan ser du två exempel på hur en loop ritas i ett flödesschema. Loopar rymmer
alltid något villkor, vilket symboliseras av   symbolen. I den vänstra bilden är
villkorstestningen i loopens ingång (en while- eller for-loop), och i den högra
bilden är villkorstestningen förlagd till loopens utgång (do..while-loop).
Exempel 1 Exempel 2

do
while(tal<10) {
{ cout<<tal<<" ";
cout<<tal<<" "; tal++;
tal++; }
} while(tal<10);

You might also like