Programmeren in PL/1/Programmastructuur

Programmeren in PL/1

Bewerkingen
  1. Inleiding
  2. Declaratie van variabelen
  3. Procedures
  4. Programmastructuur
  5. Foutenafhandeling
  6. Tips en rekenregels

Voorwaardelijke constructies bewerken

PL/1-code: voorwaardelijke constructies

 IF a = b THEN c = d;
 IF a > b THEN c = d; 
          ELSE c = e; 
 SELECT;
          WHEN (a < 10) c = 1;
          WHEN (a = 10) c = 2;
          OTHER         c = 3;
 END;

PL/1-code: meerdere voorwaardelijk uit te voeren statements

 IF a > b THEN
    DO; 
       p = q;
       r = s;
    END;

Lussen bewerken

PL/1-code: lus

 DO k = 1 TO 5;
    ...
 END; 

In bovenstaand voorbeeld neemt k de waarden 1, 2, 3, 4 en 5 aan. En worden de statements (...) ook 5 keer uitgevoerd. Bij het verlaten van de lus heeft k de waarde 6 (!) gekregen.

PL/1-code: lussen

 DO k = 1 TO n by 2; ... END;
 DO k = 20 TO 1 by -1; ... END;

PL/1-code: meerdere waardengebieden

 DO k = 1 to 5, 10 to 30 by 5, 40 to 100 by 20; ... END;

k neemt waarden 1, 2, 3, 4, 5 en 10, 15, 20, 25, 30 en 40, 60, 80, 100.

voorwaardelijke lussen bewerken

Onderstaande lus wordt nul of meer keer uitgevoerd.

PL/1-code: voorwaardelijke lus met test vooraf

 DO WHILE (a > b); ... END;

Onderstaande lus wordt zeker één keer uitgevoerd.

PL/1-code: voorwaardelijke lus met test achteraf

 DO UNTIL (a > b); ... END;

De herhaalde waarden kunnen ook het resultaat zijn van een berekening.

PL/1-code: machten van 2

 DO k = 1 REPEAT 2*k UNTIL (k > 100); 

In bovenstaand geval krijgt k de waarden 1, 2, 4, 8, 16, 32, 64, 128.

REPEAT kan gebruikt worden om een gelinkte lijst af te lopen.

PL/1-code: gelinkte lijst

 DO NEXT = head REPEAT NEXT > link UNTIL (link = NULL);

Invoer/uitvoer bewerken

PL/1-code: invoer & uitvoer

 PUT LIST('Boodschap aan de mensheid!'); 
 PUT SKIP LIST('Hello world!');          

In de tweede lijn zorgt SKIP ervoor dat de afdruk met een nieuwe lijn begint.

Informatie afkomstig van https://nl.wikibooks.org Wikibooks NL.
Wikibooks NL is onderdeel van de wikimediafoundation.