
- COBOL 教程
- COBOL - 首頁
- COBOL - 概述
- COBOL - 環境設定
- COBOL - 程式結構
- COBOL - 基本語法
- COBOL - 資料型別
- COBOL - 基本動詞
- COBOL - 資料佈局
- COBOL - 條件語句
- COBOL - 迴圈語句
- COBOL - 字串處理
- COBOL - 表格處理
- COBOL - 檔案處理
- COBOL - 檔案組織
- COBOL - 檔案訪問模式
- COBOL - 檔案處理動詞
- COBOL - 子程式
- COBOL - 內部排序
- COBOL - 資料庫介面
- COBOL 有用資源
- COBOL - 問答
- COBOL - 快速指南
- COBOL - 有用資源
COBOL - 程式結構
COBOL 程式結構由以下影像所示的各個部分組成:

下面簡要介紹這些部分:
節(Sections) 是程式邏輯的邏輯細分。一個節是由多個段落組成的。
段落(Paragraphs) 是節或部分的細分。它是由使用者定義或預定義的名稱後跟句點組成,包含零個或多個語句/條目。
語句(Sentences) 是一個或多個語句的組合。語句僅出現在過程部分。語句必須以句點結尾。
語句(Statements) 是執行某些處理的具有意義的 COBOL 語句。
字元(Characters) 是層次結構中最低的,不可分割。
您可以將上述術語與以下示例中的 COBOL 程式相關聯:
PROCEDURE DIVISION. A0000-FIRST-PARA SECTION. FIRST-PARAGRAPH. ACCEPT WS-ID - Statement-1 -----| MOVE '10' TO WS-ID - Statement-2 |-- Sentence - 1 DISPLAY WS-ID - Statement-3 -----| .
部分(Divisions)
COBOL 程式由四個部分組成。
標識部分(Identification Division)
它是每個 COBOL 程式的第一個也是唯一必須的部分。程式設計師和編譯器使用此部分來識別程式。在此部分中,PROGRAM-ID 是唯一必須的段落。PROGRAM-ID 指定程式名稱,該名稱可以包含 1 到 30 個字元。
嘗試使用線上的即時演示選項嘗試以下示例。
即時演示IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. PROCEDURE DIVISION. DISPLAY 'Welcome to Tutorialspoint'. STOP RUN.
以下是執行上述 COBOL 程式的JCL。
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
Welcome to Tutorialspoint
環境部分(Environment Division)
環境部分用於向程式指定輸入和輸出檔案。它包含兩個節:
配置節(Configuration section) 提供有關編寫和執行程式的系統的資訊。它包含兩個段落:
源計算機 - 用於編譯程式的系統。
目標計算機 - 用於執行程式的系統。
輸入輸出節(Input-Output section) 提供有關程式中要使用的檔案的資訊。它包含兩個段落:
檔案控制 - 提供程式中使用的外部資料集的資訊。
I/O 控制 - 提供程式中使用的檔案的資訊。
ENVIRONMENT DIVISION. CONFIGURATION SECTION. SOURCE-COMPUTER. XXX-ZOS. OBJECT-COMPUTER. XXX-ZOS. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILEN ASSIGN TO DDNAME ORGANIZATION IS SEQUENTIAL.
資料部分(Data Division)
資料部分用於定義程式中使用的變數。它包含四個節:
檔案節(File section) 用於定義檔案的記錄結構。
工作儲存節(Working-Storage section) 用於宣告程式中使用的臨時變數和檔案結構。
區域性儲存節(Local-Storage section) 與工作儲存節類似。唯一的區別是每次程式開始執行時都會分配和初始化變數。
連線節(Linkage section) 用於描述從外部程式接收的資料名稱。
COBOL 程式
IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. FILE-CONTROL. SELECT FILEN ASSIGN TO INPUT. ORGANIZATION IS SEQUENTIAL. ACCESS IS SEQUENTIAL. DATA DIVISION. FILE SECTION. FD FILEN 01 NAME PIC A(25). WORKING-STORAGE SECTION. 01 WS-STUDENT PIC A(30). 01 WS-ID PIC 9(5). LOCAL-STORAGE SECTION. 01 LS-CLASS PIC 9(3). LINKAGE SECTION. 01 LS-ID PIC 9(5). PROCEDURE DIVISION. DISPLAY 'Executing COBOL program using JCL'. STOP RUN.
執行上述 COBOL 程式的JCL如下:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO //INPUT DD DSN = ABC.EFG.XYZ,DISP = SHR
編譯並執行上述程式後,將產生以下結果:
Executing COBOL program using JCL
過程部分(Procedure Division)
過程部分用於包含程式的邏輯。它使用資料部分中定義的變數包含可執行語句。在此部分中,段落和節名稱是使用者定義的。
過程部分中必須至少有一個語句。此部分中結束執行的最後一個語句是STOP RUN(用於呼叫程式)或EXIT PROGRAM(用於被呼叫程式)。
即時演示IDENTIFICATION DIVISION. PROGRAM-ID. HELLO. DATA DIVISION. WORKING-STORAGE SECTION. 01 WS-NAME PIC A(30). 01 WS-ID PIC 9(5) VALUE 12345. PROCEDURE DIVISION. A000-FIRST-PARA. DISPLAY 'Hello World'. MOVE 'TutorialsPoint' TO WS-NAME. DISPLAY "My name is : "WS-NAME. DISPLAY "My ID is : "WS-ID. STOP RUN.
執行上述 COBOL 程式的JCL:
//SAMPLE JOB(TESTJCL,XXXXXX),CLASS = A,MSGCLASS = C //STEP1 EXEC PGM = HELLO
編譯並執行上述程式後,將產生以下結果:
Hello World My name is : TutorialsPoint My ID is : 12345