13.2 Initialize

Onder initialiseren verstaan we: het geven van een beginwaarde. Vaak willen we dat een variabele bij de aanvang van het programma een bepaalde waarde bevat. Het geëigende middel om daarvoor te zorgen is de value-clausule. Variabelen die in de working-storage gedefinieerd zijn, kunnen de value-clausule bij zich hebben, zoals in het volgende voorbeeld.

01 tel-record.
   02 onderdeel    pic x(10), value spaces.
   02 stelling     pic 9(03), value zero.
   02 aantal       pic 9(04), value zero.
  

Een andere manier om velden een beginwaarde te geven biedt de initialize-opdracht. Deze opdracht kunnen we overal in het programma gebruiken. We kunnen variabelen die tijdens het programma een andere waarde kregen, opnieuw initialiseren.

In zijn eenvoudigste vorm plaatst de initialize-opdracht spaties in alfanumerieke velden en nullen in numerieke velden.

    initialize onderdeel, stelling, aantal
  

Door deze opdracht bevat het veld onderdeel spaties en de velden stelling en aantal nullen.

onthoud

De initialize-opdracht werkt
alleen op elementaire velden.

Als we een groepsveld opgeven, dan worden alle benoemde elementaire velden die er deel van uitmaken gevuld.

    initialize tel-record
  

Deze opdracht komt overeen met de initialize-opdracht van hiervoor. Beide opdrachten hebben dezelfde werking:

    move space to onderdeel
    move zero to stelling
    move zero to aantal
  

Initialize is verboden bij een veld dat de occurs-clausule met de depending-on-optie bevat.

onthoud

Initialize vult nooit
- velden zonder naam, of met de naam filler;
- index-variabelen;
- herdefinities binnen een opgegeven groepsveld.



01 speciaal-voorbeeld.
  02 alfanumeriek-veld   pic x(6).
  02 groepsveld redefines alfanumeriek-veld.
    03 filler            pic xx.
    03 numeriek-veld     pic 9999.
    03 herdefinitie redefines numeriek-veld pic xxxx.
  02 hulpindex           usage is index.
  

Door de opdracht initialize speciaal-voorbeeld krijgt alleen het veld alfanumeriek-veld zes spaties als inhoud. Door de opdracht initialize groepsveld krijgt uitsluitend het veld numeriek-veld vier nullen als inhoud.

De opdracht initialize maakt het mogelijk alle elementen van een tabel een bepaalde waarde te geven.

01 vergaderdata.
   03 jaar       pic 9999.
   03 datums occurs 6 times.
      05 maand   pic XXX.
      05 dag     pic 99.
  

Na de opdracht initialize vergaderdata is het veld jaar nul, alle zes de velden maand zijn gevuld met spaties en alle zes de velden dag hebben waarde nul.

Via een uitbreiding van de initialize-opdracht kunnen we andere waarden dan spaties en nullen toekennen. Daartoe noemen we een categorie velden en de gewenste waarde.

    initialize tel-record replacing
        numeric data by 1
        alphanumeric data by "onbekend"
  

Het veld tel-record dat in deze opdracht voorkomt, is aan het begin van deze paragraaf beschreven. De opdracht komt overeen met:

    move "onbekend" to onderdeel
    move 1 to stelling
    move 1 to aantal
  

De initialize-opdracht die als voorbeeld is gegeven, bevat twee categorieën: numeric en alphanumeric.

Andere categorieën velden zijn:

Deze laatste categorie, alphabetic, komt pas in paragraaf 15.3 aan de orde.

omslag 'Tijd voor COBOL'

Serie: leerboeken informatica

Titel: Tijd voor COBOL 2

Auteur: Andree Hollander

naamlogo