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

КОБОЛ Арифметика

В 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.

Загрузка редактора…
Показать подсказку

Используйте синтаксис: ДОБАВИТЬ WS-NUM-A К WS-NUM-B, ДАВАЯ WS-РЕЗУЛЬТАТ.

Решение доступно после 3 попыток

Упражнение#cobol.m2.l1.e2
Попыток: 0Загрузка…

Используйте оператор COMPUTE, чтобы вычислить значение WS-RESULT, применяя формулу: два раза WS-NUM-A минус WS-NUM-B.

Загрузка редактора…
Показать подсказку

Используйте пробелы вокруг операторов * и -: COMPUTE WS-RESULT = (WS-NUM-A * 2) - WS-NUM-B.

Решение доступно после 3 попыток