Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

DIVIDE-Anweisung

&pagelevel(4)&pagelevel

Funktion

Die DIVIDE-Anweisung führt die Division zweier numerischer Operanden durch und speichert das Ergebnis ab.

Format 1

der DIVIDE-Anweisung speichert die Quotienten im jeweiligen Dividendenfeld ab.

Format 2

der DIVIDE-Anweisung speichert den Quotienten in mehreren gesonderten Ergebnisfeldern ab.

Format 3

der DIVIDE-Anweisung verwendet die GIVING-Angabe zum Abspeichern des Quotienten und erzeugt den Divisionsrest unter Verwendung der REMAINDER-Angabe.

Format 1


DIVIDE {bezeichner-1 | literal-1} INTO {bezeichner-2 [ROUNDED]}...

    [ON SIZE ERROR unbedingte-anweisung-1]

    [NOT ON SIZE ERROR unbedingte-anweisung-2]

    [END-DIVIDE]


Syntaxregeln

  1. Jeder Bezeichner muss sich auf ein numerisches Datenelement beziehen.

  2. Der Wert von bezeichner-2 wird durch den Wert von bezeichner-1 oder literal-1 dividiert. Der Quotient ersetzt dann den Wert von bezeichner-2 etc.

  3. Die Maximalgröße des Quotienten beträgt 31 Dezimalziffern.

  4. Division durch Null ergibt immer eine Überlaufbedingung (SIZE ERROR).

  5. Bei Division mit ON SIZE ERROR kann trotzdem ein Divisionsfehler auftreten, da nicht auf Überlauf des Quotienten geprüft wird (nur auf Division durch 0).

Für weitere Regeln siehe unter „Angaben in Anweisungen"; die ROUNDED-Angabe, (NOT) ON SIZE ERROR-Angabe und GIVING-Angabe sind in diesem Abschnitt beschrieben.

Beispiel 8-33

Anweisung

Maskenzeichenfolge des Ergebnisfeldes

Rechnung

DIVIDE A INTO B

9(4)V9(2)

B / A abgespeichert als nnnnVnn in B.

Format 2


DIVIDE {bezeichner-1 | literal-1} {INTO | BY} {bezeichner-2 | literal-2}

        GIVING {bezeichner-3 [ROUNDED]}...

       [ON SIZE ERROR unbedingte-anweisung-1]

       [NOT ON SIZE ERROR unbedingte-anweisung-2]

       [END-DIVIDE]


Syntaxregeln

  1. bezeichner-1 oder bezeichner-2 müssen sich auf ein numerisches Datenelement beziehen.

  2. bezeichner-3... kann sich auf ein numerisches Datenelement oder auf ein numerisch druckaufbereitetes Datenelement beziehen.

  3. Bei Verwendung der INTO-Angabe wird der Wert von bezeichner-2 oder literal-2 durch den Wert von bezeichner-1 oder literal-1 dividiert; bei Verwendung der BY-Angabe wird der Wert von bezeichner-1 oder literal-1 durch den Wert von bezeichner-2 oder literal-2 dividiert. Der Quotient wird in bezeichner-3... abgespeichert.

  4. Die Maximalgröße des Quotienten beträgt 31 Dezimalziffern.

  5. Division durch Null ergibt immer eine Überlaufbedingung (SIZE ERROR).

  6. Bei Division mit ON SIZE ERROR kann trotzdem ein Divisionsfehler auftreten, da nicht auf Überlauf des Quotienten geprüft wird (nur auf Division durch 0).

Für weitere Regeln siehe unter „Angaben in Anweisungen"; die ROUNDED-Angabe, (NOT) ON SIZE ERROR-Angabe und GIVING-Angabe sind in diesem Abschnitt beschrieben.

Beispiel 8-34

Anweisung

Maskenzeichenfolge desErgebnisfeldes

Rechnung

DIVIDE A INTO BGIVING C ROUNDED

S999V99 für C

B / A abgespeichert in C als nnnVnn, nachdem, wie verlangt, die Stelle ganz rechts gerundet wurde.

DIVIDE A BY B,GIVING C, DROUNDED

9(5) für C9(4) für D

A / B abgespeichert in C als nnnnn, in D als nnnn, nachdem, wie verlangt, die Stelle ganz rechts gerundet wurde.

Format 3


DIVIDE {bezeichner-1 | literal-1} {INTO | BY} {bezeichner-2 | literal-2} GIVING bezeichner-3 [ROUNDED]

        REMAINDER bezeichner-4

       [ON SIZE ERROR unbedingte-anweisung-1]

       [NOT ON SIZE ERROR unbedingte-anweisung-2]

       [END-DIVIDE]


Syntaxregeln

  1. bezeichner-1 oder bezeichner-2 müssen sich auf ein numerisches Datenelement beziehen.

  2. bezeichner-3 oder bezeichner-4 können sich auf ein numerisches Datenelement oder auf ein numerisch druckaufbereitetes Datenelement beziehen.

  3. Bei Verwendung der INTO-Angabe wird der Wert von bezeichner-2 oder literal-2 durch den Wert von bezeichner-1 oder literal-1 dividiert; bei Verwendung der BY-Angabe wird der Wert von bezeichner-1 oder literal-1 durch den Wert von bezeichner-2 oder literal-2 dividiert. Der Quotient wird in bezeichner-3 abgespeichert.

  4. Bei Verwendung der REMAINDER-Angabe wird der Divisionsrest in bezeichner-4 abgespeichert.
    Der Divisionsrest wird errechnet, indem vom Dividenden das Produkt aus Quotient und Divisor subtrahiert wird.
    Ist bezeichner-3 als numerisch druckaufbereitetes Datenelement definiert, wird zur Berechnung des Divisionsrestes für den Quotienten ein Zwischenfeld verwendet, das den Wert in nicht druckaufbereiteter Form enthält.

    Ist die ROUNDED-Angabe und REMAINDER-Angabe vorhanden, wird als Quotient bei der Berechnung des Divisionsrestes ein Zwischenfeld verwendet, das den Quotienten der DIVIDE-Anweisung in abgeschnittener statt abgerundeter Form enthält.

  5. Ist ON SIZE ERROR angegeben und tritt beim Quotienten ein Überlauf auf, entfällt die Berechnung des Divisionsrestes. Daher bleibt in diesem Fall der Inhalt der Datenfelder, auf die sich bezeichner-3 und bezeichner-4 beziehen, unverändert.

    Wenn beim Divisionsrest ein Überlauf auftritt, bleibt der Wert des Datenfeldes, auf das sich bezeichner-4 bezieht, unverändert.

  6. Die Genauigkeit des für die REMAINDER-Angabe notwendigen Datenfeldes (bezeichner-4) wird durch die oben beschriebenen Berechnungen festgelegt. Entsprechende Dezimalpunktausrichtung und Abschneidung (nicht Rundung) wird, wenn nötig, für den Inhalt des Datenfeldes, auf das sich bezeichner-4 bezieht, durchgeführt.

  7. Die Maximalgröße des Quotienten beträgt 31 Dezimalziffern.

  8. Division durch Null ergibt immer eine Überlaufbedingung.

Für weitere Regeln siehe unter „Angaben in Anweisungen"; die ROUNDED-Angabe, (NOT) ON SIZE ERROR-Angabe und GIVING-Angabe sind in diesem Abschnitt beschrieben.

Beispiel 8-35

Anweisung

Maskenzeichenfolgedes Ergebnisfeldes

Rechnung

DIVIDE A BY B,
GIVING C REMAINDER D

9(5) für C9(2) für D

A / B abgespeichert in C als nnnnn, der Rest (A - C * B) abgespeichert in D als nn.