Przejdź do głównej treści
eLearner.app
Moduł 2 · Lekcja 1 z 23/10 w kursie~12 min
Lekcje modułu (1/2)

Arytmetyka w COBOL-u

W COBOL-u operacje matematyczne mogą być wykonywane zarówno przy użyciu dedykowanych instrukcji słownych (ADD, SUBTRACT, MULTIPLY, DIVIDE), jak i poprzez ogólną i bardziej elastyczną instrukcję COMPUTE.

Operacje arytmetyczne za pomocą instrukcji słownych

COBOL oferuje specyficzne instrukcje tekstowe dla każdej podstawowej operacji arytmetycznej:

1. Dodawanie (ADD)

Dodaje jedną lub więcej wartości do zmiennej.

Code
ADD WS-NUM-A TO WS-NUM-B.
* Equivale a: WS-NUM-B = WS-NUM-B + WS-NUM-A

Jeśli chcemy zapisać wynik w trzeciej zmiennej bez modyfikowania oryginalnych składników, używamy klauzuli GIVING:

Code
ADD WS-NUM-A TO WS-NUM-B GIVING WS-RESULT.

2. Odejmowanie (SUBTRACT)

Odejmuje jedną wartość od drugiej.

Code
SUBTRACT 10 FROM WS-BALANCE.
SUBTRACT WS-TAX FROM WS-SUBTOTAL GIVING WS-TOTAL.

3. Mnożenie (MULTIPLY) i Dzielenie (DIVIDE)

Mnożą i dzielą wartości w analogiczny sposób.

Code
MULTIPLY WS-QTY BY WS-PRICE GIVING WS-TOTAL.
DIVIDE WS-TOTAL BY WS-ITEMS GIVING WS-AVERAGE.

Instrukcja COMPUTE

W przypadku złożonych wyrażeń matematycznych używanie pojedynczych czasowników arytmetycznych może być długie i trudne do odczytania. Instrukcja COMPUTE umożliwia stosowanie standardowych operatorów matematycznych (+, -, *, /, ** do potęgowania) podobnie jak w nowoczesnych językach.

Code
COMPUTE WS-TOTAL = (WS-PRICE * WS-QUANTITY) - WS-DISCOUNT.

Spróbuj sam

Ćwiczenie#cobol.m2.l1.e1
Próby: 0Ładowanie...

Napisz instrukcję w PROCEDURE DIVISION przy użyciu czasownika ADD, aby dodać WS-NUM-A do WS-NUM-B i zapisać wynik w WS-RESULT.

Ładowanie edytora...
Pokaż wskazówkę

Użyj składni: ADD WS-NUM-A TO WS-NUM-B GIVING WS-RESULT.

Rozwiązanie dostępne po 3 próbach

Ćwiczenie#cobol.m2.l1.e2
Próby: 0Ładowanie...

Użyj instrukcji COMPUTE, aby obliczyć wartość WS-RESULT, stosując wzór: dwukrotność WS-NUM-A minus WS-NUM-B.

Ładowanie edytora...
Pokaż wskazówkę

Użyj spacji wokół operatorów * i -: COMPUTE WS-RESULT = (WS-NUM-A * 2) - WS-NUM-B.

Rozwiązanie dostępne po 3 próbach