Your SlideShare is downloading. ×
Algoritmiek

      Inleiding tot programmeren

      Jean-Pierre Pluymers




                                   volgend
Cursusinhoud
   Voorwoord
   Samenvatting
   Inhoudstafel
   Lijst van gebruikte afkortingen en symbolen
   Inleiding...
Inleiding
   In wezen is een computer niets meer dan een
    machine die eenvoudige opdrachten uitvoert:
       Vraag ee...
Opdracht:
       Maak een origami-piano




   http://www.youtube.com/watch?v=6oLRfr7D2MU
   http://web-japan.org/kidswe...
Zeef van Eratosthenes


0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

      Priemgetallen: 2    3   5   7...
Programmeertaal

   Computer verstaat geen zinnen
   Computer verstaat wel een aantal
    woorden in een juiste volgorde...
Oplossingen ontwerpen en
beschrijven
Problemen stapsgewijs oplossen:
1. Het probleem formuleren
2. Scenario van het proble...
Problemen oplossen


     Top-down methode




                        vorig volgend terug   home
Formulering van een probleem

   Probleem formuleren: wat is een probleem?
       Doel bereiken
       Niet meteen duid...
Probleemstelling

   Maak een programma om de inhoud van een
    balk te berekenen. De gebruiker voert de
    hoogte, de ...
Oefeningen

        Invoer                 Verwerking                 Uitvoer

 Fazant, Eend, Gans,                       ...
Nog een oefening
       Bij DoeHetZelf kosten de met vinyl beklede
        plafondtegels van 40 cm x 80 cm 25 EUR per pak...
Oplossingsmogelijkheden
   Trial and error (gissen en missen)
   Top-down methode: kleine deelproblemen lossen
    het g...
Het scenario

   Maak een programma om de inhoud
    van een balk te berekenen. De
    gebruiker voert de hoogte, de bree...
Grofstructuur
Probleem


                                                      Ja       Er is een deel-
                  ...
Verfijning van deelproblemen
   Deelproblemen “uiteenrafelen” tot zeer
    kleine stapjes die de computer kan
    begrijp...
Scenario voor invoer
Invoer

                                                                     Deelprobleem
          ...
Scenario voor verwerking
   Verwerking is niet zomaar in een schema vast te
    leggen omwille van het fundamenteel versc...
Scenario voor uitvoer
Uitvoer




          Moet het weergegeven resultaat in een
                                        ...
Gegevenstabellen

       Voor overzicht van gegevens
       Elk deelprobleem een aparte gegevenstabel


Nr Naam         ...
Nr           De gegevens worden doorlopend genummerd.


Naam         Hier vullen we een naam in voor elk gegeven. Let op:
...
Numeriek of alfanumeriek?

   Getallen bij voorkeur als numerieke
    gegevens bewaren om
       Berekeningen kunnen gem...
Gegeven
                                                 Ja
                                                         Varia...
Gegevenstabellen invullen

       Deelprobleem Invoer

    Nr   Naam      Soort       Type     Commentaar
    1    Zin1  ...
Gegevenstabellen invullen

       Deelprobleem Verwerking

    Nr   Naam      Soort      Type   Commentaar
    1    Inhou...
Gegevenstabellen invullen

       Deelprobleem Uitvoer

    Nr   Naam     Soort       Type     Commentaar
    1    Zin4  ...
Grafische voorstelling van
algoritmes
                  Balk         Invoer
                  Invoer       Schrijf Zin1
  ...
Grafische voorstelling van
    algoritmes                                                            Invoer




          ...
Verklaringen symbolen van
het PST-diagram


        Naam van het programma + Einde



        Deelprobleem



        Enke...
Controlestructuren


      De sequentie
      De selectie
      De iteratie


                     vorig volgend terug   h...
De sequentie
   Betekent letterlijk: opeenvolging. In dit geval: opeenvolging
    van opdrachten
   Vergelijking met een...
Oefeningen
   Oefening 1
       Maak een programma om het wisselgeld op een te
        betalen bedrag te berekenen. Het ...
De selectie
   Relationele operatoren
        Zorgen ervoor dat we objecten met elkaar kunnen vergelijken
        Wisku...
Elke stap




                         Moet de stap zowiezo               Ja           Programmeer de stap


      Scenari...
De enkelvoudige selectie
   Opdracht
       Maak een programma om te berekenen hoeveel
        uren een student tijdens ...
Enkelvoudige selectie:
Scenario
   Grofstructuur
       Invoer
       Verwerking
       Uitvoer

   Verfijningen

   ...
Enkelvoudige selectie:
    Gegevenstabellen
Deelprobleem Invoer
Nr   Naam           Soort       Type     Commentaar

1    ...
Enkelvoudige selectie:
NS-diagram
Grofstructuur    Verfijningen


Studeren         Invoer
Invoer           Schrijf Zin1
Ve...
Verfijning
     Enkelvoudige selectie:                                     Invoer


     PST-diagram
                     ...
De tweevoudige selectie

   Opdracht
       Maak een programma om te bepalen of een
        verkoper een premie krijgt. ...
Tweevoudige selectie:
Scenario
   Grofstructuur
       Invoer
       Verwerking
       Uitvoer

   Verfijningen

    ...
Tweevoudige selectie:
    Gegevenstabellen
Deelprobleem Invoer
Nr   Naam         Soort       Type     Commentaar

1    Zin...
Tweevoudige selectie:
NS-diagram
Grofstructuur   Verfijningen


Verkoper        Invoer
Invoer          Schrijf Zin1
Verwer...
Tweevoudige selectie:
         PST-diagram
          Grofstructuur                                                 Verfijn...
De geneste selectie
   Selectie beperkt tot slecht 2 keuzes: waar of vals.
    Wat bij 3 keuzemogelijkheden?
   Opdracht...
Geneste selectie:
Scenario
   Grofstructuur
       Invoer
       Uitvoer

   Verfijningen

       Deelprobleem Invoer...
Geneste selectie:
    Gegevenstabellen
Deelprobleem Invoer
Nr   Naam         Soort       Type     Commentaar

1    Zin1   ...
Geneste selectie:
NS-diagram
Grofstructuur   Verfijningen


Attest          Invoer
Invoer          Schrijf Zin1
Uitvoer   ...
Geneste selectie:                  Verfijning

     PST-diagram                                    Invoer




         Gro...
De meervoudige selectie
   Teveel geneste selecties worden onoverzichtelijk.
    Gebruik daarom liever een meervoudige se...
Meervoudige selectie:
        Scenario
   Grofstructuur
       Invoer                   Deelprobleem Verwerking
      ...
Meervoudige selectie:
    Gegevenstabellen
Deelprobleem Invoer
Nr   Naam         Soort       Type     Commentaar

1    Zin...
Meervoudige selectie:
    NS-diagram
Grofstructuur   Verfijningen

Computers        Invoer                         Uitvoer...
Meervoudige selectie:                                                    Verwerking


          PST-diagram               ...
De iteratie of herhaling
   Meerdere keren hetzelfde programmeren
    wordt saai en op den duur onoverzichtelijk
   Bove...
E   k
                 l   e       s       t        a           p



                                          K a        ...
Begrensde herhaling:
Opdracht

   Opdracht:
       Maak een programma om de totale winst
        van een bedrijf over de...
Begrensde herhaling:
Scenario
   Grofstructuur
       Invoer
       Uitvoer
   Verfijningen
       Deelprobleem Invoe...
Begrensde herhaling:
    Gegevenstabellen
Deelprobleem Invoer
Nr   Naam         Soort       Type     Commentaar

1    Jaar...
Begrensde herhaling:
NS-diagram
Grofstructuur   Verfijningen


Winsten         Invoer
Invoer          Jaarwinst  0
Uitvoe...
Winsten


             Begrensde herhaling:
                                                        Invoer            Uitv...
Begrensde herhaling:
Constante of variabele herhaling

   Het aantal herhalingen kan ook op
    basis van een variabele p...
De voorwaardelijke herhaling

   Soms is een herhaling niet afhankelijk
    van een grenswaarde, maar wel van
    een voo...
De voorwaardelijke herhaling:
            Schema deel 1
E   k
    l   e    s   t    a     p



                           ...
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Upcoming SlideShare
Loading in...5
×

Algoritmiek

1,999

Published on

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,999
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "Algoritmiek"

  1. 1. Algoritmiek Inleiding tot programmeren Jean-Pierre Pluymers volgend
  2. 2. Cursusinhoud  Voorwoord  Samenvatting  Inhoudstafel  Lijst van gebruikte afkortingen en symbolen  Inleiding  Corpus 1 Een probleem oplossen met de top-down methode 1.1 De formulering van een probleem 1.2 Het scenario 1.3 Gegevenstabellen 1.4 Grafische voorstellingen van algoritmes 1.4.1 Het Nassi-Schneidermann diagram 1.4.2 Het PST-diagram 2 De opeenvolging of sequentie 3 De keuzestructuur of selectie 3.1 Relationele operatoren 3.2 De enkelvoudige selectie 3.3 De tweevoudige selectie 3.4 De geneste selectie 3.5 De meervoudige selectie 4 De herhaalstructuur of iteratie 4.1 De begrensde herhaling 4.2 De voorwaardelijke herhaling  Bijlagen terug
  3. 3. Inleiding  In wezen is een computer niets meer dan een machine die eenvoudige opdrachten uitvoert:  Vraag eerste getal  Vraag tweede getal  Tel het eerste getal en tweede getal op  Toon het resultaat  => algoritme, afgeleid van de Arabische wiskundige Mohammed ibn Musa alChowarizmi (9de eeuw)  Een algoritme is en uitvoerbare procedure voor het oplossen van een probleem. vorig volgend terug home
  4. 4. Opdracht: Maak een origami-piano  http://www.youtube.com/watch?v=6oLRfr7D2MU  http://web-japan.org/kidsweb/virtual/origami2/exploring01_03.html vorig volgend terug home
  5. 5. Zeef van Eratosthenes 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 Priemgetallen: 2 3 5 7 11 13 17 19 23 1. Schrap de getallen 0 en 1 2. Zoek het eerstvolgende niet geschrapte getal en laat dit staan 3. Schrap alle veelvouden van dit getal 4. Herhaal de procedure tot je niets meer kan schrappen vorig volgend terug home
  6. 6. Programmeertaal  Computer verstaat geen zinnen  Computer verstaat wel een aantal woorden in een juiste volgorde  Dit geheel van instructies noemen we een programmeertaal vorig volgend terug home
  7. 7. Oplossingen ontwerpen en beschrijven Problemen stapsgewijs oplossen: 1. Het probleem formuleren 2. Scenario van het probleem opstellen 3. Vastleggen van de gegevens in een gegevenstabel 4. Vastleggen van de controlestructuur 5. Opstellen van de programmatekst (= coderen) 6. Het programma testen en foutvrij maken vorig volgend terug home
  8. 8. Problemen oplossen Top-down methode vorig volgend terug home
  9. 9. Formulering van een probleem  Probleem formuleren: wat is een probleem?  Doel bereiken  Niet meteen duidelijk hoe het doel kan bereikt worden  Oplossingsmethode bedenken  Niet de oplossing zelf, maar de oplossingsmethode (proces) staat centraal vorig volgend terug home
  10. 10. Probleemstelling  Maak een programma om de inhoud van een balk te berekenen. De gebruiker voert de hoogte, de breedte en de diepte in (in cm), en de computer berekent de inhoud (in cm³), die op het scherm wordt weergegeven.  Ondubbelzinnig  Duidelijk zijn wat gegeven en gevraagde is  Hints voor verwerking kunnen meegegeven worden vorig volgend terug home
  11. 11. Oefeningen Invoer Verwerking Uitvoer Fazant, Eend, Gans, Eend, Fazant, Gans, Alfabetisch ordenen Zwaan, Pauw, Kip Kip, Pauw, Zwaan 9, 11 Optellen 20 Verheffen tot de 2de 3 9 macht 78, 62, 105, 170, 42, Rangschikken van 42, 62, 78, 90, 105, 170 90 klein naar groot en hou ik informatica is Ik hou van informatica leuk programmeren Maak een goede zin en programmeren is van leuk vorig volgend terug home
  12. 12. Nog een oefening  Bij DoeHetZelf kosten de met vinyl beklede plafondtegels van 40 cm x 80 cm 25 EUR per pak van 5. Je hebt 375 EUR beschikbaar. Kom je hiermee toe om een plafond van 3 m bij 6 m te bekleden?  Invoer: Bedrag: 375 EUR 5 x 40cm x80cm tegels kost 375 Plafond = 3m x 6m  Verwerking: Bereken oppervlakte plafond Bereken aantal benodigde tegels Bereken aantal pakken Bereken het verschil beschikbaar bedrag - kosten  Uitvoer: Oppervlakte plafond Aantal benodigde pakken tegels Kom ik toe met mijn bedrag? (Ja/Nee) vorig volgend terug home
  13. 13. Oplossingsmogelijkheden  Trial and error (gissen en missen)  Top-down methode: kleine deelproblemen lossen het geheel op (stapsgewijze verfijning)  Voorbeeld: bereken de oppervlakte van deze regelmatige figuur vorig volgend terug home
  14. 14. Het scenario  Maak een programma om de inhoud van een balk te berekenen. De gebruiker voert de hoogte, de breedte en de diepte in (in cm), en de computer berekent de inhoud (in cm³), die op het scherm wordt weergegeven.  Stel jezelf de juiste vragen om het probleem te analyseren  Lees de opgave en doorloop het scenario vorig volgend terug home
  15. 15. Grofstructuur Probleem Ja Er is een deel- probleem Invoer  Grofstructuur Moet er door de gebruiker informatie worden ingevoerd in de computer?  Invoer Er is geen deel- Nee probleem Invoer  Verwerking Ja Er is een deel-  Uitvoer probleem Verwerking Moet de computer berekeningen uitvoeren? Er is geen deel- Nee probleem Verwerking Ja Er is een deel- probleem Uitvoer Moet de computer een of meer resultaten weergeven? Er is geen deel- Nee probleem Uitvoer vorig volgend terug home
  16. 16. Verfijning van deelproblemen  Deelproblemen “uiteenrafelen” tot zeer kleine stapjes die de computer kan begrijpen  Opsplitsen in deelproblemen maakt het probleem minder complex  Met uitzondering van de verwerking kan de computer slechts 2 basisopdrachten uitvoeren: lees of schrijf  De computer is niet erg slim. Hij verstaat enkel zeer concrete opdrachten. Concreet <-> abstract vorig volgend terug home
  17. 17. Scenario voor invoer Invoer  Deelprobleem Hoe weet de gebruiker welke informatie Invoer er moet worden ingevoerd?  Schrijf Zin1 Door een verduidelijking op het scherm  Lees Hoogte die aangeeft wat de gebruiker moet ingeven  Schrijf Zin2 De computer leest de informatie die werd  Lees Breedte ingegeven door de gebruiker  Schrijf Zin3 Ja Moet er nog andere informatie worden  Lees Diepte ingegeven door de gebruiker? Nee Er is geen deel- probleem Invoer vorig volgend terug home
  18. 18. Scenario voor verwerking  Verwerking is niet zomaar in een schema vast te leggen omwille van het fundamenteel verschillend karakter van elke verwerking/probleemstelling.  Veel bewerkingen halen hun inspiratie uit de wiskunde. Toch is er een wezenlijk verschil: = wordt  vb: getal  getal + 1  Houd rekening met 3 basisregels  Deelprobleem Verwerking:  Inhoud  Hoogte x Breedte x Diepte vorig volgend terug home
  19. 19. Scenario voor uitvoer Uitvoer Moet het weergegeven resultaat in een Wis scherm leeggemaakt scherm verschijnen?  Deelprobleem Uitvoer Hoe weet de gebruiker wat het weergegeven resultaat betekent?  Schrijf Zin4, Inhoud Door er een beschrijving bij te zetten die duidelijk maakt waarover het gaat. Daarna zet de computer het resultaat achter dit zinnetje op het scherm. Ja Moeten er nog andere resultaten weergegeven worden? Nee Er is geen deel- probleem Uitvoer vorig volgend terug home
  20. 20. Gegevenstabellen  Voor overzicht van gegevens  Elk deelprobleem een aparte gegevenstabel Nr Naam Soort Type Commentaar 1 2 vorig volgend terug home
  21. 21. Nr De gegevens worden doorlopend genummerd. Naam Hier vullen we een naam in voor elk gegeven. Let op: elk gegeven moet een unieke naam hebben een naam wordt steeds aan elkaar geschreven gebruik een korte en zinvolle naam Soort Gegeven waarvan de waarde door de programmeur in het Constante ………………………………………: programma vastgelegd wordt, en niet meer kan veranderen. Gegeven waarvan de waarde steeds kan gewijzigd kan worden. Variabele ………………………………………: Gegeven dat slechts in één deelprobleem voorkomt. Lokaal ………………………………………: Gegeven dat in meerdere deelproblemen voorkomt. Globaal ………………………………………: Type De benaming die aan gegevenstypes gegeven wordt, is verschillend van de ene tot de andere programmeertaal. In contextvrije programmeeromgevingen (Isolab, Softalgos, Struktograaf, …) en in Javascript hebben gegevens geen gegevenstype. Toch kunnen we wel altijd twee types van gegevens onderscheiden: Gegeven waarmee je niet kan rekenen. Alfanumerieke gegevens ………………………………………………………………………: Gegeven waarmee je wel kan rekenen. Numerieke gegevens ………………………………………………………………………: Commentaar In de laatste kolom noteren we de waarde van de constanten, d.w.z. de inhoud van een constant gegeven. vorig volgend terug home
  22. 22. Numeriek of alfanumeriek?  Getallen bij voorkeur als numerieke gegevens bewaren om  Berekeningen kunnen gemaakt worden  Plaatsbesparing in het geheugen van de computer  Sortering van numerieke en alfanumerieke tekens is verschillend vorig volgend terug home
  23. 23. Gegeven Ja Variabel gegeven Kan de waarde van het gegeven in de loop van het programma wijzigen? Constant gegeven Neen Noteer de waarde van het gegeven in de kolom "commentaar". Ja Globaal gegeven Komt het gegeven in meer dan één deelprobleem voor? Lokaal gegeven Neen Ja Numeriek gegeven Moet er met het gegeven gerekend of numeriek gesorteerd worden? Alfanumeriek gegeven Neen vorig volgend terug home
  24. 24. Gegevenstabellen invullen  Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Zin1 Const lok Alfan. Geef de hoogte (in cm) 2 Hoogte Var glob Num. 3 Zin2 Const lok Alfan. Geef de breedte (in cm) 4 Breedte Var glob Num. 5 Zin3 Const lok Alfan. Geef de diepte (in cm) 6 Diepte Var glob Num. vorig volgend terug home
  25. 25. Gegevenstabellen invullen  Deelprobleem Verwerking Nr Naam Soort Type Commentaar 1 Inhoud Var glob Num. 2 Hoogte Var glob Num. 3 Breedte Var glob Num. 4 Diepte Var glob Num. vorig volgend terug home
  26. 26. Gegevenstabellen invullen  Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Zin4 Const lok Alfan. De inhoud bedraagt (in cm3) 2 Inhoud Var glob Num. vorig volgend terug home
  27. 27. Grafische voorstelling van algoritmes Balk Invoer Invoer Schrijf Zin1 Verwerking Lees Hoogte Uitvoer Schrijf Zin2 Lees Breedte Schrijf Zin3  Nassi-Schneidermann Lees Diepte diagram  of PSD (Programma Verwerking Structuur Diagram) Inhoud ← Hoogte x Breedte x Diepte  of Structogram Uitvoer Schrijf Zin4, Inhoud vorig volgend terug home
  28. 28. Grafische voorstelling van algoritmes Invoer Schrijf Lees Schrijf Lees 1 Zin1 Hoogte Zin2 Breedte  PST-diagram  Programma 1 Schrijf Zin3 Lees Diepte Structuur Techniek Verwerking Inhoud <-- Balk Hoogte x Breedte x Diepte Invoer Verwerking Uitvoer Einde Uitvoer Schrijf Zin4, Inhoud vorig volgend terug home
  29. 29. Verklaringen symbolen van het PST-diagram Naam van het programma + Einde Deelprobleem Enkelvoudige opdracht 1 Regeleinde + begin van een nieuwe regel vorig volgend terug home
  30. 30. Controlestructuren De sequentie De selectie De iteratie vorig volgend terug home
  31. 31. De sequentie  Betekent letterlijk: opeenvolging. In dit geval: opeenvolging van opdrachten  Vergelijking met een recept uit een kookboek  Verhit de wok (of een brede hoge braadpan) en doe er de gemarineerde runderreepjes in.  Bak ongeveer 5 min.  Voeg de reepjes Chinese kool en de champignonschijfjes toe.  Roerbak nog 5 minuten, zodat de groenten gaar worden.  Voeg de zoetzure saus en de roerbakmie toe en doe er 5 dl water bij.  Roerbak nog ongeveer 4 minuten, zodat de roerbakmie het vocht vrijwel volledig kan opnemen.  Elke opdracht wordt slechts 1 keer in de vooropgestelde volgorde uitgevoerd. vorig volgend terug home
  32. 32. Oefeningen  Oefening 1  Maak een programma om het wisselgeld op een te betalen bedrag te berekenen. Het te betalen bedrag en de gegeven som worden ingevoerd door de gebruiker (beide in euro). De computer berekent het bedrag van het wisselgeld, en dat wordt op het scherm weergegeven.  Oefening 2  Maak een programma om de kostprijs van een autorit te berekenen. De gebruiker geeft de prijs van 1 liter brandstof in, het aantal afgelegde kilometers en het brandstofverbruik (in liter per 100 km) in. De computer berekent de totale prijs van het verbruik tijdens de autorit, en die prijs verschijnt op het scherm. vorig volgend terug home
  33. 33. De selectie  Relationele operatoren  Zorgen ervoor dat we objecten met elkaar kunnen vergelijken  Wiskunde en informatica kennen dezelfde operatoren, maar ze worden anders voorgesteld = is gelijk aan < is kleiner dan > is groter dan <= is kleiner dan of gelijk aan >= is groter dan of gelijk aan <> is niet gelijk aan  Waarom gebruiken we in de informatica soms andere symbolen voor vergelijkingen dan in de wiskunde? Omdat een aantal wiskundige tekens niet op een toetsenbord voorkomen. vorig volgend terug home
  34. 34. Elke stap Moet de stap zowiezo Ja Programmeer de stap Scenario voor een selectie altijd worden gezet? Neen gewoon onder de vorige. Scenario Bepaal de voorwaarde van de selectiestructuur. voor een Programmeer de stap die moet gezet worden indien aan de voorwaarde voldaan is. selectie Moet er nog een stap gezet Ja worden indien aan de Programmeer die stap onder de vorige. voorwaarde voldaan is? Neen Ja Moeten er stappen worden gezet indien Neen Moet er nog een Neen niet aan de voorwaarde is voldaan? stap worden gezet? Ja Einde van het (deel)probleem. Programmeer de stap die moet gezet worden indien niet aan de voorwaarde voldaan is. Moet er nog een stap gezet Ja Programmeer die worden indien niet aan de stap onder de vorige. voorwaarde voldaan is? Neen vorig volgend terug home
  35. 35. De enkelvoudige selectie  Opdracht  Maak een programma om te berekenen hoeveel uren een student tijdens een jaar moet studeren. Per studiepunt moet een student 25 uren studeren. De gebruiker geeft het aantal studiepunten van een opleiding in. Op het scherm verschijnt het aantal studie-uren. Indien het aantal studie-uren hoger is dan 1500, verschijnt de boodschap : “U zal geen tijd meer hebben voor uw lief.”  Wat is de voorwaarde in de opdracht  Uren > 1500 vorig volgend terug home
  36. 36. Enkelvoudige selectie: Scenario  Grofstructuur  Invoer  Verwerking  Uitvoer  Verfijningen  Deelprobleem Invoer  Schrijf Zin1  Lees Studiepunten  Deelprobleem Verwerking  Uren Studiepunten x 25  Deelprobleem Uitvoer  Schrijf Zin2, Uren  Als Uren > 1500 dan schrijf Zin3 vorig volgend terug home
  37. 37. Enkelvoudige selectie: Gegevenstabellen Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Zin1 Const lok Alfan. Geef het aantal studiepunten 2 Studiepunten Var glob Num Deelprobleem Verwerking Nr Naam Soort Type Commentaar 1 Uren Var glob Num 2 Studiepunten Var glob Num Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Zin2 Const lok Alfan. Het aantal studie-uren bedraagt 2 Uren Var glob Num 3 Zin3 Const lok Alfan. U zal geen tijd meer hebben voor uw lief vorig volgend terug home
  38. 38. Enkelvoudige selectie: NS-diagram Grofstructuur Verfijningen Studeren Invoer Invoer Schrijf Zin1 Verwerking Lees Studiepunten Uitvoer Verwerking Uren  Studiepunten x 25 Uitvoer Schrijf Zin2, Uren Uren > 1500 Ja Neen Schrijf Zin3 / vorig volgend terug home
  39. 39. Verfijning Enkelvoudige selectie: Invoer PST-diagram Schrijf Lees Zin1 Studiepunten Grofstructuur Studeren Verwerking Invoer Verwerking Uitvoer Einde Uren <-- Studiepunten x 25 Uitvoer Schrijf Zin2, Uren > 1500 Uren Ja Neen Schrijf Zin3 / vorig volgend terug home
  40. 40. De tweevoudige selectie  Opdracht  Maak een programma om te bepalen of een verkoper een premie krijgt. Indien de verkoper voor meer dan 2500 euro verkoopt, krijgt hij een premie van 5 % van het bedrag van de verkochte goederen. Zoniet krijgt hij geen premie. De gebruiker voert het bedrag van de verkochte goederen in, en op het scherm verschijnt het bedrag van de premie, ofwel de boodschap dat de verkoper geen premie krijgt. vorig volgend terug home
  41. 41. Tweevoudige selectie: Scenario  Grofstructuur  Invoer  Verwerking  Uitvoer  Verfijningen  Deelprobleem Invoer  Schrijf Zin1  Lees Verkoop  Deelprobleem Verwerking  Premie Verkoop / 20  Deelprobleem Uitvoer  Als Verkoop > 2500  Schrijf Zin2, Premie  Anders  Schrijf Zin3 vorig volgend terug home
  42. 42. Tweevoudige selectie: Gegevenstabellen Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Zin1 Const lok Alfan. Hoeveel heeft de verkoper verkocht (in €) 2 Verkoop Var glob Num Deelprobleem Verwerking Nr Naam Soort Type Commentaar 1 Premie Var glob Num 2 Verkoop Var glob Num Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Premie Var glob Num 2 Verkoop Var glob Num 3 Zin2 Const lok Alfan. De premie bedraagt (in €) 4 Zin3 Const lok Alfan De verkoper krijgt geen premie vorig volgend terug home
  43. 43. Tweevoudige selectie: NS-diagram Grofstructuur Verfijningen Verkoper Invoer Invoer Schrijf Zin1 Verwerking Lees Verkoop Uitvoer Verwerking Premie  Verkoop / 20 Uitvoer Verkoop > 2500 Ja Neen Schrijf Zin2, Premie Schrijf Zin3 vorig volgend terug home
  44. 44. Tweevoudige selectie: PST-diagram Grofstructuur Verfijning Verkoper Invoer Verwerking Invoer Verwerking Uivoer Einde Schrijf Zin1 Lees Verkoop Premie  Verkoop / 20 Uitvoer Verkoop > 2500 Ja Neen Schrijf Zin2, Schrijf Zin3 Premie vorig volgend terug home
  45. 45. De geneste selectie  Selectie beperkt tot slecht 2 keuzes: waar of vals. Wat bij 3 keuzemogelijkheden?  Opdracht  Maak een programma waarbij de betekenis van een attest aan het einde van het schooljaar wordt weergegeven. De gebruiker geeft de letter van het attest in (A, B of C). Indien het een A-attest is, verschijnt de boodschap "U mag verder in dezelfde studierichting." Indien het een B- attest is, verschijnt de boodschap "U mag verder in een andere richting." Indien het een C-attest is, verschijnt de boodschap "U moet het jaar overdoen." vorig volgend terug home
  46. 46. Geneste selectie: Scenario  Grofstructuur  Invoer  Uitvoer  Verfijningen  Deelprobleem Invoer  Schrijf Zin1  Lees Attest  Deelprobleem Uitvoer  Als Attest = A dan  Schrijf Zin2  Anders  Als Attest = B dan  Schrijf Zin3  Anders  Schrijf Zin 4 vorig volgend terug home
  47. 47. Geneste selectie: Gegevenstabellen Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Zin1 Const lok Alfan. Geef het attest (A, B of C) 2 Attest Var glob Alfan. Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Attest Var glob Alfan. 2 Zin2 Const lok Alfan. U mag verder in dezelfde studierichting 3 Zin3 Const lok Alfan. U mag verder in een andere studierichting 4 Zin4 Const lok Alfan. U moet het jaar overdoen vorig volgend terug home
  48. 48. Geneste selectie: NS-diagram Grofstructuur Verfijningen Attest Invoer Invoer Schrijf Zin1 Uitvoer Lees Attest Uitvoer Attest =A Ja Neen Attest =B Schrijf Zin2 Ja Neen Schrijf Zin3 Schrijf Zin4 vorig volgend terug home
  49. 49. Geneste selectie: Verfijning PST-diagram Invoer Grofstructuur Schrijf Lees Zin1 Attest Uitslag Uitvoer Invoer Uitvoer Einde Attest = A Ja Neen Schrijf Zin2 Attest = B Ja Neen Schrijf Zin3 Schrijf Zin4 vorig volgend terug home
  50. 50. De meervoudige selectie  Teveel geneste selecties worden onoverzichtelijk. Gebruik daarom liever een meervoudige selectie.  Opdracht  Maak een programma om de totaalprijs te berekenen van de aankoop van computers. De gebruiker geeft in hoeveel computers een bedrijf aankoopt, en geeft de basisprijs van een computer in. Wanneer het bedrijf meer dan 25 computers koopt, wordt er 10% korting gegeven. Bij meer dan 50 computers bedraagt de korting 15%. Als meer dan 100 computers worden aangekocht, dan bedraagt de korting 20% en bij meer dan 200 computers wordt zelfs 25% korting toegekend. In een leeggemaakt scherm verschijnt de totaalprijs van de aankoop. vorig volgend terug home
  51. 51. Meervoudige selectie: Scenario  Grofstructuur  Invoer  Deelprobleem Verwerking  Verwerking  Totaal  Aantal x Basisprijs  Uitvoer  Als Aantal  > 200: Totaal  Totaal x 0,75  > 100: Totaal  Totaal x 0,8  Verfijningen  > 50: Totaal  Totaal x 0,85  > 25: Totaal  Totaal x 0,9  Deelprobleem Invoer  Deelprobleem Uitvoer  Schrijf Zin1  Wis scherm  Lees Aantal  Schrijf Zin3, Totaal  Schrijf Zin2  Lees Basisprijs vorig volgend terug home
  52. 52. Meervoudige selectie: Gegevenstabellen Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Zin1 Const lok Alfan. Geef het aantal computers 2 Aantal Var glob Num 3 Zin2 Const lok Alfan. Geef de basisprijs van één computer (in €) 4 Basisprijs Var glob Num Deelprobleem Verwerking Nr Naam Soort Type Commentaar 1 Aantal Var glob Num 2 Basisprijs Var glob Num 3 Totaal Var glob Num Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Zin3 Const lok Alfan. De totaalprijs bedraagt (in €) 2 Totaal Var glob Num vorig volgend terug home
  53. 53. Meervoudige selectie: NS-diagram Grofstructuur Verfijningen Computers Invoer Uitvoer Invoer Schrijf Zin1 Wis scherm Verwerking Lees Aantal Schrijf Zin3, Totaal Uitvoer Schrijf Zin2 Lees Basisprijs Verwerking Totaal  Aantal x Basisprijs Aantal > 200 > 100 > 50 > 25 Totaal  Totaal Totaal  Totaal Totaal  Totaal Totaal  Totaal x 0,75 x 0,8 x 0,85 x 0,9 vorig volgend terug home
  54. 54. Meervoudige selectie: Verwerking PST-diagram Totaal  Totaal x Aantal Aantal Grofstructuur >200 >100 >50 >25 Totaal  Totaal  Totaal  Totaal  Computers Totaal x 0,75 Totaal x 0,8 Totaal x 0,85 Totaal x 0,9 Invoer Verwerking Uitvoer Einde Uitvoer Verfijning Schrijf Zin3, Wis scherm Totaal Invoer Schrijf Lees Schrijf Lees Zin1 Aantal Zin2 Basisprijs vorig volgend terug home
  55. 55. De iteratie of herhaling  Meerdere keren hetzelfde programmeren wordt saai en op den duur onoverzichtelijk  Bovendien meer programmacode => softwarepakket groter  Er bestaan 2 soorten herhalingen:  Begrensde herhaling: het aantal herhalingen is bekend  Voorwaardelijke herhaling: het aantal herhalingen is niet gekend en is dus afhankelijk van een bepaalde voorwaarde vorig volgend terug home
  56. 56. E k l e s t a p K a n d e s Jt aa p P m o eg e r a m d a n r r m e e r d e é é n k e e r w o r h d e e r n h a g ae l z t e r t u ? c s t u u r N e e n N e e n I n d i e n e j n i e e J a w e r k t : m o e e v e n e e n s w o r M o e t d e J sa t Pa r p o g z r o a w mi e z mo e e r d e s t a p a t l d j i w o r d e n g g e z e tn ? e w o o o n d e r d e v o r g e . i De N e e n begrensde B e s p e a e l a c l t d e i e s t v r o u o c r t w u a u a r r . d e v a n d e herhaling: P g r v e o o z g o e r r t a w m a w a o m r r d d e e e e n r v o n i d d l d e a e i a n s n t a a s i a p . n d d e i e m o e t Schema M w o o r e d t e n e r J n i a d n P e i o r n g o g r e e n a m a a n s m d e t a p e e r g e d z e i e t s t a p o n d e r d e v o r g i e . v o o r w a a r d e v o ld a a n s ? i N e e n J a M o e t e n e r s t a p p e n w o r d e n Mg e o z e e t t e i r N e ne n d i e n n e i t a a n d eN e v e on o r w a a r d e s i v so t l aa pa n w d ? o r d e n J a P r o g r a m m e e r d e s t a p d e i m o e t E n d e i g e z e t w o r d e n n i d e i n n e i t a a n d e ( d e e l) v o o r w a a r d e v o d l a a n s i . M o e t e J r a I n so g d i e e sn t e J a as pt a ap f hg ae nz ke et l k j i w o r d e n n d iv n i e a n n ie te n a a n e n i e u d ew e v o o r w a a r d e v o vo o lw a a n r d a a r d ie ? s ? N e e n N e e n P r o g r a m m e e r d e i s t a p o n d e r d e v o r g i e . vorig volgend terug home
  57. 57. Begrensde herhaling: Opdracht  Opdracht:  Maak een programma om de totale winst van een bedrijf over de twaalf maanden van een jaar te berekenen. De gebruiker geeft voor elke maand de inkomsten en de uitgaven in (in euro). De computer berekent de totale winst over het ganse jaar, en die verschijnt op het scherm vorig volgend terug home
  58. 58. Begrensde herhaling: Scenario  Grofstructuur  Invoer  Uitvoer  Verfijningen  Deelprobleem Invoer  Jaarwinst  0  Herhaal Teller van 1 tot 12  Schrijf Zin1, Teller  Lees Inkomsten  Schrijf Zin2, Teller  Lees Uitgaven  Maandwinst  Inkomsten x Uitgaven  Jaarwinst  Jaarwinst + Maandwinst  Deelprobleem Uitvoer  Schrijf Zin3, Jaarwinst vorig volgend terug home
  59. 59. Begrensde herhaling: Gegevenstabellen Deelprobleem Invoer Nr Naam Soort Type Commentaar 1 Jaarwinst Var glob Num. 2 Teller Var lok Num 3 Zin1 Const lok Alfan. Geef de inkomsten van de maand 4 Inkomsten Var glob Num 5 Zin2 Const lok Alfan. Geef de uitgaven van de maand 6 Uitgaven Var lok Num 7 Maandwinst Var lok Num Deelprobleem Uitvoer Nr Naam Soort Type Commentaar 1 Zin3 Const lok Alfan. De jaarwinst bedraagt 2 Jaarwinst Var glob Num vorig volgend terug home
  60. 60. Begrensde herhaling: NS-diagram Grofstructuur Verfijningen Winsten Invoer Invoer Jaarwinst  0 Uitvoer Teller van 1 tot 12 Schrijf Zin1, Teller Lees Inkomsten Schrijf Zin2, Teller Lees Uitgaven Maandwinst  Inkomsten + Uitgaven Jaarwinst  Jaarwinst + Maandwinst Uitvoer Schrijf Zin3, Jaarwinst vorig volgend terug home
  61. 61. Winsten Begrensde herhaling: Invoer Uitvoer Einde PST-diagram Invoer Jaarwinst Teller van 0 1 tot 12 Winsten 1 Schrijf Zin1, Lees Schrijf Zin2, Lees Invoer Uitvoer Einde Teller Inkomsten Teller Uitgaven Invoer Maandwinst  Jaarwinst  1 Inkomsten + Uitgaven Jaarwinst + Maandwinst Uitvoer 1 Schrijf Zin3, Jaarwinst 1 vorig volgend terug home
  62. 62. Begrensde herhaling: Constante of variabele herhaling  Het aantal herhalingen kan ook op basis van een variabele plaatsvinden  De gebruiker zelf of een bereking in het programma kan bepalen hoeveel keer de herhaling plaatsvindt. vorig volgend terug home
  63. 63. De voorwaardelijke herhaling  Soms is een herhaling niet afhankelijk van een grenswaarde, maar wel van een voorwaarde vorig volgend terug home
  64. 64. De voorwaardelijke herhaling: Schema deel 1 E k l e s t a p J a W o r d t J a h e t a a n t a l K a n d e s t a p m e e r B d a n e g r e n d s e h e r h a l n g i h e r h a ln g e n i v a s t g e le g d é é n k e e r w o r d e n g e z e t E in d w ? a r a d e = c o n s t a n t d o o r d e p r o g r a m m e u r ? N e e n N e e n W o r d t h e t a a n t a l h e r h a n i l gJ ea n B e v g a r s e t n g d e s l e g d h e e r h a l n g i d o o r d e E ie d w a a r g n b r u i k e d e o = r f v a r a b e i l h e t p r o g r a m m a z e lf ? N e e n W o r d t J a h e t a a n t a l V o o r w a a r d e k j i l e h e r h a ln g e n i b e p a a d l h e r h a n i l g d o o r e e n v o o r w a a r d e ? P r o g r a m m e e r d e h e r h a a s l t r u c t N e e n J a I n d ie n e j n i e e n h e r h w e r k t : m o e t d e v e v e n v a a k w o r d e n h M o e t d e J s t P ar po g zr oa w i a m e zm o e e r d e s t a p a t l d j i w o r d e n g e g we o z o e n t ? o n d e r d e v o r g i e . N e e n B e p a a l d e v o o r w a a r d e v a n d e vorig volgend terug home

×