Naar inhoud springen

Gestructureerd programmeren

Uit Wikipedia, de vrije encyclopedie
Dit is een oude versie van deze pagina, bewerkt door MexicanoBot (overleg | bijdragen) op 21 nov 2010 om 11:37. (Link naar doorverwijspagina gerepareerd. Help mee!, replaced: programmerenprogrammeren met AWB)
Deze versie kan sterk verschillen van de huidige versie van deze pagina.

Gestructureerd programmeren kan worden gezien als een subdiscipline van procedureel programmeren, een van de belangrijke programmeerparadigma's (en waarschijnlijk de populairste) voor het programmeren van computers.

In de jaren '60 werd het langzaamaan duidelijk dat de complexiteit van computerprogramma's uit de hand begon te lopen. Programmeurs zagen door de bomen het bos niet meer.

Goede programmeurs wisten door structureel te werken echter code te produceren die veel makkelijker te doorzien was. Het viel op dat bekwame programmeurs met name veel minder GOTO-statements gebruikten. Wetenschappers in de informatica, waaronder met name Edsger Dijkstra, Jean-Dominique Warnier en Michael A. Jackson, zagen de oplossing in het gestructureerd programmeren, waarbij het door nieuwe constructies in programmeertalen onnodig zou worden constructies als het goto-statement te gebruiken, waardoor de leesbaarheid van code veel beter werd.

De drie basisconstructies in gestructureerd programmeren zijn:

  • sequentie = opeenvolging (S1 S2)
  • iteratie = herhaling (met de herhalingsvoorwaarde vooraf of achteraf: meestal while B do S en do S until B)
  • selectie = keuzestructuur (if B then S1 else S2)

S staat voor een opdracht (Statement), B voor logische expressie (Boolean). Belangrijk is hierbij dat zowel een opdracht als een logische expressie willekeurig complex mogen zijn. In programmeertalen is dat voor opdrachten gerealiseerd door begin ... end-constructies:

Men hoopte dat een en ander het bewijzen van de (wiskundige) correctheid van een programma mogelijk zou maken. (Dit is in de praktijk anders uitgevallen.)

Dit gestructureerde programmeren leidde tot een nieuwe generatie programmeertalen, waarvan met name de programmeertaal Pascal het ver geschopt heeft. Al deze talen kennen nog wel het goto-statement en het label, maar het gebruik ervan wordt sterk afgeraden.

enkelvoudige keuzestructuur

Bij een keuzestructuur gaan we een bepaald stuk code al of niet laten uitvoeren door de computer, afhankelijk van de voorwaarde.

structuur beschrijving
if v then ... als voorwaarde dan {...}
if v then ... else ... anders voeren we een andere opdracht uit
if v then ...elseif...else anders voeren we opnieuw een andere opdracht uit

voorbeeld van een if

 <?
 $humeur = "slecht";
 if ($humeur == "slecht") {
     echo ("ik ben slecht gezind");
 }
 ?>

voorbeeld van een elseif

 <?
 $humeur = "goed";
 if ($humeur == "slecht") {
     echo "ik ben slecht gezind";
 }
 elseif ($humeur == "verveeld") {
     echo "ik verveel mij";
 }
 else{
     echo "ik ben goed gezind";
 }
 ?>

meervoudige keuzestructuur

Zoals de naam al zegt, gaan we bij een meervoudige keuzestructuur een keuze maken uit meerdere mogelijkheden. Deze zijn uiteraard ook te maken met een enkelvoudige, maar met een switch gaat dit makkelijker:

 <?
 $humeur = "goed";
 switch ($humeur) {
 case "slecht":
    echo "ik ben slecht gezind";
    break;
 case "verveeld":
    echo "ik verveel mij";
    break;
 default:
    echo "ik ben goed gezind";
 ?>

voorwaardelijke herhalingsstructuur

Hier zijn 2 mogelijkheden:

  • while: eerst testen, daarna de opdracht uitvoeren

PHP voorbeeld

 <?
 $teller = 0;
 while ($teller <= 12) {
    echo "de teller zit nu aan: $teller <br />";
    $teller++;
 }
 ?>
  • do while: eerst opdracht uitvoeren, dan pas testen

PHP voorbeeld

 <?
 $teller = 0;
 do {
  $teller++;
  echo "de teller zit nu aan: $teller <br />";
  } while ($teller <= 12);
 ?>

begrensde herhalingsstructuur

Hierbij weten we op voorhand hoeveel maal we een bepaalde blok code willen herhalen:

 <?
 for ($i = 1; $i <= 5; $i++) {
   echo "hallo nummer $i ! ";
 }
 ?>

Hier bevinden zich 3 parameters : 1) initialiseert de variabele 2) voorwaarde en 3) de actie die er moet gebeuren bij de herhaling.

Om een Array te doorlopen gebruiken we de foreach uitdrukking. Bij elke doorloop wordt de huidige waarde van de array gegeven aan de variabele $value tot de hele array doorlopen is:

 <?
 $arr=array("een", "twee", "drie");
 foreach ($arr as $value) {
  echo "De waarde is $value <br />";
 }
 ?>

Zie ook