Gestructureerd programmeren: verschil tussen versies
Verwijderde inhoud Toegevoegde inhoud
kGeen bewerkingssamenvatting |
geen "we gaan..."; de "begrensde herhalingsstructuur" is een structurele mogelijkheid binnen veel programmeertalen maar geen vereiste / eigenschap van "gestructureerd programmeren" |
||
Regel 1:
'''Gestructureerd programmeren''' kan worden gezien als een subdiscipline van [[procedureel programmeren]], een van de belangrijke [[programmeerparadigma]]'s (en waarschijnlijk
In de [[1960-1969|jaren
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.
Regel 7:
De drie basisconstructies in gestructureerd programmeren zijn:
* ''[[sequentieel programmeren|sequentie]]'' = opeenvolging ''(S1 S2)''
* ''[[selectie (statistiek)|selectie]]'' = keuzestructuur ''(if B then S1 else S2)''
* ''[[repetitie (informatica)|iteratie]]'' = herhaling (met de herhalingsvoorwaarde Belangrijk is hierbij dat zowel een opdracht als een
* ''BEGIN'' en ''END'' in [[programmeertaal Pascal|Pascal]];
* de [[accolade]]s ''{'' en ''}'' in onder meer [[Programmeertaal C|C]], [[Programmeertaal Java|Java]], [[Scala (programmeertaal)|Scala]] en [[PHP]].
Men hoopte dat een en ander het bewijzen van de (wiskundige) [[correctheid van een programma]] mogelijk zou maken.
Als alternatief voor het [[stroomdiagram]] werd het [[programmastructuur-diagram|Nassi
Dit gestructureerde programmeren leidde tot een nieuwe generatie [[programmeertaal|programmeertalen]]
==
Bij een keuzestructuur
{| class="wikitable"
Regel 28:
! beschrijving
|-
| if ''v'' then
| ''xxx'' wordt alleen uitgevoerd als aan de voorwaarde
|-
| if ''v'' then
| als aan de voorwaarde voldaan wordt, wordt ''xxx'' uitgevoerd; zo niet wordt ''yyy'' uitgevoerd
|-
| if
| als niet aan de eerste voorwaarde voldaan wordt, worden vervolgacties afhankelijk van een tweede voorwaarde
|}
<source lang="php">
<?
$humeur = "slecht";
if ($humeur == "slecht") {
}
?>
</source>
<source lang="php">
<?
$humeur = "goed";
if ($humeur == "slecht") {
}
elseif ($humeur == "verveeld") {
}
else {
}
?>
</source>
==
Bij een meervoudige keuzestructuur (of: ''switch'') kan gereageerd worden op verschillende waarden. Dit kan ook geïmplementeerd worden met een aantal enkelvoudige keuzestructuren (en de kans is groot dat daar dan "elseif"-statements in voorkomen), maar met een switch gaat het eenvoudiger:
<source lang="php">
Regel 71:
switch ($humeur) {
case "slecht":
case "verveeld":
default:
}
?>
</source>
==
* eerst testen, daarna de opdracht uitvoeren en vervolgens opnieuw testen (en eventueel de opdracht uitvoeren, opnieuw testen enzovoorts)
* eerst de opdracht uitvoeren, daarna testen, eventueel de opdracht herhalen, opnieuw testen enzovoorts.
In het eerste geval kan het zijn dat de opdracht helemaal nooit uitgevoerd wordt (herhaling van 0 of meer keren), in het tweede geval wordt de opdracht minimaal één keer uitgevoerd.
;PHP-voorbeeld van eerste mogelijkheid
<source lang="php">
<?
$teller = 0;
while ($teller <= 12) {
}
?>
</source>
;PHP-voorbeeld van de tweede mogelijkheid
<source lang="php">
<?
$teller = 0;
do {
} while ($teller <= 12);
?>
</source>
Regel 138 ⟶ 114:
* [[Jackson Structured Programming]]
* [[Big Design Up Front]]
{{Wikibooks|Programmeren, de basis/De controlestructuren}}
|