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
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.