2.4.8 COMPUTE
Beschreibung:
Der COMPUTE - Befehl addiert 2 oder mehrere numerische Werte und speichert das Resultat ab.
| | | | | |
Format
COMPUTE Datenfeld1 [ROUNDED] {= / EQUAL} Wert1
[Operator Wert2 ...]
[ON SIZE ERROR Befehlssequenz1]
[NOT ON SIZE ERROR Befehlssequenz2]
[END-COMPUTE]
| |
| | | |
Operator: + * - /
Der COMPUTE wird mit den angegebenen Werten entsprechend der Punkt-vor-Strich-Regelung ausgeführt und das Ergebnis im Datenfeld1 abgestellt.
Wird bei Datenfeld1 ROUNDED spezifiziert, wird das Ergebnis auf- bzw. abgerundet.
Beim COMPUTE können auch Klammern zur Veränderung der Priorität verwendet werden, wie z.B.: 5 * (3 + 2) um als Ergebnis 25 zu erhalten.
Tritt ein Überlauf auf wird Befehlssequenz1 (falls angegeben) ausgeführt, wenn nicht, wird Befehlssequenz2 (falls angegeben) ausgeführt.
END-COMPUTE beendet den Ausführungsbereich des COMPUTE - Befehls.
Beispielprogamm: compute.cob
*c32 compute.cob;slink compute
identification division.
program-id. COMPUTE Demo
environment division.
set cwsize to '0:0 0:0 55:24'.
set cfont to 'fixedsys'.
data division.
working-storage section.
77 f1 pic 9(4)V99 value 1,2.
77 f2 pic 9(3) value -2.
77 f3 pic 9(5)v999 value 3,213.
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 'add 1 to f1 f2 f3'.
add 1 to f1 f2 f3.
perform showres
add f1 f2 to f3.
display 'add f1 f2 to f3'.
perform showres
add f3 f1 giving f2.
display 'add f3 f1 giving f2'.
perform showres
add f3 f1 giving f2 rounded.
display 'add f3 f1 giving f2 rounded'.
perform showres
display 'add f1 f2 to f3 giving f1 f2'.
add f1 f2 to f3 giving f1 f2.
perform showres.
display "add 20 to f1 f2 f3 not on size error display 'ok'".
call getchar.
add 20 to f1 f2 f3 not on size error display 'ok'.
perform showres1.
display "add 980 to f1 f2 f3 not on size error display 'ok'"
display " on size error display 'overflow'"
display " end-add"
call getchar.
add 980 to f1 f2 f3 not on size error display 'ok'
on size error display 'overflow'
end-add
perform showres1.
stop run.
showres section.
call getchar.
showres1.
display ' ' f1 ' ' f2 ' ' f3.
call getchar.
Siehe auch Add Subtract Multiply Divide
Zurück zu Acc-Cobol Close Statement
Hoch zu Procedure Divison in COBOL
Weiter zu DELETE
|