# COBOL :::info * DIVISIONS:部 * SEIONS:節 * Paragraphs:段 * Sentences:句子 * Entry:描述句 * Clauses:子句 * Constants:常數 * Characters:字母 --- 程式格式&語法 * 指示區(第七格) * A區(第8格到11格):部名、節名、段名必須從A區寫起,單獨寫一行 * B區(第12格到72格):一般敘述從B區寫起 * 轉型:WITH CONVERT --- * 編碼:BIG-5 * 英文:1byte * 中文:2byte --- * 呼叫副程式 * CALL 副程式 * CANCEL * 副程式 * GOBACK * 開啟檔案 * OPEN * INPUT * <span style="color:red">OUTPUT:檔案不存在(STATUS:35)才能用,不然會把原本檔案蓋掉,資料會不見</span> * I-O * CLOSE ::: --- ::: spoiler 程式結構 * 1.識別部(IDENTIFICATION DIVISION):不分節,僅分成數段。 <br/> * 2.環境部(ENVIRONMENT DIVISION): * 配置節或稱機型節(Configuration-SECTION) * SOURCE-COMPUTER(原始電腦段):說明電腦要在哪一種電腦執行編譯的工作 * OBJECT-COMPUTER(目的電腦段):說明程式被編譯後所產生目的程式在哪一種電腦機型執行 * SPECIAL-NAMES:用來將使用者定義名稱指定給系統 * 輸出入節(INPUT-OUPUT-SECTION): 說明這個程式要用到的輸出入設備或檔案 * INPUT: * 循序檔(Sequential File) * 行循序檔(LINE SEQUENTIAL) * 二元循序檔(BINARY SEQUENTIAL) * 索引循序檔(Indexed Sequential File):資料紀錄均按某一鍵值由小到大、依升序存放。有一個索引目錄(Index)用以記載資料的儲存位置 * 相關檔(Relative File) * OUTPUT: * FILE-CONTROL:<span style="color:red">*用以描述所有資料檔的名稱及組織,在程式裡所用到的每一個檔案均須在此段中用select子句描述</span> * I-O-CONTROL:用來記錄RERUN的時間與位置,共同緩衝區的檔案及多數個檔在磁帶的位置 <br/> * 3.資料部(DATA DIVISION) * 檔案節:<span style="color:red">*FILE SECTION,描述該程式所使用到的輸入和輸出檔,必須在環境部裡已經設定</span> * 檔案描述(FD file-name):由A區寫起 * 區段長度子句(Block Contains Clause):可省略,說明檔案中一個資料區段含幾個字符或幾個紀錄,預設512個字符 * 記錄長度紫劇(Record Contains Clause):可省略, * 定長記錄(Fixed Length):檔案裡每個記錄的長度都相同 * 變長記錄(Variable Length) * 標籤記錄子句(Label Record Clause):不可省略,長度都為80,ANSI規定 * 外部標籤(Exteranl Label):可由作業人員以肉眼判別 * 內部標籤(Internal Label):電腦判別用 * 檔頭標籤(Header Label):檔案識別字符串、資料錄存日期、保存日期等資料 * 檔尾標籤(Trailer Label):檔案終了字符、錄寫的串數等資料 * 資料記錄子句(Data Record Clause):可省略,替檔案的每一種記錄格式取一個名稱 * 記錄描述(Record Description):說明記錄內,每一資料項目的從屬關係及資料項目的類別與長度 * 層次號碼(level number):描述該記錄內群體項目與基本項目之間的從屬關係,號碼排列由01~49,越小層次越高 * 最高層次:01,由A區開始 * 02~48,由B區開始 * 資料項目名稱(Data Item Name):每一個層次號碼後要有一個資料項目名稱 * 格式(PICTURE或PIC): * 資料項目的類別 * 文字(Alphabetic):A * 文數字(Alphanumeric):X * 數字(Numeric):9,S與V不佔記憶體空間 * "S":代表允許有正負值存在 * "V":代表小數點位置 * "Z":碰到0變空白,只有在最前面有效 * "$":小數點會不見,例如:$9999V99 VALUE 1250.99,其顯示為$125099 * 資料項目的長度 * 工作區節:WORKING-STORAGE SECTION,有一些額外的位置存放與城市有關的資料 * 獨立資料項目(Independent data item):不隸屬於其他資料項目,也不包含其他資料項目,可利用77層次號碼來設定獨立資料項目。 * 連結節:LINKAGE SECTION,用來描述主程式與副程式之間所要傳遞的資料 * 編報節:REPORT SECTION,用來描述要利用報表編報常規(Report Writer Facility)來產生的報表內容和報表格式等 * 螢幕節:SEREEN SECTION,用來控制螢幕輸入與輸出格式,MS-COBOL中可使用 <br/> * 4.處理程序部(PROCEDURE DIVISION) * 程式結構:部名、節名、段名都要由A區寫起,各敘述則由B區寫起 PROCEDURE DIVISION. --部名 [section-name-1 SECTION.] --節名 pargraph-name-1. --段名 <blockquote>statement-1.</blockquote> <blockquote>statement-1. --敘述</blockquote> pargraph-name-2. --段名 <blockquote>statement-2.</blockquote> <blockquote>statement-2. --敘述 </blockquote> * 指令種類 * 運算敘述(Arithmetic statements) * ADD(加) * SUBTRACT(減) * MULTIPLY(乘) * DIVIDE(除) * COMPUTE(計算) * 資料整理敘述(Data manipulation statements) * MOVE(搬移) * INSPECT(檢查) * STRING(字串串接) * UNSTRING(分解字串) * 處理控制程序轉移敘述(Sequence control statements) * GO TO(無條件轉移) * PERFORM(履行敘述) * STOP(停止) * 料搬入、搬出敘述(Input/Ouput statements) * OPEN(開起) * READ(讀入) * ACCEPT(接收) * CLOSE(關閉) * WRITE(寫出) * DISPLAY(顯示) * 條件敘述(Conditional statement) * IF(假如敘述) :::
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up