2.4.12 DIVIDE
Der DIVIDE dividiert 2 oder mehrere numerische Werte und speichert das Resultat ab.
| | | | | |
Format1
DIVIDE Wert1 INTO Datenfeld1 [ROUNDED]
[Datenfeld2 [ROUNDED] ...]
[ON SIZE ERROR Befehlssequenz1]
[NOT ON SIZE ERROR Befehlssequenz2]
[END-DIVIDE]
| |
| | | |
| | | | | |
Format2
DIVIDE Wert1 {INTO / BY} Datenfeld1
GIVING Datenfeld2 [ROUNDED] [Datenfeld3 [ROUNDED] ...]
[REMAINDER Datenfeld4]
[ON SIZE ERROR Befehl1]
[NOT ON SIZE ERROR Befehl2]
[END-DIVIDE]
| |
| | | |
Format1:
Wert1 wird mit Datenfeld1 dividiert und falls angegeben, entsprechend gerundet und abgespeichert.
Ebenso wird mit Datenfeld2 [Datenfeld3 ...] verfahren.
Format2:
GIVING :
Bei der Angabe von GIVING wird Wert1 mit Datenfeld1 mulitpliziert und das Ergebnis in Datenfeld2 [Datenfeld3 ...] abgestellt.
ROUNDED :
Wird bei dem Zielfeld ROUNDED spezifiziert, wird das Ergebnis gerundet.
REMAINDER :
Bei Angabe von REMAINDER wird der Rest der Divisionsoperation in das angegebene Feld abgespeichert. Der Rest ist die Differenz zwischen Dividenden und der Multiplikation aus Divisor und Ergebnis.
ON SIZE ERROR:
Tritt ein Überlauf auf wird Befehl1 (falls angegeben) ausgeführt, wenn nicht, wird Befehl2 (falls angegeben) ausgeführt.
END-DIVIDE beendet den Ausführungsbereich des DIVIDE - Befehls.
Beispielprogamm: divide.cob
*c32 divide.cob;slink divide
identification division.
program-id. DIVIDE Demo
environment division.
set cfont to 'fixedsys'.
data division.
working-storage section.
77 f1 pic 9(4)V99 value 100,0.
77 f2 pic 9(3) value -20.
77 f3 pic 9(5)v999 value 33,330.
77 ant pic x.
procedure division.
display 'Start: f1 pic 9(4)v99 f2 pic 9(3) f3 pic 9(5)v999'
display ' ' f1 ' ' f2 ' ' f3
display 'divide f1 by 7 giving f2 remainder f3'.
divide f2 by 3 giving f2 f1 remainder f3.
perform showres
display 'divide 3 into f1 f2 f3 (100/3 -20/3 33,330/3)'
divide 3 into f1 f2 f3.
perform showres
display 'divide f1 by f3 giving f2 (33,33/11,11)'.
divide f1 by f3 giving f2.
perform showres
display 'divide f3 by f2 giving f1 f2 rounded (11,11/3)'.
divide f3 by f2 giving f1 f2 rounded.
perform showres.
display
"divide f1 by f3 giving f2 not on size error display 'ok'"
call getchar
divide f1 by f3 giving f2 not on size error display 'ok'.
perform showres1
display
"divide f1 by f2 giving f2 not on size error display 'ok'"
display " on size error display 'overflow'"
display " end-divide"
call getchar
divide f1 by f2 giving f2 not on size error display 'ok'
on size error display 'overflow'
end-divide
perform showres1
display 'divide f1 into f3 remainder f2 (11,11/3,7)'.
divide f1 into f3 remainder f2
perform showres
stop run.
showres section.
call getchar.
showres1.
display ' ' f1 ' ' f2 ' ' f3.
call getchar.
Siehe auch Add Subtract Multiply Compute
Zurück zu Acc-Cobol Display Statement
Hoch zu Procedure Divison in COBOL
Weiter zu EVALUATE
|