Если вы посмотрите на опции COBOL в полоске меню в верхней части экрана выберите Program type
вы увидите два варианта: Executable
; Module
.
Для программы, запускаемой с ОС, в ОС MAIN, для этого вам необходимо установить исполняемый файл. Для программы CALLed, UTIL, вам нужно установить этот модуль.
Вы также должны установить GnuCOBOL, это новое имя для OpenCOBOL. GnuCOBOL активно поддерживается. Сайт GnuCOBOL в настоящее время находится в SourceForge.Net. В Help getting started
есть недавняя дискуссия о том, как это сделать (для Ubuntu, во всяком случае, если вы используете что-то другое, задайте вопрос, и вы получите помощь).
Раскрытие информации: Я являюсь модератором.
Вы должны знать, что концепция «main» на самом деле не существует в самом COBOL, а не на других языках, которые вы знаете. Именно то, как работает исходная программа, сводится к реализации и операционной системе.
В Linux/Unix/Windows исходная программа скомпилирована по-разному, поэтому она больше похожа на «главную». На мэйнфрейме IBM он не компилируется по-разному.
Также обратите внимание, что подпрограмма может вызвать другую подпрограмму. Вам нужно будет скомпилировать как модуль в вашем случае. Это не COBOL диктует это, но ОС и реализации.
Если вы изучаете COBOL, будьте современным об этом. В PROCEDURE DIVISION не присоединяйте полный цикл/период к строке кода и используйте их только там, где они необходимы, а не там, где они являются необязательными. В более ранних стандартах COBOL полная остановка/период была единственным доступным терминатором-терминатором, а для обратной совместимости она по-прежнему действует как «супер-ограничитель-ограничитель», который обычно не является тем, что вы хотите, и если это должно быть вы хотите, это плохая практика, так как любой другой читатель будет считать это ошибкой и удивляться тому, что вы действительно намеревались.
Нужна полная остановка/период: прекратить утверждение ПРОЦЕДУРЫ ОТДЕЛЕНИЯ; прекратить действие пункта или метки SECTION; прекратить действие пункта или самой СЕКЦИИ; для завершения программы.
Если вы используете директиву-компилятор COPY
или REPLACE
, вам также необходимо завершить работу с полной остановкой/периодом.
Ваша подпрограмма не содержит ПРОГРАММЫ GOBACK, RETURN или EXIT. Даже если бы это сработало, это было бы нестандартным, не переносным и не было бы хорошим способом узнать COBOL.
В реальном мире программирования COBOL вы не сможете/не сможете найти используемый PIC A. Это считается малопривлекательным, поскольку все, что он делает, не позволяет использовать это поле в качестве источника и числового поля в качестве цели в том же самом заявлении. Использование PIC X вместо PIC A - это то, что вы обычно видите, так что вы можете начинать сейчас (несмотря на то, что может сказать любой учебник).
Это мнение, и вам не нужно следовать этому совету, но на практике так оно и есть.
Использование запятых (или любого другого неотделимого разделителя) в операторах COBOL только облака программы. Они не имеют подлинной ценности. Это действительно:
PROCEDURE DIVISION USING LS-STUDENT-ID, , , , , LS-STUDENT-NAME.
И какой смысл?
Нет смысла определять поле как числовое просто потому, что оно содержит число. Вы никогда не будете делать расчет с идентификатором студента, поэтому для него намного лучше быть PIC X, а не PIC 9.
Я считаю, что трудно поверить, что вы нашли время, чтобы изменить свой аватар, но не сделал найдите время, чтобы дать любую обратную связь. –