SUBTRACT

#### Search Results

Search

# SUBTRACT

Dieses Dokument behandelt folgende Themen:

- Funktion

- Syntax 1 - SUBTRACT-Statement ohne GIVING-Klausel

- Syntax 2 - SUBTRACT-Statement mit GIVING-Klausel

- Beispiel

Verwandte Statements: `ADD` | `COMPRESS` | `COMPUTE` | `DIVIDE` | `EXAMINE` | `MOVE` | `MOVE ALL` | `MULTIPLY` | `RESET` | `SEPARATE`

Gehört zur Funktionsgruppe: Arithmetische Funktionen und Datenzuweisungen

## Funktion

Mit dem Statement `SUBTRACT` können Sie die Werte zweier oder mehrerer Operanden voneinander abziehen.

Dieses Statement hat zwei verschiedene Syntax-Strukturen.

## Syntax 1 - SUBTRACT-Statement ohne GIVING-Klausel

`SUBTRACT` [`ROUNDED`] |  | (arithmetic-expression) operand1 |  |  | `FROM` operand2

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 |  | D | T |  |  |  |  | ja | nein
operand2 |  | S | A |  | M |  | N | P | I | F |  | D | T |  |  |  |  | ja | nein

Syntax-Element-Beschreibung:

Syntax-Element | Beschreibung
--- | ---
`arithmetic-expression` | Siehe Arithmetischer Ausdruck beim `COMPUTE`-Statement.
`operand1` `FROM operand2` | Operanden: `operand1` ist der Minuend, `operand2` ist der Subtrahend. Somit ist das Statement gleichbedeutend mit: `operand2 := operand2 - operand1` Bezüglich der Formate der Operanden siehe auch Formatwahl im Hinblick auf die Verarbeitungszeit im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung.
`ROUNDED` | ROUNDED-Option: Wird das Schlüsselwort `ROUNDED` angegeben, dann wird das Ergebnis gerundet. Weitere Informationen siehe Abschneiden und Runden von Feldwerten im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung.

## Syntax 2 - SUBTRACT-Statement mit GIVING-Klausel

`SUBTRACT` [`ROUNDED`] |  | (arithmetic-expression) operand1 |  |  | `FROM` |  | (arithmetic-expression) operand2 |  | `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 |  | D | T |  |  |  |  | ja | nein
operand2 | C | S | A |  | N |  |  | N | P | I | F |  | D | T |  |  |  |  | ja | nein
operand3 |  | S | A |  | M | A | U | N | P | I | F | B* | D | T |  |  |  |  | ja | ja

* Format B von `operand3` kann nur mit einer Länge von kleiner gleich 4 verwendet werden.

Syntax-Element-Beschreibung:

Syntax Element | Description
--- | ---
`arithmetic-expression` | Siehe Arithmetischer Ausdruck beim `COMPUTE`-Statement.
`GIVING` | GIVING-Klausel: Wird die `GIVING`-Klausel benutzt, dann wird `operand2` nicht verändert, und das Ergebnis wird in `operand3` gespeichert.
`operand1` `FROM operand2` `GIVING operand3` | Operanden: `operand2` ist der Minuend, `operand1` ist der Subtrahend, `operand3` ist das Ergebnisfeld. Somit ist das Statement gleichbedeutend mit: `operand3 := operand2 - operand1` Bezüglich der Formate der Operanden siehe auch Formatwahl im Hinblick auf die Verarbeitungszeit im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung.
`ROUNDED` | ROUNDED-Option: Wird das Schlüsselwort `ROUNDED` angegeben, dann wird das Ergebnis gerundet. Weitere Informationen siehe Abschneiden und Runden von Feldwerten im Abschnitt Regeln für arithmetische Operationen im Leitfaden zur Programmierung.

## Beispiel

    ** Example 'SUBEX1': SUBTRACT
    ************************************************************************
    DEFINE DATA LOCAL
    1 #A (P2) INIT <50>
    1 #B (P2)
    1 #C (P1.1) INIT <2.4>
    END-DEFINE
    *
    SUBTRACT 6 FROM #A
    WRITE NOTITLE 'SUBTRACT 6 FROM #A              '  10X '=' #A
    *
    SUBTRACT 6 FROM 11 GIVING #A
    WRITE         'SUBTRACT 6 FROM 11 GIVING #A    '  10X '=' #A
    *
    SUBTRACT 3 4 FROM #A GIVING #B
    WRITE         'SUBTRACT 3 4 FROM #A GIVING #B  '  10X '=' #A '=' #B
    *
    SUBTRACT -3 -4 FROM #A GIVING #B
    WRITE         'SUBTRACT -3 -4 FROM #A GIVING #B'  10X '=' #A '=' #B
    *
    SUBTRACT ROUNDED 2.06 FROM #C
    WRITE         'SUBTRACT ROUNDED 2.06 FROM #C   '  10X '=' #C
    *
    END

Ausgabe des Programms `SUBEX1`:

    SUBTRACT 6 FROM #A                        #A:  44
    SUBTRACT 6 FROM 11 GIVING #A              #A:   5
    SUBTRACT 3 4 FROM #A GIVING #B            #A:   5 #B:  -2
    SUBTRACT -3 -4 FROM #A GIVING #B          #A:   5 #B:  12
    SUBTRACT ROUNDED 2.06 FROM #C             #C:  0.3

### On this page

- Funktion
- Syntax 1 - SUBTRACT-Statement ohne GIVING-Klausel
- Syntax 2 - SUBTRACT-Statement mit GIVING-Klausel
- Beispiel