Sequentie. Methode voor het ontwerpen van een programmastructuur



Vergelijkbare documenten
1.2 ENVIRONMENT DIVISION.

De bouwstenen van het programmeren 1

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

PSD. Reeksen van logische procedures om problemen op te lossen in een eindig aantal stappen.

Programmeren. Inleiding

Inventaris. Basisprincipe In dit hoofdstuk beheer je de verwerking van de inventaris naar de stock

Count-e Statistieken. Statistieken

HANDLEIDING P R I J S A F S P R A K E N

3. Structuren in de taal

Hunter Retail (POS) Documentatie v1.1. Documentatie Hunter-Retail (POS) Handleiding 1.1

4. Schematechnieken. In dit hoofdstuk worden drie schematechnieken behandeld:

gewoon Start Event (Gebeurtenis) Deze lege cirkel, met dunne rand, geeft de aanvang (start) van het proces weer.

Monitor WINGS Software nv Snelheid & zekerheid

HANDLEIDING FRIREC. Versie 1.2.2

Small Basic Programmeren Text Console 2

# seetut_20 $ De Sjabloon Editor Toepassen + seetut:0370 K Sjablonen;Algemeen;Naam Wijzigen Sjabloon;Ontwerp;Sjabloon Editor;Sjabloon Openen

VOORBEELDEN VRIJE VELDEN (op verrichtingen)

Importeren artikelen:

Datum. Vraag het bedrag in BEF. Reken om naar EURO. Toon het bedrag in EURO. --- Vraag het bedrag in BEF Reken om naar EURO---

Informatica. 2 e graad 2 e jaar. De Mol W.

Inbrengen accijnsverhogingen. (Op datum)

Samenvoegen met Word en Excel 2010

SQL PL als programmeertaal Onze ervaringen

Hunter CRM. POS Documentatie

{button Installeer Zelfstudie Bestanden, execfile(seedatauk.exe,tutorial.ctb;tutorial nn.see)}

van PSD naar JavaScript

Aanpassingen flexigar Versie V 7 2 4

Gebruik van constructievlakken.

VITRIS Instructie In gebruik name 6% BTW [ ]

Windows 8, Windows 8.1, deel II

Logistiek. Voorschotten. Flexibel, efficiënt & accuraat

LEERLIJN Basisvaardigheden ICT

Chips zakje.

MULTICOM 112. Gebruiksinstructies CD

Handleiding digicode: Promi500 Kaarten en codes

HANDLEIDING STATUSSEN

Inleiding Assortimentsupdate

stappenplannen Meerjarenbegroting

VOORBEELDEN VRIJE VELDEN (op verrichtingen)

P O W E R P O I N T - onderdeel van Microsoft Office 2000 pakket (nl) De Windows versies van Powerpoint kunnen onderling afwijken

Vooreerst moeten alle gebruikers kenbaar gemaakt worden door ze een bepaalde code toe te kennen.

fx-9860gii Toenames, veranderingen, hellingen e.d.

Klik op OK om verder te gaan. U ziet het volgende scherm verschijnen:

Producten toevoegen. Inleiding

1. Achtergronden verwijderen (op basis van Photoshop CS2/CS3)

RAPPORT BASISONDERWIJS

Is deze niet goed leesbaar? Klik hier voor de webversie.

Deel A. Breuken vergelijken

Uitwerking opdracht 10.4 Functioneel ontwerp kassasysteem voor een restaurant

Handleiding Incura Boekhouding Invoeren en verwerken bankmutaties

Expert/M Plus. Importeren saldibalans uit Excel.

Legal Eagle Agenda handleiding versie 2.8 december 2007

Basistechnieken Microsoft Excel in 15 minuten

HANDLEIDING V E R Z A M E L F A C T U R E N

TIPS EN HINTS VOOR BEGINNERS. Klik nu in de Menu balk op het menu item ELEMENT. Onder het woord Element gaat er nu vervolgens nu een sub menu open

Handleiding ZKM Online. Versie 2.1

Oefeningen Jaarproject I

Inleiding. Algoritmiek

Zie ook de insdtructiefilm die op de site staat onder Redacteuren login.

1. Inloggen Uw account Wachtwoord veranderen Alle gegevens bekijken Credits (mail-bundels) kopen 3

Gebruikers handleiding. JupiterPro. P2000 alarmontvanger

Handleiding IVN Ledenadministratie

Handleiding. Unitouch. Aanpassen artikels en prijzen 1/15

Programmeeropgaven. Sem Prog DD

3/3/2013 By Ing. R. Ellis 1

Release Notes v

Numerieke benadering van vierkantwortels

Boekje met opdrachten

Portfolio Gerard Buijze

HANDLEIDING LVS. versie 2.0 dd 15/4/15

KASSA Gebruikersgids Boekenbeurs

De toepassing Doorsturen MZG, MPG, FinHostaPortal

II. ZELFGEDEFINIEERDE FUNCTIES

Programmeren A. Genetisch Programma voor het Partitie Probleem. begeleiding:

Opgave Tussentijdse Oefeningen Jaarproject I Reeks 4: Lcd Interface & Files

CRM - Salesplanner - NL

Actualiseren van offertes.

OPDRACHT Opdracht 2.1 Beschrijf in eigen woorden wat het bovenstaande PSD doet.

CERTUS, Handleiding (v 2.1) 21/01/2013

Paasachtergrond tekenen

WERKKAART INSUSOFT Relaties

Werken met handterminal binnen LC-DETAS:

IBS 1.0. internetbestelsysteem. Handleiding

10: Statistieken en rapportages met Excel

Proforma werking Logistiek

Trimestriële afsluiting

HOE DE JAARLIJKSE LISTING AANMAKEN VAN DE BTW-PLICHTIGE KLANTEN

OP WEG MET TYP-TOP ONLINE

AFO Beheer parameters drukwerk

Diverse items. Voorstel aanpassingen Gemeentelijke Boekhouding 015/ /

Korte praktische handleiding Inschrijf systeem Markten georganiseerd door de HOB Den Helder

Examen Datastructuren en Algoritmen II

GEBRUIKERSHANDLEIDING T8530

Transcriptie:

1 ONTWERPTECHNIEKEN Methode voor het ontwerpen van een programmastructuur Bouwstenen Sequentie Selectie Iteratie 1.1 Achtergrond 1.1.1 Ruimtelijk denken in plaats van sequentieel denken PROGRAMMA architect ONTWERP aannemer UIVOERING RUIMTELIJK DENKEN SEQUENTIEEL Programmeur 1.1.2 Probleemstructuur = Programmastructuur PROBLEEM => PROGRAMMA Dus Probleemstructuur => programmastructuur Dit betekent dat men in het programma de verschillende elementen van het probleem moet zien. GEVOLG: Probleemwijziging => wijziging in programmastructuur PROBLEEM: Waar haalt men probleemstructuur? DATA SCHOOL

INVOER PROGRAMMA UITVOER Input/output structuur => Programmastructuur SEQ SEL IT SEQ SEL IT 1.2 Afbeeldingsvormen 1.2.1 Systeemnetwerkdiagram (SND) SND voorstelling van het systeem = verzamelen van programma s, gegevensstromen en hun koppelingen programma rechthoek gegevensstroom cirkel koppeling pijl Voorbeeld stud-bestand P-rapporten rapporten punten-bestand Invoer klavier Stud P-studenten stud-bestand P-rapporten rapporten invoer klavier P-punten punten-bestand punten

1.2.2 Structuurdiagram - structuurtekst Zowel de structuur van de datastromen als deze van het programma worden op eenzelfde grafische wijze voorgesteld, nl. door middel van blokken die in een boomvormige structuur georganiseerd zijn. Ieder elementair structuurtype wordt voorgesteld door 2 niveaus: Het bovenste niveau heeft altijd 1 enkel blok, het onderste 1 of meer blokken. 1.2.2.1 Structuurtype SEQUENTIE a) Structuurdiagram (grafische voorstelling) A B C D Lees: A is een sequentie, bestaande uit element B, gevolgd door element C en gevolgd door element D. Opm: De volgorde van de elementen is van belang b) Structuurtekst (weergave onder vorm van tekst) (pseudo-code) A seq A end B; C; D; Voorbeeld: bij volgende 2 vbn stemt de programmastructuur overeen met de datastructuur. 1) Datastructuur hoofding midden afsluiting Een factuur bestaat uit een hoofding, gevolgd door een midden, gevolgd door een afsluiting. 2) Programmastructuur

Een programma om 1 enkele factuur te maken, bestaat uit een programma-onderdeel om de hoofding te maken, gevolgd door een programma-onderdeel om het midden te maken, gevolgd door het programma-onderdeel om de afsluiting te maken. 1.2.2.2 Structuurtype SELECTIE a) Structuurdiagram (grafische voorstelling) A B C D Lees: A is een selectie van ofwel element B, ofwel element C, ofwel element D Opm : De volgorde van de elementen op het onderste niveau is van geen belang b) Structuurtekst (weergave onder vorm van tekst) (pseudo-code) A sel B; A alt; C; A alt; D; A end; Voorbeeld 1) Datastructuur 1. Factuur 2. Lijst klanten 3. Statistiek Keuze : Een inputrekwest voor een programma is ofwel een rekwest om een factuur te maken, ofwel een rekwest om de lijst van de klanten te tonen ofwel een rekwest om een verkoopsstatistiek af te drukken. 2) Programmastructuur Het programma moet ofwel een factuur maken ofwel een klantenlijst tonen ofwel een verkoopsstatistiek afdrukken.

Opm: een speciale soort selectie is deze waarbij één van de onderste blokken leeg is; een leeg blok wordt aangeduid door er een streepje in te zetten. 1.2.2.3 Structuurtype ITERATIE a) Structuurdiagram (grafische voorstelling) A B * Lees: A is een iteratie bestaande uit de herhalende elementen B, waarvan er dus bij definitie 0, 1 of meerdere kunnen zijn, naargelang de omstandigheden b) Structuurtekst (weergave onder vorm van tekst) (pseudo-code) A itr B; A end Voorbeeld 1) Datastructuur: een factuurmidden bestaat uit factuurlijnen. H M A 2) Programmastructuur: In een facturatieprogramma komt een routine voor om een factuurmidden te maken. Deze routine roept een andere routine op voor elke factuurlijn die moet gemaakt worden. Doorgaans bestaat een datastructuur en dus ook een programmastructuur uit meer dan 2 niveaus. Op ieder van deze niveaus komen dan 1 of meerdere iteraties, selecties en sequenties voor. Aldus verkrijgen we voor beide structuren een boomvorm, waarbij de blokken van het onderste niveau de bladeren zijn. Voorbeeld:

1.3 ONTWERPPROCEDURE De JSP-ontwerpprocedure bestaat uit 6 stappen Netwerkstap (systeemnetwerkdiagram) Gegevensstap (datastructuren) Programmastap (programmastructuur) Opdrachten en condities-stap (Opdrachten en condities) Tekststap (pseudocode) Implementatiestap (Implementatie code) We zullen deze stappen voorstellen en illustreren met een zeer eenvoudig voorbeeld. Opgave 10 Ontwerp een COBOL-programma dat de verkoopprijs van meerdere artikels berekent Artikelgegevens artikelnummer N 6 pos (9(6)) aankoopprijs N 4 pos (geheel) (9(4)) winstpercentage N 99V99 of 99 BTW-percentage N 99V99 of 99 Verkoopprijs N 9(4)V99 of 9999 verkoopprijs = aankoopprijs * (1 + winstpercentage / 100) * (1 + BTW-Percentage / 100) SCHERM-1 HOGESCHOOL GENT Datum BEREKENEN VERKOOPPRIJS Artikelnummer : Aankoopprijs : Winstpercentage : BTW-percentage : Verkoopprijs : Naam Opgave 10

Het programma moet stoppen als men als artikelnummer 0 ingeeft. Dialoogprogramma (interactief programma) BATCH-programma Dialoog tussen gebruiker en programma INPUT (gebruiker) OUTPUT (programma) Artikelgegevens SCHERM_1 Artikelnummer (not = 0) aankoopprijs, artikelnummer, winstperc., btw-perc. Verkoopprijs Artikelnummer (not = 0) aankoopprijs, artikelnummer, winstperc., btw-perc. Artikelnummer = 0 verkoopprijs 1) Systeemnetwerkdiagram Teken een SND waarbij het te ontwerpen programma voorgesteld wordt door een rechthoek en waarbij de input- en outputstromen weergegeven zijn door cirkels. Systeemnetwerkdiagram I-KLAVIER P-Verkoopprijs O-SCHERM 2) Datastructuren - Gegevensstap Teken een structuurdiagram voor iedere datastroom. Merk op dat de inputstroom (=I-klavier) bestaat uit een herhaling van artikelgegevens. Merk op dat de outputstroom (=O-scherm) bestaat uit scherm-1 gevolgd door een herhaling van verkoopprijzen (=O-scherm-body)

Datastructuren invoer: uitvoer: I-KLAVIER (1) O-SCHERM (1) ARTIKELGEGEVENS * (2) SCHERM-1 O-SCHERM-BODY 3) Programmastructuur VERKOOPPRIJS * (2) Hier stelt men de programmastructuur op als volgt. Meng de verschillende datastructuren tot 1 enkele programmastructuur. Hierbij moet men er zorg voor dragen dat ieder element in de datastructuren overeenkomt met 1 element in de programmastructuur en dat 2 overeenkomstige elementen van de datastructuren slechts vertegenwoordigd worden door 1 en hetzelfde element in de programmastructuur. We moeten dus eerst de overeenkomst(en) onderzoeken van elementen in de input-structuur met elementen in de output-structuur. Twee elementtypes uit beide structuren (1 uit input en 1 uit output) komen overeen als er van dat elementtype in beide structuren evenveel voorkomen, en als daarenboven de elementen die tot dat type behoren in beide structuren in dezelfde volgorde voorkomen. Programmastructuur (1) INPUT-KLAVIER OUTPUT-SCHERM beide komen 1 maal voor, dus ook zelfde volgorde (2) ARTIKELGEGEVENS VERKOOPPRIJS er zijn evenveel verkoopprijzen als artikelgegevens, zelfde volgorde V-INPUT-KLAVIER M-OUTPUT-SCHERM P-Verkoopprijs M-SCHERM-1 M-O-SCHERM-BODY 1 7 C1 V-ARTIKELGEGEVENS * M-VERKOOPPRIJS 4 5 6 3 2 7 V = VERWERK (INPUT) M = MAAK (OUTPUT)

4) Opdrachten en condities-stap Vooreerst stellen we ons de vraag welke opdrachten dit programma zal moeten uitvoeren en welke condities moeten worden gebruikt (selecties en iteraties). Van beide maken we een lijst. Aan iedere opdracht en aan iedere conditie geven we een nummer. De 2 de stap van deze fase bestaat erin de opdrachten en de condities een plaats te geven binnen de programmastructuur.! Merk op dat de operatie (7) voerin (klavier,artikelnummer) tweemaal voorkomt. Een eerste maal bovenaan en een tweede maal onderaan. Dit noemt men het principe van het vooruitlezen. Het principe van het vooruitlezen is noodzakelijk omdat we met iteraties werken, waar bij het begin van de iteratie de conditie C1 getest wordt. Testen van deze conditie betekent dat we nagaan of de waarde 0 werd ingelezen. Om deze test te kunnen doen moet er vooraf ten minste 1 artikelnummer zijn gelezen. Opdrachten en condities C1) ZOLANG (artikelnummer 0) DOE 1) voeruit (scherm, SCHERM-1) 2) voeruit (scherm, verkoopprijs) 3) verkoopprijs aankoopprijs * (1+ winstpercentage / 100) * (1+ btwpercentage / 100) 4) voerin (klavier, aankoopprijs) 5) voerin (klavier, winstpercentage) 6) voerin (klavier, btwpercentage) 7) voerin (klavier, artikelnummer) 5) Tekstfase Het programmastructuurdiagram wordt nu getransformeerd naar een structuurtekst (pseudo-code) Tekststap P-oef10 BEGIN M-SCHERM-1 M-O-SCHERM-BODY EINDE M-SCHERM-1 BEGIN Voeruit (scherm, SCHERM-1) Voerin (klavier, artikelnummer) EINDE M-O-SCHERM-BODY BEGIN ZOLANG (artikelnummer 0)

DOE V-artikelgegevens-M-verkoopprijs EINDE-ZOLANG-DOE EINDE V-artikelgegevens-M-verkoopprijs BEGIN voerin (klavier, aankoopprijs) voerin (klavier, winstpercentage) voerin (klavier, btwpercentage) verkoopprijs aankoopprijs (1+winstpercentage/100) (1+btwpercentage/100) voeruit (scherm, verkoopprijs) voerin (klavier, artikelnummer) EINDE 6) Implementatiestap Coderen van het programma in de programmeertaal, hier COBOL Opgave 11 : Menugestuurd programma - Ontwerp een Cobol-programma dat van artikels, de verkoopprijs, de aankoopprijs of het winstpercentage berekent al naargelang de ingevoerde keuze. Het programma wordt gestuurd door het volgend menu: SCHERM-0 HOGESCHOOL GENT Datum BEREKENENINGEN 1. Verkoopprijs : 2. Aankoopprijs : 3. Winstpercentage : 0. EINDE : Keuze : Naam Opgave 11

Vervolgens komt men in 1 van de volgende schermen: SCHERM-1 HOGESCHOOL GENT Datum BEREKENENEN VAN VERKOOPPRIJS Artikelnummer : Omschrijving : Aankoopprijs : Winstpercentage : Verkoopprijs : Druk op een toets Naam Opgave 11 SCHERM-2 verkoopprijs = aankoopprijs * (1 + winstpercentage / 100) HOGESCHOOL GENT Datum BEREKENENEN VAN AANKOOPPRIJS Artikelnummer : Omschrijving : Verkoopprijs : Winstpercentage : Aankoopprijs : Druk op een toets Naam Opgave 11 aankoopprijs = verkoopprijs / (1 + winstpercentage / 100)

SCHERM-3 HOGESCHOOL GENT Datum BEREKENENEN VAN WINSTPERCENTAGE Artikelnummer : Omschrijving : Aankoopprijs : Verkoopprijs : Winstpercentage : Druk op een toets Naam Opgave 11 winstpercentage = (verkoopprijs - aankoopprijs) * 100 aankoopprijs artikelgegevens: artikelnummer NUM 6 pos. omschrijving ALFANUM 30 pos. aankoopprijs NUM 4 pos. verkoopprijs NUM 6 pos. winstperc NUM 2 pos.

Dialoog : tussen gebruiker en programma INPUT (gebruiker) OUTPUT (programma) SCHERM-0 keuze (1) O-RECORD I-RECORD SCHERM-1 artnr,omsch, ap, wp (I-1) O-1 I verkoopprijs N toets P SCHERM-0 U keuze (1) O T SCHERM-1 U - artnr,omsch, ap, wp (I-1) O-1 T B verkoopprijs P O toets U D SCHERM-0 T Y keuze (2) - SCHERM-2 artikelgeg (3) O-2 O aankoopprijs D toets Y SCHERM-0 keuze 0 B 1) SND I-KLAVIER - P-Berekeningen O- SCHERM

2) Gegevensstap - datastructuren invoer : I-KLAVIER (1) (2) keuze INPUT-BODY (3) I-RECORD * (4) (5) input-keuze keuze (6) input-1 input-2 input-3 (7) (8) (9) uitvoer : OUTPUT-SCHERM (1) (2) SCHERM-0 OUTPUT-BODY (3) O-RECORD * (4) (5) output-keuze SCHERM-0 (6) output-1 output-2 output-3 (7) (8) (9)

3) Programmastap P-BEREKENINGEN V-KEUZE M-SCHERM-0 V-INPUT-BODY M-OUTPUT-BODY 1 17 c1 V-I-record * M-O-record V-input-keuze M-output-keuze c2 c3 c4 V-input-1 V-input-2 V-input-3 M-output-1 M-output-2 M-output-3 2 12 15 5 3 12 15 6 4 12 14 7 11 13 9 16 11 14 8 16 11 13 10 16 V-keuze M-SCHERM-0 1 17 4) Opdrachten en condities c1) ZOLANG (keuze 0) DOE c2) ALS (keuze = 1) DAN c3) ALS (keuze = 2) DAN c4) ALS (keuze = 3) DAN 1) voeruit (scherm, SCHERM-0) 2) voeruit (scherm, SCHERM-1) 3) voeruit (scherm, SCHERM-2) 4) voeruit (scherm, SCHERM-3) 5) voeruit (scherm, verkoopprijs) 6) voeruit (scherm, aankoopprijs) 7) voeruit (scherm, winstpercentage) 8) aankoopprijs verkoopprijs * (1+ winstpercentage / 100) 9) verkoopprijs aankoopprijs / (1+ winstpercentage / 100) 10) winstpercentage (verkoopprijs - aankoopprijs) * 100 / aankoopprijs 11) voerin (klavier, artikelnummer) 12) voerin (klavier, omschrijving) 13) voerin (klavier, aankoopprijs) 14) voerin (klavier, verkoopprijs) 15) voerin (klavier, winstpercentage) 16) voerin (klavier, toets) 17) voerin (klavier, keuze) + controle

5) Tekststap P-Berekeningen-oef11 Begin V-KEUZE-M-SCHERM-0 V-INPUT-BODY-M-OUTPUT-BODY Einde V-KEUZE-M-SCHERM-0 Begin voeruit (scherm, SCHERM-0) voerin (klavier, keuze) Einde V-INPUT-BODY-M-OUTPUT-BODY Begin ZOLANG (keuze 0) DOE V-I-RECORD-M-O-RECORD EINDE-ZOLANG-DOE Einde V-I-RECORD-M-O-RECORD Begin V-INPUT-KEUZE-M-OUTPUT-KEUZE V-KEUZE-M-SCHERM-0 Einde V-INPUT-KEUZE-M-OUTPUT-KEUZE Begin ALS (keuze = 1) DAN V-INPUT-1-M-OUTPUT-1 EINDE-ALS-DAN ALS (keuze = 2) DAN V-INPUT-2-M-OUTPUT-2 EINDE-ALS-DAN ALS (keuze = 3) DAN V-INPUT-3-M-OUTPUT-3 EINDE-ALS-DAN Einde V-INPUT-1-M-OUTPUT-1 Begin voeruit (scherm, SCHERM-1) voerin (klavier, artikelnummer) voerin (klavier, omschrijving) voerin (scherm, aankoopprijs) voerin (klavier, winstpercentage) verkoopprijs aankoopprijs * (1+ winstpercentage / 100) voeruit (scherm, verkoopprijs) voerin (klavier, toets) Einde

V-INPUT-2-M-OUTPUT-2 Begin voeruit (scherm, SCHERM-2) voerin (klavier, artikelnummer) voerin (klavier, omschrijving) voerin (klavier, verkoopprijs) voerin (klavier, winstpercentage) aankoopprijs verkoopprijs / (1+ winstpercentage / 100) voeruit (scherm, aankoopprijs) voerin (klavier, toets) Einde V-INPUT-3-M-OUTPUT-3 Begin voeruit (scherm, SCHERM-3) voerin (klavier, artikelnummer) voerin (klavier, omschrijving) voerin (scherm, aankoopprijs) voerin (klavier, verkoopprijs) winstpercentage (verkoopprijs - aankoopprijs) * 100 / aankoopprijs voeruit (scherm, winstpercentage) voerin (klavier, toets) Einde 6) Implementatiestap Cobolcode