Четырехзначное число на самом деле ни для чего не используется, НО, если программа правильно структурирована, это может помочь опытному программисту узнать, как обходится с программой.Давайте посмотрим на этот пример:
PROCEDURE DIVSION.
0000-MAINLINE.
PERFORM OPEN-FILES
PERFORM VALIDATE-CONTENTS
PERFORM PROCESS-DATA
PERFORM WRITE-REPORTS
PERFORM CLOSE-FILES
.
CLOSE-FILE.
PERFORM CLOSE-FILE1
PERFORM CLOSE-FILE2
PERFORM CLOSE-FILE3
.
PROCESS-DATA.
PERFORM VARYING X
FROM 1 BY 1
UNTIL X > NUMBER-OF-RECS
PERFORM DO-THE-THINGS
END-PERFORM
.
WRITE-REPORTS.
DISPLAY 'THIS IS MY REPOR'.
.
VALIDATE-CONTENTS.
IF REC NOT EQUAL SPACES
SET GOOD-REC TO TRUE
END-IF
.
OPEN-FILES.
PERFORM OPEN-FILE1
PERFORM OPEN-FILE2
PERFORM OPEN-FILE3
.
DO-THE-THINGS.
CONTINUE
.
Я знаю, что программа глупая и не имеет смысла, но это нормально для этого примера.Попробуйте следить за ходом этой программы.Если мы присваиваем номер каждому началу абзаца и единице и приращению (таким образом, CLOSE-FILE равен 1, PROCESS-DATA равен 2 ...), тогда основная линия прыгает примерно так:
5
4
2, 6
3
1
Это нормально для такой маленькой программы, потому что мы все еще можем найти наш путьвокруг.Теперь представьте, что ваша программа имеет тысячи строк и все вышло из строя.Да, вы можете понять это, но не было бы намного проще, если бы это выглядело так:
PROCEDURE DIVSION.
0000-MAINLINE.
PERFORM A0000-OPEN-FILES
PERFORM B0000-VALIDATE-CONTENTS
PERFORM C0000-PROCESS-DATA
PERFORM D0000-WRITE-REPORTS
PERFORM E0000-CLOSE-FILES
.
A0000-OPEN-FILES.
PERFORM OPEN-FILE1
PERFORM OPEN-FILE2
PERFORM OPEN-FILE3
.
B0000-VALIDATE-CONTENTS.
IF REC NOT EQUAL SPACES
SET GOOD-REC TO TRUE
END-IF
.
C0000-PROCESS-DATA.
PERFORM VARYING X
FROM 1 BY 1
UNTIL X > C1000-NUMBER-OF-RECS
PERFORM DO-THE-THINGS
END-PERFORM
.
C1000-DO-THE-THINGS.
CONTINUE
.
D0000-WRITE-REPORTS.
DISPLAY 'THIS IS MY REPOR'.
.
E0000-CLOSE-FILE.
PERFORM CLOSE-FILE1
PERFORM CLOSE-FILE2
PERFORM CLOSE-FILE3
.
В моем магазине, как мы это делаем, все в основном начинается с буквы (отсюда A0000).Если A0000 вызывает что-то, этот абзац будет называться A1000.Если A1000 что-то называет, это будет A1100.Поэтому мы используем символ для обозначения вложения.поэтому у меня может быть что-то похожее на это:
PROCEDURE DIVSION.
0000-MAINLINE.
PERFORM A0000-DO-SOMETHING
PERFORM B0000-SHUTDOWN
.
A0000-DO-SOMETHING.
PERFORM A1000-DO-MORE
PERFORM A2000-VALIDATE-STUFF
.
A1000-DO-MORE.
PERFORM A1100-DO-THING1
PERFORM A1200-DO-THING2
PERFORM A1300-DO-THING3
.
Короче говоря, это просто помогает при навигации и следовании программе.Ничто не мешает вам пропустить цифры, но как только программа станет больше, и кто-то другой должен ее поддерживать, цифры окажутся очень полезными.Я не люблю работать с программами, которые не структурированы должным образом, потому что это значительно усложняет отладку и изучение программы.Особенно, когда я использую эмулятор терминала и вижу только 20 строк одновременно.