Algoritme opstellen
Wat moet je kennen en kunnen na dit deel?
- Weten wat een deelprobleem is
- Zelf een simpel algoritme kunnen opstellen
Ons probleem opsplitsen in deelproblemen
Als je probleem wat groter is dan maak je niet 1 groot algoritme maar deel je het probleem op in kleinere stukken. Deze noemen deelproblemen.
Als je terugdenkt aan de video die in de inleiding staat (waar ik noedels maak).
Dan had ik dit algoritme ontworpen:
- Ik zoek eten
- Ik bereid het eten
- Ik eet het eten op
Maar stap 2 is veel te vaag beschreven want ik wist niet hoe ik de noedels moest bereiden.
Stap 2 is dus een deelprobleem waarvoor dus een stappenplan moet worden gemaakt.
Een stappenplan (algoritme) opstellen voor elk deelprobleem
Je gaat nu voor elk deelprobleem stap voor stap uitleggen hoe je dit deelprobleem kan oplossen.
Voor stap 2 in het noedelprobleem waren dit de stappen:
- Doe 200ml water in een pannetje
- Doe de kruiden erbij
- Wacht tot het water kookt
- Voeg dan de noedels toe
- Wacht tot het water is weggekookt
Nu weten we exact hoe we de noedels moeten bereiden.
Het volledige algoritme voor de video is dus dit:
- Ik zoek eten
- Ik bereid het eten:
- Doe 200ml water in een pannetje
- Doe de kruiden erbij
- Wacht tot het water kookt
- Voeg dan de noedels toe
- Wacht tot het water is weggekookt
- Ik eet het eten op
Deelproblemen in deelproblemen
Het kan zijn dat in een deelprobleem nog andere deelproblemen zitten (En daarin nog eens enz…).
Hiervoor moet dan ook een algoritme worden opgesteld.
Stel dat ik niet wist hoe ik 200 ml water in het pannetje moest doen, dan had dit het volledige algoritme kunnen zijn:
- Ik zoek eten
- Ik bereid het eten:
- Doe 200ml water in een pannetje:
- Zoek een pannetje en een maatbeker
- Doe water in de maatbeker tot het water even hoog staat als de 200 ml lijn.
- Doe dit water in het pannetje
- Doe de kruiden erbij
- Wacht tot het water kookt
- Voeg dan de noedels toe
- Wacht tot het water is weggekookt
- Doe 200ml water in een pannetje:
- Ik eet het eten op
Lego voorbeeld
Deelproblemen: We gaan ons lego kasteel niet in 1 keer helemaal bouwen, maar we bouwen onderdeel per onderdeel.
Een deelprobleem in ons kasteel zou kunnen zijn:
- Hoe bouwen we een torentje?
- Of hoe bouwen we de poort?
Dit zijn kleinere problemen binnen ons hoofdprobleem.
Stappenplan:
Om bijvoorbeeld een torentje te bouwen zou dit ons algoritme kunnen zijn.