Перейти до основного вмісту
Модуль 2 · Урок 1 із 23/10 у курсі~12 min
Модульні уроки (1/2)

Арифметика COBOL

У COBOL математичні операції можна виконувати або за допомогою спеціальних дієслів (ADD, SUBTRACT, MULTIPLY, DIVIDE), або за допомогою загального та експресивного оператора COMPUTE.

Арифметичні дії з формальними дієсловами

COBOL надає спеціальні текстові інструкції для кожної базової арифметичної операції:

1. Доповнення (ADD)

Додає одне або кілька значень до змінної.

COBOL
ADD WS-NUM-A TO WS-NUM-B.
* Equivalent to: WS-NUM-B = WS-NUM-B + WS-NUM-A

Якщо ви хочете зберегти результат у третій змінній, не змінюючи додавання, скористайтеся пропозицією GIVING:

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

2. Віднімання (SUBTRACT)

Віднімає одне значення від іншого.

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

3. Множення (MULTIPLY) і ділення (DIVIDE)

Множення та ділення значень аналогічним чином.

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

Оператор COMPUTE

Для складних математичних виразів використання окремих арифметичних дієслів може бути довгим і важким для читання. Оператор COMPUTE дозволяє використовувати стандартні математичні оператори (+, -, *, /, ** для піднесення до степеня), подібні до сучасних мови.

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

Спробуйте самі

вправи#cobol.m2.l1.e1
Спроби: 0Завантаження…

Напишіть інструкцію всередині PROCEDURE DIVISION, використовуючи дієслово ADD, щоб підсумувати WS-NUM-A до WS-NUM-B і зберегти результат у WS-RESULT.

Завантаження редактора…
Показати підказку

Використовуйте синтаксис: ADD WS-NUM-A TO WS-NUM-B GIVING WS-RESULT.

Рішення доступне після 3 спроб

вправи#cobol.m2.l1.e2
Спроби: 0Завантаження…

Використовуйте оператор COMPUTE, щоб обчислити значення WS-RESULT за формулою: два рази на WS-NUM-A мінус WS-NUM-B.

Завантаження редактора…
Показати підказку

Використовуйте пробіли навколо операторів * і -: ОБЧИСЛИТИ WS-РЕЗУЛЬТАТ = (WS-NUM-A * 2) - WS-NUM-B.

Рішення доступне після 3 спроб