SlideShare a Scribd company logo
1 of 71
Algoritmiek

      Inleiding tot programmeren

      Jean-Pierre Pluymers




                                   volgend
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
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
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
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
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
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
Problemen oplossen


     Top-down methode




                        vorig volgend terug   home
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
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
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
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
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
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
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
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
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
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
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
Gegevenstabellen

       Voor overzicht van gegevens
       Elk deelprobleem een aparte gegevenstabel


Nr Naam          Soort   Type   Commentaar

    1

    2




                                             vorig volgend terug   home
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
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
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
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
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
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
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
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
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
Controlestructuren


      De sequentie
      De selectie
      De iteratie


                     vorig volgend terug   home
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
De voorwaardelijke herhaling

   Soms is een herhaling niet afhankelijk
    van een grenswaarde, maar wel van
    een voorwaarde




                                      vorig volgend terug   home
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
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek
Algoritmiek

More Related Content

Viewers also liked

Night Light Cities
Night Light CitiesNight Light Cities
Night Light Cities
Tom Kuipers
 
I sense prowareness 7 star development methodology
I sense prowareness   7 star development methodologyI sense prowareness   7 star development methodology
I sense prowareness 7 star development methodology
ISense Bv
 
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for ReformHarmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
NASHP HealthPolicy
 
ζάκυνθος
ζάκυνθοςζάκυνθος
ζάκυνθος
teo70
 
Holiday In France
Holiday In  FranceHoliday In  France
Holiday In France
Tom Kuipers
 
Eligibility Enrollment Overview: What ACA Means for States
Eligibility Enrollment Overview: What ACA Means for StatesEligibility Enrollment Overview: What ACA Means for States
Eligibility Enrollment Overview: What ACA Means for States
NASHP HealthPolicy
 
State to State Exchange on Health Insurance Exchanges
State to State Exchange on Health Insurance ExchangesState to State Exchange on Health Insurance Exchanges
State to State Exchange on Health Insurance Exchanges
NASHP HealthPolicy
 
λιθάνθρακας
λιθάνθρακαςλιθάνθρακας
λιθάνθρακας
teo70
 
Tuning Up the Workforce Building Capacity to Meet Demand
Tuning Up the Workforce Building Capacity to Meet DemandTuning Up the Workforce Building Capacity to Meet Demand
Tuning Up the Workforce Building Capacity to Meet Demand
NASHP HealthPolicy
 

Viewers also liked (19)

Il slides final
Il slides finalIl slides final
Il slides final
 
Night Light Cities
Night Light CitiesNight Light Cities
Night Light Cities
 
Wisconsin’s Health Reform Models and Maximizing Enrollment Experience
Wisconsin’s Health Reform Models and Maximizing Enrollment Experience Wisconsin’s Health Reform Models and Maximizing Enrollment Experience
Wisconsin’s Health Reform Models and Maximizing Enrollment Experience
 
I sense prowareness 7 star development methodology
I sense prowareness   7 star development methodologyI sense prowareness   7 star development methodology
I sense prowareness 7 star development methodology
 
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for ReformHarmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
Harmonizing Eligibility, Enrollment and Coverage: NY State’s Roadmap for Reform
 
tomlinson- Virginia's Medicaid medical home pilot
tomlinson- Virginia's Medicaid medical home pilottomlinson- Virginia's Medicaid medical home pilot
tomlinson- Virginia's Medicaid medical home pilot
 
Streamlining Eligibility and Enrollment: Models for Health Reform Implementation
Streamlining Eligibility and Enrollment: Models for Health Reform ImplementationStreamlining Eligibility and Enrollment: Models for Health Reform Implementation
Streamlining Eligibility and Enrollment: Models for Health Reform Implementation
 
ζάκυνθος
ζάκυνθοςζάκυνθος
ζάκυνθος
 
Codigo Tributario Boliviano AIT
Codigo Tributario Boliviano AITCodigo Tributario Boliviano AIT
Codigo Tributario Boliviano AIT
 
Holiday In France
Holiday In  FranceHoliday In  France
Holiday In France
 
Ok slides final
Ok slides finalOk slides final
Ok slides final
 
Voip
VoipVoip
Voip
 
Lect03 slides
Lect03 slidesLect03 slides
Lect03 slides
 
Eligibility Enrollment Overview: What ACA Means for States
Eligibility Enrollment Overview: What ACA Means for StatesEligibility Enrollment Overview: What ACA Means for States
Eligibility Enrollment Overview: What ACA Means for States
 
State to State Exchange on Health Insurance Exchanges
State to State Exchange on Health Insurance ExchangesState to State Exchange on Health Insurance Exchanges
State to State Exchange on Health Insurance Exchanges
 
λιθάνθρακας
λιθάνθρακαςλιθάνθρακας
λιθάνθρακας
 
Los mejores
Los mejoresLos mejores
Los mejores
 
Tuning Up the Workforce Building Capacity to Meet Demand
Tuning Up the Workforce Building Capacity to Meet DemandTuning Up the Workforce Building Capacity to Meet Demand
Tuning Up the Workforce Building Capacity to Meet Demand
 
Lpscdsjovemguarda
LpscdsjovemguardaLpscdsjovemguarda
Lpscdsjovemguarda
 

Algoritmiek

  • 1. Algoritmiek Inleiding tot programmeren Jean-Pierre Pluymers volgend
  • 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. 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. 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. 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. 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. 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. Problemen oplossen Top-down methode vorig volgend terug home
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. Gegevenstabellen  Voor overzicht van gegevens  Elk deelprobleem een aparte gegevenstabel Nr Naam Soort Type Commentaar 1 2 vorig volgend terug home
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. Controlestructuren De sequentie De selectie De iteratie vorig volgend terug home
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. De voorwaardelijke herhaling  Soms is een herhaling niet afhankelijk van een grenswaarde, maar wel van een voorwaarde vorig volgend terug home
  • 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