HANDLEIDING PROGRAMMEREN (5e kwartaal natuur- en ...
HANDLEIDING PROGRAMMEREN (5e kwartaal natuur- en ...
HANDLEIDING PROGRAMMEREN (5e kwartaal natuur- en ...
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Hoofdstuk 2<br />
Programmer<strong>en</strong><br />
Het mak<strong>en</strong> van programma’s wordt programmer<strong>en</strong> g<strong>en</strong>oemd. Dit hoofdstuk beschrijft e<strong>en</strong> aantal zak<strong>en</strong> die<br />
met dat programmer<strong>en</strong> te mak<strong>en</strong> hebb<strong>en</strong>.<br />
Wanneer moet er geprogrammeerd word<strong>en</strong>? Als er e<strong>en</strong> probleem met behulp van e<strong>en</strong> computer opgelost moet<br />
word<strong>en</strong>. Hierbij zijn e<strong>en</strong> aantal stapp<strong>en</strong> te onderscheid<strong>en</strong>, waarvan het programmer<strong>en</strong> er eig<strong>en</strong>lijk maar één is:<br />
♥ Eerst moet het probleem goed begrep<strong>en</strong> word<strong>en</strong>: wat is de bedoeling precies? Als het niet precies duidelijk<br />
is wat er gedaan moet word<strong>en</strong>, dan is de kans groot, dat er bij e<strong>en</strong> volg<strong>en</strong>de stap problem<strong>en</strong> ontstaan!<br />
♥ Vervolg<strong>en</strong>s wordt gekek<strong>en</strong> of het probleem op e<strong>en</strong> geschikte manier met e<strong>en</strong> computer opgelost kan word<strong>en</strong>.<br />
Er zijn namelijk ook wel e<strong>en</strong>s efficiëntere oplossing<strong>en</strong> zonder computer mogelijk!<br />
♥ Daarna moet er e<strong>en</strong> recept of algoritme opgesteld word<strong>en</strong> waarin de wijze van oploss<strong>en</strong> van het probleem<br />
nauwkeurig beschrev<strong>en</strong> wordt. Dit algoritme beschrijft het oploss<strong>en</strong> tot op e<strong>en</strong> voldo<strong>en</strong>de diep niveau.<br />
♥ Vervolg<strong>en</strong>s wordt dat algoritme omgezet in instructies of opdracht<strong>en</strong> van e<strong>en</strong> programmeertaal (het eig<strong>en</strong>lijke<br />
programmer<strong>en</strong>). Na deze stap zou het probleem opgelost moet<strong>en</strong> zijn!<br />
♥ Het aldus gemaakte programma wordt door de bij de gebruikte programmeertaal <strong>en</strong> computer behor<strong>en</strong>de<br />
compiler vertaald naar machinecode, waarna het uitgevoerd kan word<strong>en</strong>.<br />
Alhoewel, het kán zijn dat er taalfout<strong>en</strong> (fout<strong>en</strong> teg<strong>en</strong> de syntax van de programmeertaal) door de compiler<br />
zijn ontdekt, waardoor het programma niet op de computer uitgevoerd kan word<strong>en</strong>. Deze taalfout<strong>en</strong> moet<strong>en</strong><br />
eerst verbeterd word<strong>en</strong>, waarna er opnieuw gecompileerd kan word<strong>en</strong>. En dit moet net zolang herhaald<br />
word<strong>en</strong> totdat het programma taalfoutvrij is <strong>en</strong> uitgevoerd kan word<strong>en</strong>.<br />
♥ Nu kan het programma uitgevoerd word<strong>en</strong>. Aan de hand van bepaalde invoergegev<strong>en</strong>s kan gecontroleerd<br />
word<strong>en</strong> of het programma de juiste uitvoergegev<strong>en</strong>s opleverd. Is dit niet zo, dan moet<strong>en</strong> de bijbehor<strong>en</strong>de<br />
fout<strong>en</strong> in de programmastructuur (fout<strong>en</strong> in de logica van het algoritme) gevond<strong>en</strong> <strong>en</strong> verbeterd word<strong>en</strong>,<br />
waarna het programma opnieuw gecontroleerd kan word<strong>en</strong>. Geeft het programma de juiste uitvoergegev<strong>en</strong>s,<br />
dan wordt het in de praktijk als goed programma beschouwd, totdat het teg<strong>en</strong>deel blijkt.<br />
Er is e<strong>en</strong> “tak van sport” binn<strong>en</strong> de Informatica, die zich bezig houdt met het bewijz<strong>en</strong> van de juistheid<br />
van programma’s.<br />
In de praktijk blijkt vaak dat het opgestelde algoritme niet helemaal voldoet. Er zijn bijvoorbeeld e<strong>en</strong> aantal<br />
ding<strong>en</strong> over het hoofd gezi<strong>en</strong>, waardoor er bij de volg<strong>en</strong>de stapp<strong>en</strong> dusdanige problem<strong>en</strong> zijn, dat het nodig is e<strong>en</strong><br />
aantal correcties in het algoritme aan te br<strong>en</strong>g<strong>en</strong>. In zulke gevall<strong>en</strong> word<strong>en</strong> e<strong>en</strong> aantal stapp<strong>en</strong> meerdere mal<strong>en</strong><br />
doorlop<strong>en</strong>. Aangezi<strong>en</strong> dit extra tijd kost, is het zaak dit soort iteraties (<strong>en</strong> de ev<strong>en</strong>tuele bijkom<strong>en</strong>de irritaties)<br />
zoveel mogelijk te beperk<strong>en</strong>.<br />
Omdat het zoek<strong>en</strong> naar logische fout<strong>en</strong> ook e<strong>en</strong> tijdrov<strong>en</strong>d werk kan zijn (<strong>en</strong> dus economisch niet verantwoord),<br />
is het zaak om te prober<strong>en</strong> algoritm<strong>en</strong> foutloos op te stell<strong>en</strong>. Voor e<strong>en</strong> klein probleem is het, na <strong>en</strong>ige ervaring<br />
opgedaan te hebb<strong>en</strong>, niet moeilijk om dit te do<strong>en</strong>. Maar naarmate de op te loss<strong>en</strong> problem<strong>en</strong> groter <strong>en</strong> complexer<br />
word<strong>en</strong>, wordt de kans op fout<strong>en</strong> ook groter. Daarom zijn er diverse techniek<strong>en</strong>, regels, system<strong>en</strong> <strong>en</strong> zelfs complete<br />
7