Dieses Dokument behandelt folgende Themen:
Verwandte Statements: ADD
| COMPRESS
|
COMPUTE
|
EXAMINE
|
MOVE
|
MOVE ALL
|
MULTIPLY
|
RESET
|
SEPARATE
|
SUBTRACT
Gehört zur Funktionsgruppe: Arithmetische Funktionen und Datenzuweisungen
Mit dem Statement DIVIDE
können Sie einen Operanden
durch einen anderen dividieren.
Wird eine Division durch Null (0) versucht, d.h. wenn der Divisor
(operand1), also die Zahl durch die geteilt wird, 0
ist, wird entweder eine entsprechende Fehlermeldung oder als Ergebnis 0
ausgegeben, je nachdem wie der Session-Parameter
ZD
(der in
der Parameter-Referenz-Dokumentation beschrieben ist)
gesetzt ist.
Dieses Statement hat drei verschiedene Syntax-Strukturen.
DIVIDE
[ROUNDED ]
|
INTO
operand2 |
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | |||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1
|
C | S | A | N | N | P | I | F | yes | no | |||||||||
operand2
|
S | A | M | N | P | I | F | yes | no |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung: |
---|---|
arithmetic-expression |
Siehe
Arithmetischer
Ausdruck beim COMPUTE -Statement.
|
operand1 INTO
operand2
|
Operanden:
operand2 := operand2 / operand1 Wenn ein Die Anzahl der Dezimalstellen für das Ergebnis der
Division wird vom Ergebnisfeld (d.h.
Weitere Informationen siehe Genauigkeit von Ergebnissen bei arithmetischen Operationen im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung. |
ROUNDED
|
ROUNDED-Option:
Wird das Schlüsselwort Weitere Informationen siehe Abschneiden und Runden von Feldwerten im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung. |
DIVIDE
[ROUNDED ]
|
INTO
|
GIVING
operand3 |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1
|
C | S | A | N | N | P | I | F | yes | no | ||||||||||
operand2
|
C | S | A | N | N | P | I | F | yes | no | ||||||||||
operand3
|
S | A | A | U | N | P | I | F | B* | yes | yes |
* Format B von operand3
kann
nur mit einer Länge von kleiner gleich 4 verwendet werden.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung: |
---|---|
arithmetic-expression |
Siehe
Arithmetischer
Ausdruck beim COMPUTE -Statement.
|
operand1
INTO
operand2
GIVING
operand3
|
Operanden:
Das Ergebnis wird in
operand3 := operand2 / operand1 Die Anzahl der Dezimalstellen für das Ergebnis der
Division wird vom Ergebnisfeld (d.h.
Weitere Informationen siehe Genauigkeit von Ergebnissen bei arithmetischen Operationen im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung. |
ROUNDED
|
ROUNDED-Option:
Wird das Schlüsselwort Weitere Informationen siehe Abschneiden und Runden von Feldwerten im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung. |
DIVIDE
|
INTO |
[GIVING
operand3]
REMAINDER
operand4 |
Eine Erläuterung der in dem Syntax-Diagramm verwendeten Symbole entnehmen Sie dem Abschnitt Syntax-Symbole.
Operanden-Definitionstabelle:
Operand | Mögliche Struktur | Mögliche Formate | Referenzierung erlaubt | Dynam. Definition | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
operand1
|
C | S | A | N | N | P | I | yes | no | |||||||||||
operand2
|
C | S | A | N | N | P | I | yes | no | |||||||||||
operand3
|
S | A | A | U | N | P | I | F | B* | T | yes | yes | ||||||||
operand4
|
S | A | A | U | N | P | I | F | B* | T | yes | yes |
* Format B von operand3
und
operand4
kann nur mit einer Länge von
kleiner gleich 4 verwendet werden.
Syntax-Element-Beschreibung:
Syntax-Element | Beschreibung: |
---|---|
arithmetic-expression |
Siehe
Arithmetischer
Ausdruck beim COMPUTE -Statement.
|
Operanden:
Wird die Das Ergebnisfeld kann ein Datenbankfeld oder eine Benutzervariable sein. Falls |
|
GIVING
operand3
|
GIVING-Klausel:
Wird diese Klausel benutzt, dann wird
Die Anzahl der Dezimalstellen für das Ergebnis der
Division wird vom Ergebnisfeld (d.h.
Weitere Informationen siehe Genauigkeit von Ergebnissen bei arithmetischen Operationen im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung. |
REMAINDER
operand4
|
REMAINDER-Klausel:
Der nach der Division verbleibende Rest wird in das in
Für jeden dieser Schritte gelten die unter Genauigkeit von Ergebnissen bei arithmetischen Operationen im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung beschriebenen Regeln. |
** Example 'DIVEX1': DIVIDE ************************************************************************ DEFINE DATA LOCAL 1 #A (N7) INIT <20> 1 #B (N7) 1 #C (N3.2) 1 #D (N1) 1 #E (N1) INIT <3> 1 #F (N1) END-DEFINE * DIVIDE 5 INTO #A WRITE NOTITLE 'DIVIDE 5 INTO #A' 20X '=' #A * RESET INITIAL #A DIVIDE 5 INTO #A GIVING #B WRITE 'DIVIDE 5 INTO #A GIVING #B' 10X '=' #B * DIVIDE 3 INTO 3.10 GIVING #C WRITE 'DIVIDE 3 INTO 3.10 GIVING #C' 8X '=' #C * DIVIDE 3 INTO 3.1 GIVING #D WRITE 'DIVIDE 3 INTO 3.1 GIVING #D' 9X '=' #D * DIVIDE 2 INTO #E REMAINDER #F WRITE 'DIVIDE 2 INTO #E REMAINDER #F' 7X '=' #E '=' #F * END
Ausgabe des Programms DIVEX1
:
DIVIDE 5 INTO #A #A: 4 DIVIDE 5 INTO #A GIVING #B #B: 4 DIVIDE 3 INTO 3.10 GIVING #C #C: 1.03 DIVIDE 3 INTO 3.1 GIVING #D #D: 1 DIVIDE 2 INTO #E REMAINDER #F #E: 1 #F: 1