vrijdag 9 december 2011

Programma's Begrijpen: Lussen gebruiken voor verwerking


“Rond, rond, rond – dat is nu een lus”
                                                - Sam Rain
Sommige programma’s zullen taken moeten herhalen; een klok-programma zal altijd de ‘nieuwe’ tijd moeten verversen en om dezelfde procedure oneindig te kopiëren is niet bepaald bevorderlijk. Daarom is er een mechaniek dat bekend staat als de ‘lus’ – met hulp van een conditie roept de procedure zich constant zelf aan. De functionaliteit is dan ‘recursief’.
Er zijn twee belangrijke ‘lus’-soorten in de wereld van programma’s. Eén daarvan is de ‘oneindige’ lus en blijft zichzelf herhalen aan de hand van een enkele conditie (die altijd ‘waar’ moet zijn). Een typisch voorbeeld is een programma die om de zoveel tijd een taak moet uitvoeren (‘ophalen van e-mail’). De ander herhaalt zich een aantal stappen en stopt vanzelf. De conditie bepaalt het ‘bereik’ van de lus.
De ‘oneindige’ lus is bekend als de ‘while’-lus, vrij vertaald als ‘zolang als’. In pseudo-code kan deze als volgt worden weergegeven:
Boolean Oneindig
Oneindig = true
while (Oneindig)
  .... blok van procedures
einde
Zolang de conditie voor deze lus ‘waar’ is, gaat het programma niet verder dan de lus, binnen het ‘while’-blok zal er dus een mechaniek moeten zijn om de lus te doorbreken. Door de conditionele variabel ‘onwaar’ te maken, kan er dus gecontroleerd een einde aan de lus worden gemaakt.
De lus met een bereik is wat complexer van aard, maar maakt het daarnaast weer handig voor bepaalde situaties. Een ‘lijst’ (array) heeft een bepaald aantal elementen met een numerieke index. Door een lus met bereik kan een data structuur snel doorlopen worden, of kan een taak herhaald worden in specifieke aantallen. Dit type lus heet de ‘for’-lus in de meeste talen.
De ‘for’-lus, vrij vertaald als ‘tot dat’, bestaat uit drie argumenten. Het eerste argument is de initiële waarde waar de lus moet beginnen, gevolgd door het tweede argument dat het bereik bepaald met behulp van een conditie. Het laatste argument bepaald de grootte van iedere ‘stap’ tijdens de lus. Als voorbeeld in ‘pseudo-code’:
Integer index
Array MijnLijst
MijnLijst [0..10] = “Sam Rain” (verkorte manier om een lijst te vullen van element 0-10 met dezelfde tekst)
For (index = 0              Beginwaarde
        index < 10            Bereik
        index ++)              Stop
LaatZienOpScherm (MijnLijst [index])             (de huidige index van de ‘lus’)
einde
Dankzij de ‘for’-lus hoeft niet ieder element expliciet te worden geschreven; de informatie per element wordt als argument meegegeven aan de procedure ‘LaatZienOpScherm’ – de index waarde wordt vanzelf ingevuld door de ‘lus’.
Met lussen worden programma’s echte werkpaarden. Ze nemen geen pauzes of kijken uit het raam op vrijdagmiddag. Lussen zijn het meest intensief wat betreft programma mechaniek, maar als ze gaat werken, doen ze het oneindig lang...
Meer lezen over Informatie Technologie? Klik hier voor de inhoudsopgave voor alle artikelen!

©SamRain
Lus gebruiken

Geen opmerkingen:

Een reactie posten