2.10 Voorbeeld: eindtijd

Een juridisch adviseur geeft op afspraak juridische adviezen. Hij heeft als stelregel dat een zitting nooit langer gepland mag zijn dan 1 uur. Een computerprogramma vraagt om de begintijd en de tijdsduur van een zitting. Het programma controleert of de begintijd een geldig tijdstip is en of de duur niet boven de 60 minuten komt. Vervolgens berekent het programma de eindtijd van de zitting.

De oplossing voor dit probleem is gegeven in de vorm van een programmastructuurdiagram.

Figuur 2.2 PSD Eindtijd

Programmastructuurdiagram

Met de stof uit de eerste twee hoofdstukken kunnen we vervolgens een volledig COBOL-programma schrijven.


 IDENTIFICATION DIVISION.
 Program-id. Eindtijd.
*Auteur: Andree Hollander
*Datum:  1988/03/16

 DATA DIVISION.
 Working-storage section.
 01 Uur                  picture 9(2).
 01 Minuut               picture 9(2).
 01 Duur-in-minuten      picture 9(2).

 PROCEDURE DIVISION.
 Invoer-begintijd.
     Display "Geef de begintijd op in 24-uurs-notatie."

*    -------------------------------------------------- 
*    De computer vraagt om een getal voor het uur,
*    en controleert of het hoogstens 23 is. Dit wordt
*    herhaald totdat het getal voldoet.
*    -------------------------------------------------- 
     Perform with test after until Uur <= 23
        Display "Welk uur (00-23)?"
        Accept Uur
        If Uur > 23 then
           Display "Uur kan niet groter dan 23 zijn!"
        End-if
     End-perform

*    -------------------------------------------------- 
*    De computer vraagt om een getal voor de minuut,
*    en controleert of het hoogstens 59 is. Dit wordt
*    herhaald totdat het getal voldoet.
*    -------------------------------------------------- 
     Perform with test after until Minuut <= 59
        Display "Welke minuut (00-59)?"
        Accept Minuut
        If Minuut > 59 then
           Display "Minuut kan niet groter dan 59 zijn!"
        End-if
     End-perform.

*    -------------------------------------------------- 
*    De computer vraagt om een getal voor de tijdsduur,
*    en controleert of het hoogstens 60 is. Dit wordt
*    herhaald totdat het getal voldoet.
*    -------------------------------------------------- 
 Invoer-duur.
     Perform with test after until Duur-in-minuten <= 60
        Display "Geef nu de duur in minuten."
        Accept Duur-in-minuten
        If Duur-in-minuten > 60 then
           Display "Duur mag niet langer dan 60 zijn!"
        End-if
     End-perform.

*    -------------------------------------------------- 
*    De computer berekent de nieuwe waarde van de
*    variabele minuut en als het nodig is een nieuwe 
*    waarde voor de variabele uur.
*    -------------------------------------------------- 
 Bereken-eindtijd.
     Compute Minuut = Minuut + Duur-in-minuten
     If Minuut > 60 then
        Compute Minuut = Minuut - 60
        Compute Uur = Uur + 1
     End-if
     If Uur >= 24 then 
        Compute Uur = Uur - 24
     End-if.

*    -------------------------------------------------- 
*    uitvoer van het resultaat
*    -------------------------------------------------- 
 Druk-eindtijd-af.
     Display " "
     Display "De eindtijd is " uur ":" minuut.

 Einde-programma.
     Stop run.
  
omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo