Уроки модуля (1/2)
Абзацы и ВЫПОЛНЕНИЕ
В COBOL модульность и логическое структурирование кода внутри PROCEDURE DIVISION осуществляются не с помощью функций или методов, а с помощью Paragraphs и оператора PERFORM.
Определение абзацев
Абзац — это помеченный раздел кода, начинающийся с имени в столбце 8 (область A) и заканчивающийся точкой ., за которым следует последовательность инструкций в столбце 12 (область B).
DISPLAY-MESSAGE.
DISPLAY "This is a paragraph!".Параграфы позволяют разбивать потенциально очень длинные программы на повторно используемые и самодокументируемые блоки.
Выполнение абзацев с помощью PERFORM
Оператор PERFORM вызывает и выполняет абзац, а затем возвращает управление инструкции, следующей сразу за оператором PERFORM.
PROCEDURE DIVISION.
MAIN-PROCEDURE.
DISPLAY "Starting program...".
PERFORM PROCESS-DATA.
DISPLAY "Ending program.".
STOP RUN.
PROCESS-DATA.
DISPLAY "Processing data in memory...".В приведенном выше списке:
- Выполняется
DISPLAYвнутриMAIN-PROCEDURE. PERFORM PROCESS-DATAвыполняет переход к абзацуPROCESS-DATA.- После завершения абзаца
PROCESS-DATAвыполнение возвращается кMAIN-PROCEDUREдля печати «Завершение программы». и остановитесь, используяSTOP RUN..
Попробуйте сами
Определите абзац с именем DISPLAY-TOTAL, который печатает «TOTAL IS DONE» с помощью DISPLAY, и вызовите его внутри MAIN-PROCEDURE с помощью PERFORM перед остановкой программы.
Показать подсказку
Напишите ВЫПОЛНИТЬ ПОКАЗ-ВСЕГО. в столбце 12 и под блоком MAIN-PROCEDURE объявите DISPLAY-TOTAL. абзац в графе 8.
Решение доступно после 3 попыток
Последовательно вызовите два абзаца: сначала INITIALIZE-DATA, а затем PROCESS-DATA в блоке MAIN-PROCEDURE.
Показать подсказку
Вставьте два оператора PERFORM последовательно в столбец 12.
Решение доступно после 3 попыток