# Programmeren in COBOL/Bewerkingen/Berekeningen

Dit is een hoofdstuk waar je kunt leren hoe je iets moet berekenen in COBOL.

## COMPUTE

    Zie ook COMPUTE voor meer informatie.
COMPUTE is de makkelijkste manier waarmee je iets kunt berekenen in COBOL. De volgende delen van deze pagina zijn hierdoor eigenlijk onnodig, maar het kan best leuk zijn om te weten dat je het ook anders kunt doen. Rekenen wordt gedaan met +, -, *, /, **(machten). Om die tekens te gebruiken, moet je ze tussen 2 spaties zetten. Nooit bijvoorbeeld "1+1" maar altijd 1 + 1.
COBOL-code: COMPUTE
De variabelen waar de uitkomst moet komen te staan aan de linkerkant van de "=" de berekening staat altijd aan de rechterkant. "=" lees je dus best als "wordt" (en niet "is"). Het is mogelijk om af te ronden in COBOL dankzij ROUNDED: Een 1, 2, 3 en 4 worden naar beneden afgerond; 5, 6, 7, 8 en 9 worden naar boven afgerond: Stel dat de uitkomst 4.5 is, maar het komt terecht in een variabele met PIC 9 die alleen 4 opslaat. Een wetenschappelijke/wiskundige afronding naar boven kan je uitvoeren met ROUNDED.
COBOL-code: COMPUTE
Ook kun je de uitkomst in meerdere variabelen zetten en kun je de ene niet laten afronden en de andere dan weer wel.
COBOL-code: COMPUTE
Wanneer er een complexe berekening wordt gedaan, hebben bepaalde tekens voorrang op andere, net zoals in de wiskunde. Haakjes hebben altijd voorrang. Daarna komt **, gevolgd door * en / (evenwaardig) en tenslotte + en -. Gelijk(waardig)e tekens worden van links naar rechts uitgevoerd.

### Wortel

Hoewel er geen teken bestaat om een wortel te doen met COMPUTE, is er toch een simpele manier om het te doen. Er bestaat namelijk een alternatieve notatie voor een wortel.
${\sqrt {a}}=a^{\frac {1}{2}}$
Links staat een gewone vierkantswortel en rechts staat 2 tot de 1/2 macht. Die zijn namelijk gelijk. De algemene notatie is:
${\sqrt[{n}]{a}}=a^{\frac {1}{n}}$
Dit maakt dat je een wortel kan berekenen door het volgende te doen.
COBOL-code: COMPUTE

## ADD

    Zie ook ADD voor meer informatie.
Naast COMPUTE zijn er nog ander manieren om te rekenen. Het enige voordeel dat deze manier heeft is dat het zeer logisch kan overkomen.
COBOL-code: ADD
Hier wordt dan de inhoud van verkoop toegevoegd aan de inhoud van omzet. Het is mogelijk om met meerdere variabelen bij ADD te gebruiken.
COBOL-code: ADD
Getal1 en getal2 worden zowel bij getal3 als bij getal4 opgeteld. Net zoals COMPUTE kun je gebruik maken van ROUNDED. Het woord GIVING zorgt dat het resultaat in een andere variabele gezet wordt.
COBOL-code: ADD

## SUBTRACT

    Zie ook SUBTRACT voor meer informatie.
COBOL-code: SUBTRACT
SUBTRACT verschilt niet erg van ADD: alleen wordt hier FROM gebruikt in de plaats van TO. Ook hier kan je GIVING en ROUNDED gebruiken.
COBOL-code: SUBTRACT
Waar je wel voor moet opletten is de declaratie van de variabelen. Als je SUBTRACT doet, kun je een negatief getal krijgen. Daarom is het best dat je S gebruikt bij de variabelen, bijvoorbeeld PIC S999. (data editing).

## MULTIPLY

    Zie ook MULTIPLY voor meer informatie.
COBOL-code: MULTIPLY
Hier worden getal2 en getal3 vermenigvuldigd met getal1. Ook hier kun je ROUNDED en GIVING gebruiken.
COBOL-code: MULTIPLY

## DIVIDE

    Zie ook DIVIDE voor meer informatie.
COBOL-code: DIVIDE
Opgelet, hier worden getal2 en getal3 gedeeld door getal1 (niet omgekeerd). Hier kun je ook ROUNDED en GIVING gebruiken.
COBOL-code: DIVIDE
Naast DIVIDE ... INTO kun je ook DIVIDE ... BY gebruiken.
COBOL-code: DIVIDE
Dit zorgt ervoor dat de berekening wordt omgedraaid. getal 1 zal worden gedeeld door getal2 in de plaats van getal2 door getal1. Je kunt bij DIVIDE ook de rest opslaan via REMAINDER.
COBOL-code: DIVIDE
Hier zal de rest worden opgeslagen in getal4.

## Speciale gevallen

Hoewel de notatie ingewikkeld is, kan met bovenstaande operaties bondiger programmacode geschreven worden. Onderstaande codelijnen zijn equivalent aan elkaar:
COBOL-code: Speciale gevallen
Foutmeldingen kunnen opgevangen worden met ON SIZE ERROR. Als er de uitkomst niet in de PIC (PICTURE) past, kan een subroutine opgeroepen worden.
COBOL-code: Speciale gevallen

## Conclusie

COMPUTE is de eenvoudigste manier om berekeningen uit te voeren. Het gaat veel sneller en je kunt snel complexe berekeningen uitvoeren zonder al teveel programmeerwerk. Wil je toch ADD, SUBTRACT, MULTIPLY en DIVIDE gebruiken dan is het aangeraden om goed te oefenen.