Programmeren in COBOL/Statements/COMPUTE
COMPUTE is een statement van COBOL. Deze statement dient om berekeningen mee uit te voeren. Hier wordt de vorm en de betekenis uitgelegd samen met voorbeelden.
Vorm
bewerkenCOMPUTE {veld [ROUNDED]}... = wiskundige uitdrukking
- [ON SIZE ERROR code]
- [NOT ON SIZE ERROR code]
[END-COMPUTE]
[]: geeft aan dat het optioneel is. {}: geeft aan dat dit één stuk is die samen hoort. onderstreept: geeft aan dat het verplicht is dit te schrijven. Als het tussen [] staat betekent dat je dit minstens moet schrijven, als je dat deel van de statement wilt gebruiken. niet-onderstreept: betekent dat je het mag schrijven maar is niet verplicht. ...: Geeft aan dat je nog velden of constanten mag bijschrijven of stukjes die tussen [] of {} staan herhalen.
Uitleg
bewerkenCOMPUTE
bewerkenDit dient om berekeningen uit te voeren. Het wordt meteen gevolgd door een veld waarin de uitkomst opgeslagen zal worden, dit mogen ook meerdere velden zijn. Daarna komt de "=" die gevolgd wordt door een wiskundige uitdrukking.
ROUNDED(optioneel)
bewerkenZorg ervoor dat er wordt afgerond op basis van de wiskundige regel. In COBOL wordt er niet automatisch afgerond. Stel: je hebt een veld met een PICTURE van 9999 en je wilt daarin het getal 1234,56 in opslaan. Dan zullen de getallen na de komma gewoon weg vallen zodat er alleen 1234 wordt opgeslagen wordt. Volgens de wiskunde is dit niet correct. Als je wilt afronden, moet je eerst kijken wat er na de komma komt. Is dit gelijk aan of groter dan 5, dan moet je naar boven afronden. Is dit kleiner, dan is de afronding naar beneden. Dus er moet 1235 worden opgeslagen in dat veld. Dit doet ROUNDED voor u.
SIZE ERROR(optioneel)
bewerkenAls de uitkomst te groot is om in het veld te worden gekopieerd gebeurt er een SIZE ERROR. Bijvoorbeeld: het getal 123 geraakt niet in een veld met een PICTURE van 99. Dit geldt echter niet voor kommagetallen: als je het getal 12.3 erin wilt zetten zal hij geen fout geven. Hierachter kun je code schrijven zoals bijvoorbeeld een fout bericht tonen.
NOT SIZE ERROR(optioneel)
bewerkenDoet het omgekeerde van SIZE ERROR.
END-COMPUTE(optioneel)
bewerkenSluit de statement af.
Voorbeelden
bewerkenSimpel voorbeeld
bewerkenCOBOL-code: COMPUTE - simpel voorbeeld
COMPUTE uitkomst = a ** 2 + b ** 2
Complex voorbeeld
bewerkenCOBOL-code: COMPUTE - complex voorbeeld
COMPUTE uitkomst, uitkomst2 ROUNDED = a ** 2 + b ** 2 ON OVERFLOW DISPLAY "Getal is te groot" NOT ON OVERFLOW DISPLAY "Getal past" END-COMPUTE
Zie ook
bewerken- Hoofdstuk berekeningen
- Statements ADD, SUBTRACT, MULTIPLY en DIVIDE
COBOL statements |
ACCEPT | ADD | CALL | CLOSE | COMPUTE | DELETE | DISPLAY | DIVIDE | EVALUATE | IF | INSPECT | MOVE | MULTIPLY | OPEN | PERFORM | READ | REWRITE | START | STOP | STRING | SUBTRACT | UNSTRING | WRITE |