COBOL 編程語言
詳細繁體中文教學
COBOL(Common Business-Oriented Language)是一門以商業資料處理為核心、語法偏向英文描述風格的程式語言, 常見於銀行、保險、批次報表與大型主機系統。這個網站將從程式結構、資料定義、流程控制一路教到實務範例與小測驗。
COBOL(Common Business-Oriented Language)是一門以商業資料處理為核心、語法偏向英文描述風格的程式語言, 常見於銀行、保險、批次報表與大型主機系統。這個網站將從程式結構、資料定義、流程控制一路教到實務範例與小測驗。
COBOL 的特色是語法接近英文敘述,程式結構清楚,非常適合表達商業流程。 初學時建議先掌握「四大 Division」、「PIC 資料描述」、「流程控制」三大主軸。
最簡單的 COBOL 程式通常至少會有程式識別與程序區塊。 在教學與測試環境中,常會用 DISPLAY 搭配 STOP RUN 驗證編譯器是否正常運作。
PICTURE(可簡寫為 PIC) 用來描述欄位格式,只能用在 elementary item(基本欄位)上, 是 COBOL 欄位設計的核心。常見用途包含定義文字欄位、數字欄位、含正負號數字等。
| 宣告 | 用途 | 說明 |
|---|---|---|
01 USER-NAME PIC X(20). |
字串欄位 | X 代表字元欄位,可容納 20 個字元。 |
01 AGE PIC 9(3). |
整數欄位 | 9 代表數字,可存放 3 位數。 |
01 SALARY PIC 9(5)V99. |
小數數值 | V 代表隱含小數點,實際可表示 99999.99。 |
01 DELTA PIC S9(4). |
有正負號數值 | S 表示 signed numeric。 |
COBOL 常使用等級號定義資料階層。最常見的是 01 作為主群組, 其下再用 05、10 等切分子欄位。
這種階層式資料設計很適合描述固定格式的商業資料記錄,例如員工資料、客戶主檔、交易紀錄等。
把文字或變數顯示到畫面上,是最入門也最常用的指令。
把資料從一個欄位搬到另一個欄位,是商業資料處理中的超高頻操作。
適合處理算術表達式,比單純 MOVE 更適合做數值計算。
當條件成立時執行某段程式,否則執行另一段。
類似其他語言的 switch / case,用於多種條件分支。
PERFORM 是 COBOL 中非常重要的流程控制語法,可執行一個 paragraph/section, 也可寫成重複迴圈形式。
很多初學者不是敗在邏輯,而是敗在格式。尤其在某些 COBOL 編譯器或主機環境中, 原始碼欄位位置可能會影響語法判定。
GnuCOBOL 文件指出,預設常見為 fixed format; 在固定格式中,欄位位置有明確意義,例如欄 1–6 為序號區、欄 7 為指示區、 欄 8–72 為主要程式文字區。另一方面,也可使用較現代化的 free format。
| 格式 | 特色 | 適合對象 |
|---|---|---|
| Fixed Format | 欄位位置嚴格、與傳統主機環境相容度高 | 維護舊系統、主機環境開發者 |
| Free Format | 較接近現代語言排版,閱讀與撰寫較方便 | 初學者、教學示範、GnuCOBOL 練習 |
GnuCOBOL 說明中提到,division、section、paragraph 名稱通常需從 Area A 開始, 而在 DATA DIVISION 中,01 與 77 等級號也通常位於 Area A; PROCEDURE DIVISION 的一般語句則多位於 Area B。
下列範例由淺入深,從最基礎輸出、到商業數值計算、再到檔案讀取概念, 幫助你把 COBOL 當成真正可用的商業程式語言來理解。
這是最基礎的 COBOL 程式,可用來測試編譯器與執行環境。
重點: 認識程式骨架、DISPLAY 輸出、STOP RUN 結束程式。
模擬商業系統中常見的薪資計算流程。
重點: WORKING-STORAGE、數值欄位、COMPUTE、多次 DISPLAY。
使用 IF 與 EVALUATE 做商業規則或分級判斷。
重點: IF/ELSE、巢狀條件、EVALUATE 多分支。
示範重複執行與總和計算,常見於批次處理與統計邏輯。
重點: PERFORM VARYING、ADD、迴圈終止條件。
IBM 文件提到,line-sequential file 屬於循序檔案,記錄會依順序讀取; 因此常見流程是:在 ENVIRONMENT DIVISION 宣告檔案、在 FILE SECTION 描述記錄、 在 PROCEDURE DIVISION 中用 READ 順序讀取。
做完下列題目後按下「提交答案」,系統會立即顯示分數與評語。