2.4 Gebied A en gebied B

Het gedeelte van de regel waar we het programma schrijven, bestaat uit twee gebieden (Engels: areas). Ze heten gebied A en gebied B. Gebied A beslaat de posities 8 tot en met 11. Gebied B begint op positie 12. Tot hoever area B doorloopt, mag de fabrikant van een COBOL-compiler zelf bepalen. De COBOL-standaard laat dit vrij. In veel gevallen ligt de rechtergrens bij positie 72. De compiler laat dan alles buiten beschouwing wat voorbij positie 72 is getikt. Schematisch ziet dat er uit zoals in figuur 2.1.

Figuur 2.1: Regelindeling

regelindeling

COBOL kent zeer strakke voorschriften over wat er in gebied A en wat er in gebied B moet beginnen. Het gemakkelijkst te onthouden is de volgende regel.

onthoud

Bijna alle taalelementen moeten in gebied B staan, behalve enkele die in gebied A moeten starten. Voorlopig zijn dat alleen
- de namen van de divisions;
- de namen van sections en paragrafen;
- het niveaunummer 01.

Op het niveaunummer komen we verderop in dit hoofdstuk terug. De overige elementen die in gebied A moeten beginnen, komen aan de orde als we aan het betrokken onderwerp toe zijn.

Taalelementen die in gebied A moeten beginnen, kunnen starten op de posities 8, 9, 10 of 11. Het maakt geen verschil op welke plaats in gebied A zo'n woord begint. Het is niet zo dat het hele woord in gebied moet A moet passen: het woord mag doorlopen tot in gebied B.

De opdrachten in de procedure division moeten in gebied B beginnen. Dat kan dus op positie 12 of verder zijn. Het is gebruikelijk en verstandig de mogelijkheid tot inspringen te benutten. Bij de opdrachten if en perform in het vorige hoofdstuk hebben we dat steeds gedaan. Door in te springen, kunnen we duidelijk aangeven welke opdrachten van een selectie of een herhaling deel uitmaken. Hier volgt een voorbeeld van het begin van de procedure division om de manier van inspringen nog eens te laten zien.

 Procedure division.
 Leeftijd.
     display "In welk jaar bent u geboren?"
     accept gebjaar
     if gebjaar < 100 then
*       twee cijfers ingevoerd
        compute gebjaar = 1900 + gebjaar
     end-if
*    gebjaar bestaat nu uit 4 cijfers
  

De eerste regel bevat de naam van een division. Het woord procedure begint op positie 8 (area A) net als het woord leeftijd op de tweede regel. Dat is de naam van een paragraaf. De woorden display, accept, if en end-if beginnen op positie 12 (area B). Om aan te geven wat er deel uitmaakt van de if-structuur is de compute-opdracht ingesprongen. De twee commentaarregels hebben een sterretje op positie 7. Het commentaar op de rest van de regel kan men naar eigen keuze plaatsen. In dit voorbeeld sluit de tekst van het commentaar aan bij de manier van inspringen van de programma-opdrachten. Commentaar mag in gebied A staan, want na een sterretje in kolom 7 gelden voor die regel verder geen COBOL-voorschriften meer.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo