2.Strukturerad programmering
1. Varför strukturerad systemering?
Den här kursen går ut på att vi ska lära oss grunderna i programutveckling. Vi skall lära oss utveckla program med ett objektorienterat tänkande. Varför då ägna tid åt ‘det gamla tänkandet’, strukturerad programmering?
Svaret blir att en dator fortfarande är en dator. Den kan endast utföra en instruktion i taget, i tur och ordning. De objekt vi sedermera kommer att konstruera utgör i teknisk bemärkelse bara skal runt vanlig, strukturerad kod.
Begreppet Objekt Orientering syftar till programmets övergripande uppbyggnad. Detaljerna i objekten måste fortfarande beskrivas strukturerat.
Med anledning av detta kommer vi först att gå igenom strukturerad programmering.
När man vill strukturera ett tänkande eller ett förlopp, kan man använda sig av ett JSP-diagram. JSP, Jackson Structured Programming, utvecklades av just Jackson som ett verktyg för att beskriva strukturerade förlopp. Diagrammet visar hur och i vilken ordning de olika händelserna inträffar. Enligt JSP principen består alla händelser av tre grundstenar:
Sekvens Först / sedan. En händelse följt av en eller flera händelser som finns i en sekvens utan avbrott.
Iteration En upprepning av en händelse.
Selektion Ett val av händelser.
Man beskriver de olika byggstenarna med rutor. När det är en iteration, skriver man en stjärna uppe i det högra hörnet, och vid en selektion en cirkel.
Ett JSP-diagram ser ut som en pyramid, med en topp som motsvarar händelsen. Denna topp bryter man ner i olika beståndsdelar för att beskriva vad händelsen består av.
Av detta JSP-diagram kan man utläsa att en vecka består av först en måndag sen en tisdag o s v. Veckodagarna är en sekvens. En vecka är en sekvens av dagarna. Dagarna skulle man kunna dela upp i timmar, men man ska undvika att beskriva något alltför djupgående.
En telefonkatalog består av en upprepning av olika riktnummerområden. Dessa i sin tur består av en upprepning av abonnenter. Telefonkatalogen är en iteration av riktnummerområden som är en iteration av abonnenter.
Som trafikant färdas man antingen på vänster körfält eller på höger körfält, beroende på vilket land man befinner sig i. Om man inte gör något av dessa alternativ så är man en lagbrytare. Trafikanten är en selektion på vänstertrafikant, högertrafikant eller lagbrytare.
Villkoren för iterationer och selektioner, skriver man ovanför högra hörnet på den ruta iterationen eller valet avser (ovanför symbolen för iteration eller val).
7. Blanda sekvens, iteration och selektion.
Man blandar de olika grundstenarna för att beskriva hela förloppet. Man bör inte blanda olika typer av block. Det är bättre att lägga till ett extra block, vilket brukar kallas ‘stomme’. Om man har en selektion där ett block motsvarar en situation där ingenting ska göras brukar man skriva ett bindestreck mitt i blocket. Här är ett exempel som beskriver hur man cyklar:
Övningsuppgift 2.7.1:
Övningsuppgift 2.7.2:
Övningsuppgift 2.7.3:
Övningsuppgift 2.7.4:
Övningsuppgift 2.7.5:
Övningsuppgift 2.7.6:
8. Pseudo-kod
Ett annat sätt att skriva strukturerad programkod är att skriva s k pseudo-kod. Pseudo-kod är programkod översatt till svenska där man beskriver händelseförloppet uppifrån och ner.
Sekvens - Beskrivning av händelse eller tillstånd
Iteration - Så länge <villkor>
{
gör något ...
}
För (något = startvärde ; till <villkor>; uppräkning)
{
gör något...
}
Selektion - Om <villkor>
{
gör något...
}
Annars
{
gör något annat...
}
Ett exempel på pseudokod kan vara följande:
Läs in namnet från tangentbordet;
Så länge <det finns bokstäver kvar>
{
Skriv ut en bokstav på skärmen;
}
Skriv ut en radmatning;
Övningsuppgift 2.8.1:
Övningsuppgift 2.8.2: