4.10 Losse rekenopdrachten

Als rekenopdracht gebruikten we tot nu toe compute; COBOL kent daarenboven nog aparte opdrachten voor optellen, aftrekken, vermenigvuldigen en delen. De verbs van de betrokken opdrachten zijn respectievelijk add, subtract, multiply en divide. De formaatbeschrijving van de vorige paragraaf komt goed van pas bij de uitleg van die losse rekenopdrachten.

De volgende figuur bevat de eenvoudigste vormen van drie van de opdrachten. De opdracht divide komt later.

Figuur 4.4 Eenvoudige vormen van add, subtract en multiply

formaatbeschrijving add, multiply en multiply

onthoud

Een veelgemaakte vergissing betreft de schrijfwijze van subtract. Dit woord bevat slecht een keer de letter s. Sommigen verwachten nog een s na de b.

Het resultaat van de drie opdrachten kan al dan niet worden afgerond. Zie voor een bespreking van rounded paragraaf 4.2. Uit de formaatbeschrijving zijn de volgende voorbeelden af te leiden:

Add bedrag to totaal
Add 12.5 to verbruik
Subtract verpakking from gewicht
Subtract 10 from minuten
Multiply verkleining by grootte rounded
Multiply 0.5 by sterkte
  

Deze voorbeelden spreken hopelijk voor zichzelf. Maar het is goed speciaal te wijzen op een kenmerk van al deze voorbeelden: de variabele na to, from en by krijgt door de rekenkundige bewerking een nieuwe waarde. In de voorbeelden zijn dat de variabelen totaal, verbruik, gewicht, minuten, grootte en sterkte. De waarde die de variabele vóór de opdracht had, is verdwenen.

Als we willen dat de oorspronkelijke waarde behouden blijft, dan moeten we het resultaat in een andere variabele plaatsen. Dat kan, omdat de rekenkundige opdrachten een variant hebben waarin het woordje giving optreedt. De variabele na giving krijgt de nieuw-berekende waarde. In figuur 4.5 staan de formaatbeschrijvingen:

Figuur 4.4 Rekenopdrachten met giving

Formaatbeschrijving van de rekenopdrachten met giving

In al deze versies krijgt de variabele na giving een nieuwe waarde. De waarde kan weer al dan niet afgerond worden. De variabele na giving ontvángt alleen maar een resultaat. Hij doet met de berekening zelf niet mee. Daarom mag die variabele numeriek opgemaakt zijn. Alle overige variabelen moeten numeriek zijn. Met een opgemaakt veld kan de computer immers niet rekenen.

Divide heeft nog een bijzonderheid: remainder. Daarmee kunnen we de rest berekenen van een deling. De variabele na remainder mag een opgemaakt veld zijn.

Bekijk het onderstaande stukje programma. Alle variabelen zijn benoemd met pic 9999. Na elke opdracht staan de wijzigingen die erdoor worden aangebracht.

move 17 to kg	                           kg := 17
add 12 to kg giving jf	                  jf := 29
divide jf by 5 giving kg remainder ie   	kg := 5; ie := 4
subtract 2 from kg	                      kg := 3
multiply ie by kg giving jf	             jf := 12
  

In deze paragraaf staan alleen de basisvormen van de losse rekenkundige opdrachten. Er zijn ook ingewikkelder berekeningen mee mogelijk. Maar als die nodig zijn, dan kun je maar beter de compute-opdracht van stal halen.

omslag leerboek

Serie: leerboeken informatica

Titel: Tijd voor COBOL 1

Auteur: Andree Hollander

naamlogo