cursus algoritmen

download cursus algoritmen

of 60

  • date post

    11-Jul-2015
  • Category

    Documents

  • view

    607
  • download

    0

Embed Size (px)

Transcript of cursus algoritmen

Algoritmen met ExcelHoofdstuk 1: algoritmen en deelalgoritmen1.1. Inleiding Ondertussen heb je al heel wat mogelijkheden van de computer leren kennen. We hebben de computer gebruikt om teksten mee in te tikken, te verbeteren en de lay-out ervan te verzorgen. We hebben de computer ook ingeschakeld als hulpmiddel om berekeningen uit te voeren, als communicatiemiddel (e-mail) en als informatiebron via het Internet. Een computer is nochtans een dom ding. Uit zichzelf weet of kan een computer niets. Alles moet hem van naaldje tot draadje uitgelegd worden. Voor alles wat de computer moet doen, moet een opdracht of instructie gegeven worden. Een reeks instructies wordt een programma genoemd. Voor elke klus die we door de computer willen laten klaren, moeten we dus een geschikt programma hebben. In dit laatste deel gaan we eens bekijken hoe we een computer een aantal nieuwe taken kunnen leren. Het is niet de bedoeling om hier een cursus programmeren te geven. De klemtoon wordt gelegd op hoe we een probleem opsplitsen in kleinere deelproblemen om zo tot een juiste oplossing te komen. Hiervoor gebruiken we Visual Basic for Applications, kortweg VBA, een programmeertaal die kan gebruikt worden om bijvoorbeeld Excel een aantal nieuwe opdrachten te leren. Om het niet nodeloos moeilijk te maken en om het van buiten leren van programmacode te vermijden heb ik voor jullie voor de meest voorkomende taken kant-en-klaar-instucties gemaakt. Wil je thuis kunnen oefenen, dan zal je ervoor moeten zorgen dat je thuis ook die elementaire opdrachten op je computer zet. Anders verstaat Excel de opdrachten die wij hem geven niet!! Voor de andere programmacode zullen we macros opnemen. Zoals de naam van dit cursusdeel zegt, gaat het dus niet zozeer om het aanleren van een programmeertaal op zich, maar wel om het ontwerpen van algoritmen. 1.2. Het begrip algoritme Tot op zekere hoogte kun je een computerprogramma vergelijken met een recept uit een kookboek, met een montagevoorschrift uit een bouwpakket, met de handleiding voor een videorecorder, ... Telkens wordt er uitgelegd hoe je een niet-gekende taak moet uitvoeren. Zon voorschrift dat je van je probleem (bijvoorbeeld hoe stel ik mijn video in) bij de oplossing van het probleem brengt wordt algemeen een algoritme genoemd. Een algoritme is een voorschrift met al de handelingen die men moet verrichten om vanuit een gegeven beginsituatie een bepaald resultaat te bereiken.

Algoritmen met Excel

-1-

Tom Van Houdenhove

Hoofdstuk 1 algoritmen en deelalgoritmen

Een computerprogramma beschrijft de handelingen die de computer moet verrichten om een bepaalde opdracht uit te voeren. Een computerprogramma is dus ook een algoritme. De bedoeling van dit stuk cursus is dat je de algemene principes leert voor het opstellen van algoritmen. Dit is een heel belangrijke fase in het maken van een programma. Later kan je dan eventueel de stap zetten naar het leren van een volledige programmeertaal. Het echte programmeerwerk wordt hier tot een minimum beperkt. Een algoritme is meestal te ingewikkeld om in n geheel te beschrijven. Daarom gaan we een probleem opsplitsen in deelproblemen. Om een algoritme op te bouwen maken we daarom gebruik van deelalgoritmen. Een deelalgoritme is eigenlijk niets anders dan een gewoon algoritme dat gebruikt wordt in een ander algoritme. Er moet altijd iets (of iemand) zijn die het algoritme uitvoert. Anders heeft je algoritme geen zin. De uitvoerder van het algoritme wordt de processor genoemd. Wat zijn het algoritme en de processor in de volgende gevallen ? Probleem Instellen van het uur en het alarm van een klokradio Het bakken van een lekkere taart Het spelen van een muziekstuk op een piano Het berekenen van het gemiddelde van een reeks getallen in Excel Het hangt er nu van af wie de processor is, of die een opdracht al dan niet begrijpt. Je kan je broer vragen om voor jou eens de CD, die je zonet van een vriend in bruikleen kreeg, over te nemen op een cassette. Voor je broer geeft dit waarschijnlijk weinig problemen. Voor hem is NeemCDop een concreet deelalgoritme . Vraag je hetzelfde aan je oma dan kan het gerust zijn dat je haar eerst goed zal moeten uitleggen hoe ze het juist moet doen. Voor haar is NeemCDop een abstract deelalgoritme . Een deelalgoritme is een concreet deelalgoritme voor een processor als deze het zonder bijkomende uitleg kan uitvoeren. Het is een abstract deelalgoritme voor de processor als er nog bijkomende uitleg nodig is. Als je een algoritme opstelt kan je gerust gebruik maken van abstracte deelalgoritmen. Het is zelfs aangewezen om dat te doen. Zo kan je een probleem opsplitsen in deelproblemen. Deze Algoritme Processor

Algoritmen met Excel

-2-

Tom Van Houdenhove

Hoofdstuk 1 algoritmen en deelalgoritmen

deelproblemen moeten dan wel verder uitgewerkt worden. We zeggen dat het deelalgoritme nog verder verfijnd moet worden. Die uitwerking wordt een verfijning genoemd. Bijvoorbeeld: Als we algoritmen zullen maken en we willen aan de gebruiker een getal vragen, dan zullen we gebruik maken van de opdracht LEES(Geef een getal) Probeer je dit op je computer thuis, dan heb je heel veel kans dat je computer niets doet of een foutmelding geeft. Voor je computer is de opdracht LEES een abstracte opdracht. Omdat dit toch een redelijk logische naam is voor die opdracht zullen wij toch de opdracht LEES gebruiken. Daarom werd in de oefeningen ervoor gezorgd dat de opdracht LEES verfijnd is.Sub LEES(tekst_in_het_venster) OpgevraagdGegeven = InputBox(tekst_in_het_venster, "Invoer van gegevens...") If OpgevraagdGegeven "" Then ActiveCell.FormulaR1C1 = OpgevraagdGegeven End If End Sub

Voor de computer is dit nu volledig duidelijk. Het is met andere woorden een concrete opdracht geworden. Voor jou is dit misschien alles behalve duidelijk, maar er is geen enkel probleem. Als jij de opdracht LEES geeft, wordt dit door Visual Basic toch begrepen, want er werd bijkomende uitleg gegeven. Het is dan ook zo dat, als je thuis wil oefenen, je van alle basisbevelen die we zullen gebruiken, de verfijningen zal moeten hebben. Die kan je gerust op school vragen. Alle basisbevelen zijn ondergebracht in een sjabloon. Als je je oefeningen op dit sjabloon baseert worden de concrete deelalgoritmen uit deze cursus begrepen. In het verdere verloop van deze cursus zal de klemtoon vooral liggen op het maken en het gebruiken van zon verfijningen. 1.3. Enkele voorbeelden van algoritmen 1.3.1 Het recept van een Sultana CakeBenodigdheden: 125 g boter; 125 g suiker; pakje vanillesuiker; snuifje zout; 3 eieren; 200 g bloem vooraf gemengd met 1 koffielepel bakpoeder; 5 eetlepels zure room; snuifje kruidnagelpoeder; snuifje kaneel; 500 g sultanarozijnen; paneermeel klop de boter zo los en romig mogelijk voeg er de suiker bij al kloppend roer er nu de vanillesuiker onder vervolgens het snuifje zout n voor n de eieren telkens kloppend in het mengsel verwerken afwisselend bloem en zure room - lepel per lepel - bij mengen en goed kloppen. Doe er wat kruidnagelpoeder en een snuifje kaneel bij bestuif de rozijnen met bloem en meng ze in het deeg de bakvorm met boter besmeren; dan met paneermeel bestrooien; verder losjes vullen met het deeg in een voorverwarmde over (200 C) op halve hoogte 50 minuten laten bakken

1. 2. 3. 4. 5. 6. 7. 8. 9.

Algoritmen met Excel

-3-

Tom Van Houdenhove

Hoofdstuk 1 algoritmen en deelalgoritmen

10. HERHAAL de controle op het einde door er een stokje dwarsdoor te steken TOTDAT er geen nat deeg meer aankleeft 11. Haal de cake uit de vorm en laat op een rooster snel afkoelen 12. Zet de oven af

1.3.2 De morgenstond van een leerling Een algoritme wordt normaal niet met cijfertjes aangeduid, zoals in het vorig voorbeeld. Normaal wordt een algoritme in een of ander schema voorgesteld. We zullen dit jaar vooral gebruik maken van Nassi-Schneidermann-diagrammen, kortweg NS-diagrammen. Hieronder vind je een algoritme dat beschrijft hoe je van een bepaalde beginsituatie (de wekker loop af) tot een eindresultaat (ga ik vandaag wel naar school ??) gaat. Dit algoritme is in zon NSdiagram voorgesteld. -- Begin de morgenstond -ZetDeWekkerAf Kreun DraaiNogEven StapUitBed NogDonker ja SteekLichtAan Koud ja neen ZetVerwarming Aan GaJeWassen Ontbijt GromtDeHond ja neen LaatHondBuiten VandaagDST ja neen ToonJeZiek Moeder Vertrek Overtuigd NaarSchool ja neen TerugIn Vertrek Bed NaarSchool neen

Algoritmen met Excel

-4-

Tom Van Houdenhove

Hoofdstuk 1 algoritmen en deelalgoritmen

1.4 Wat je moet kennen en kunnen De begrippen algoritme, deelalgoritme en processor kunnen omschrijven Het verschil kunnen aangeven tussen een concreet en een abstract deelalgoritme Inzien dat een computerprogramma een bijzondere vorm is van een algoritme. De computer vervult hierbij de rol van processor In een aantal concrete situaties uit het alledaagse leven kunnen aangeven wat het algoritme is en wie of wat de processor is

Algoritmen met Excel

-5-

Tom Van Houdenhove

Hoofdstuk 2: methode van de stapsgewijze verfijning2.1 Het gegevensverwerkend proces Vorig jaar kwam het gegevensverwerkend proces al ruimschoots aan bod. verwerkend proces kan je opsplitsen in 3 grote fasen:

Elk gegevens-

Aangezien het nu juist de bedoeling wordt om algoritmen op te stellen die gegevens verwerken, zullen deze drie stappen in elk algoritme zeker moeten voorkomen. 2.2 Stappen voor het oplossen van een probleem Om een probleem efficint op te lossen moet je een aantal fasen doorlopen. Bij eenvoudige problemen kan je misschien een of andere stap overlaten, maar toch maken we er een gewoonte van om bij elk probleem alle stappen te doorlopen. 2.2.1 Probleemdefinitie In een eerste fase, de probleemdefinitie, ga je duidelijk na wat het probleem is en wat het resultaat is. Het is belangrijk om na te gaan welke gegeve