Inhalt
Index
Support Über uns
Home

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.



Ausgabe von divide.cob


Siehe auch Add Subtract Multiply Compute

Zurück zu Acc-Cobol Display Statement    Hoch zu Procedure Divison in COBOL    Weiter zu EVALUATE
Entwickler Portal Impressum AGB Kontakt


© 1980-2017 Acc Computertechnik GmbH All rights reserved.