2022年COBOL譚浩強(qiáng)版學(xué)習(xí)筆記_第1頁
2022年COBOL譚浩強(qiáng)版學(xué)習(xí)筆記_第2頁
2022年COBOL譚浩強(qiáng)版學(xué)習(xí)筆記_第3頁
2022年COBOL譚浩強(qiáng)版學(xué)習(xí)筆記_第4頁
2022年COBOL譚浩強(qiáng)版學(xué)習(xí)筆記_第5頁
已閱讀5頁,還剩14頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、COBOL 資料整理 COBOL 語言概述 一 COBOL 程序的結(jié)構(gòu) 1部 IDENTIFICATION DIVISION 標(biāo)識(shí)部 ENVIRONMENT DIVISION 環(huán)境部 DATA DIVISION 數(shù)據(jù)部 PROCEDURE DIVISION 過程部 2節(jié)( SECTION )和段( PARAGRAPH ) ( 1)部 -節(jié)-段 ( 2)標(biāo)識(shí)部下面不設(shè)節(jié),直接設(shè)段 ( 3)過程部可以設(shè)節(jié),下面再設(shè)段,也可以直接設(shè)段 3句子,語句和子句 每一段由如干句子( Sentence)組成,一個(gè)句子以句號(hào)加上一個(gè)以上的空格來終止; 句子由語句( Statement)組成; 語句中又可以包含如

2、干子句( clause),每一個(gè)子句也有一個(gè)動(dòng)詞(但這個(gè)動(dòng)詞往往是可以省略的) ,它指定某一方面 的特定功能; 二 COBOL 源程序的書寫格式 1 1-6 列:標(biāo)號(hào)區(qū) 2第 7 列:續(xù)行標(biāo)志區(qū)( “ -”為續(xù)行,“ * ”為注解) 3 8-11 列: A 區(qū)(部頭,節(jié)頭,段頭,層號(hào) 4 12-72 列: B 區(qū)(正文) 5 73-80 列:注釋區(qū) 三 COBOL 字符 01,77,文件描述符 FD 等) 數(shù)字 0-9,大寫字母 A-Z ,小寫字母 a-z, 專用字符 15 個(gè) + - * / = , . ; $ 空格 四常量 1數(shù)值常量 ( 1)小數(shù)點(diǎn)不能多于一個(gè),而且不能顯現(xiàn)在常數(shù)最右邊;

3、 ( 2)數(shù)值常量的長度不能超過 18 位數(shù)字; ( 3)至少要有一個(gè)數(shù)字,不能有多于一個(gè)符號(hào); ( 4)數(shù)字間不能有空格,空格是分界符; 2非數(shù)值常量 ( 1)用把字符串包起來 ( 2)假如要把 放到非數(shù)值常量中,用 QUOTE 保留字, 如 MOVE QUOTE CHINA QUOTE TO A ( 3)長度不應(yīng)超過 120 個(gè)字符; 3表意常量 表意常量 所表示的值 第 1 頁,共 19 頁ZERO/ZEROS/ZEROES 表示一個(gè)或多個(gè)零字符 SPACE/SPACES 表示一個(gè)或多個(gè)空格字符 表示一個(gè)或多個(gè)具有HIGH-V ALUE/HIGH-V ALUES “最高值”的字符(每個(gè)字

4、符 的二進(jìn)制表示為 11111111) LOW-V ALUE/LOW-VALUES 表示一個(gè)或多個(gè)具有“最小值”的字符(每個(gè)字符 的二進(jìn)制表示為 00000000) QUOTE/QUOTES 表示一個(gè)或多個(gè)引號(hào)字符 ALL 常量 表示由一個(gè)或多個(gè)該常量組成的字符串 五 COBOL 的數(shù)據(jù)關(guān)系 文件 記錄 1記錄 i記錄 n組合項(xiàng) 1組合項(xiàng) i組合項(xiàng) n初等項(xiàng) 組合項(xiàng) p組合項(xiàng) q初等項(xiàng) 初等項(xiàng) 第 2 頁,共 19 頁初等項(xiàng) 初等項(xiàng) 過程部初步 一輸入輸出語句 1 ACCEPT (接收語句) :直接從中斷鍵盤或系統(tǒng)指定的輸入設(shè)備上輸入少量的數(shù)據(jù); 語法: ACCEPT 標(biāo)識(shí)符 FROM 助憶名

5、 2 READ (讀語句):從外部文件上讀入數(shù)據(jù)輸?shù)匠绦蛑械臄?shù)據(jù)項(xiàng)中; 語法: READ 文件名 RECORD INTO 標(biāo)識(shí)符 ; AT END 執(zhí)行語句 3 WRITE (寫語句):將內(nèi)存區(qū)中的數(shù)據(jù)輸出到外部設(shè)備 語法: WRITE 記錄名 FROM 標(biāo)識(shí)符 1BEFORE ADV ANCING 標(biāo)識(shí)符 2/整數(shù) LINE/LINES AFTER 助憶名 /PAEG 4 OPEN(打開語句) :程序如要讀和寫文件,先要把文件打開 語法: OPEN INPUT/OUPUT 文件名 1,文件名 2 5 CLOSE (關(guān)閉語句) :關(guān)閉文件; 語法: CLOSE 文件名 1,文件名 2 二算術(shù)運(yùn)

6、算語句 1 ADD (加法語句) 舉例: ADD A TO B A+B B CA T ADD 15 TO C15+CCADD A ,B TO C A+B+C ADD 15 , 25 TO C ADD A ,B GIVING C ADD 15 , 25 GIVING T ADD A ,B TO C ,D 2 SUBTRACT (減法語句) 15+25+C A+B-CC15+25 T C,A+B+D DA+B+C 舉例: SUBTRACT B FROM A A-B A SUBTRACT B ,C FROM A A-B-C SUBTRACT B ,C FROM A , T A-B-C A,T-B-C

7、 SUBTRACT B ,C FROM A GIVING X A-B-C X 3 MULTIPL Y (乘法語句) 舉例: MULTIPL Y A BY B A*B B B A MULTIPLY 0.5 BY B0.5*B MULTIPLY A BY B GIVING C A*BCMULTIPLY 1.5 BY 3 GIVING C,A 1.5*3 C,1.5*3 第 3 頁,共 19 頁MULTIPLY A BY B,C A*B B,A*C C4 DIVIDE (除法語句) 舉例: DIVIDE A INTO B B/A B CDIVIDE A INTO B GIVING CB/A DIVI

8、DE A BY B GIVING C A/B C5 COMPUTE (運(yùn)算語句) 語法: COMPUTE 標(biāo)識(shí)符 1,標(biāo)識(shí)符 2 =算術(shù)表達(dá)式 舉例: COMPUTE T = ( A + B ) * C / D 留意:( 1)所以運(yùn)算符兩側(cè)應(yīng)留一空格 ( 2)括號(hào)外側(cè)應(yīng)留空格,內(nèi)側(cè)可不要留空格 三 MOVE (傳送語句) 語法: MOVE 標(biāo)識(shí)符 1/常量 1 TO 標(biāo)識(shí)符 2,標(biāo)識(shí)符 3 四 GOTO (轉(zhuǎn)移語句) 語法:( 1) GO TO 過程名 2 過程名 n, DEPENDING ON 標(biāo)識(shí)符 ( 2) GO TO 過程名 1,過程名 五 IF (條件語句) 1關(guān)系運(yùn)算符 COBOL

9、 關(guān)系運(yùn)算符 意義 IS GREATER THAN 大于 IS THAN IS LESS THAN 小于 IS NOT LESS THAN 不小于 NOT NOT EQUAL TO 不等于 NOT = 2 IF 語句的兩種形式 ( 1) IF 條件 語句組 ( 2) IF 條件 語句組 1 ELSE 語句組 2 3 IF 語句的一般格式 IF 語句組 1/NEXT SENTENCE ELSE 語句組 2/NEXT SENTENCE 六 STOP (停止語句) 語法: STOP RUN/ 常量 標(biāo)識(shí)部和環(huán)境部 第 4 頁,共 19 頁一標(biāo)識(shí)部 1必寫部分 IDENTIFICATION DIVIS

10、ION PROGRAM-ID. 程序名 . 2任選部分 AUTHOR 作者姓名 . . INSTALLATION. 運(yùn)算機(jī)設(shè)置的場所 DATE-WRITTEN. 源程序編寫的日期 . DATE-COMPILED. 源程序編譯的日期 . SECURITY. 保密程度 . 二環(huán)境部 1環(huán)境部的一般形式 ENVIRONMENT DIVISION. (環(huán)境部) CONFIGURATION SECTION. (配置節(jié)) SOURCE-COMPUTER. 源運(yùn)算機(jī)名 OBJECT-COMPUTER. 目標(biāo)運(yùn)算機(jī)名 SPECIAL-NAMES. 專用名描述項(xiàng) INPUT-OUTPUT SECTION. (輸

11、入輸出節(jié)) FILE-CONTROL. 文件描述體 I-O-CONTROL. 輸入輸出把握描述體 2配置節(jié)( CONFIGURATION SECTION ) ( 1)源運(yùn)算機(jī)段和目標(biāo)運(yùn)算機(jī)段的一般格式 SOURCE-COMPUTER. OBJECT-COMPUTER. MEMORY SIZE IS 整數(shù) WORDS/CHARACTERS/MODULES ( 2)專用名段 格式: SPECIAL-NAMES. DECIMAL-POINT IS COMMA. CURRENCY SIGN IS 非數(shù)值常量 . 專用名 IS 助記名 . 3輸入輸出節(jié)(分為輸入輸出把握段與文件把握段) 文件把握段 格式

12、: INPUT-OUTPUT SECTION. (輸入輸出節(jié)) FILE-CONTROL. (文件把握段) SELECT 文件名 ASSIGN TO 外部文件名 . 說明: SELECT 的三種用法 ( 1) 在 SELECT 子句的“ ASSIGN TO ”的后面寫上磁盤上實(shí)際的文件名; ( 2) 在 SELECT 子句中只指出外部設(shè)備名; ( 3) 在一些中,大型運(yùn)算機(jī)系統(tǒng),在 SELECT 子句中用該系統(tǒng)指定的規(guī)律名作為外部文件名,然后用作業(yè)把握語句 將該規(guī)律名與實(shí)際的設(shè)備和文件相聯(lián)系; 數(shù)據(jù)部(一) 第 5 頁,共 19 頁一概述 1數(shù)據(jù)有兩種:孤立的數(shù)據(jù)項(xiàng),組合的數(shù)據(jù)項(xiàng) 2數(shù)據(jù)的層次

13、與層號(hào) ( 1)數(shù)據(jù)的層次結(jié)構(gòu):記錄 組合項(xiàng) 初等項(xiàng) ( 2)層次的規(guī)定如下: 用來描述數(shù)據(jù)層次結(jié)構(gòu)的層號(hào)從 01 開頭,到 49;記錄的最高層次定為 01 號(hào); K 或等于 K 的層次為 層號(hào)小的組合項(xiàng)包含層號(hào)大的數(shù)據(jù)項(xiàng)(組合項(xiàng)或初等項(xiàng)) ; 直到遇到層號(hào)小于 一個(gè)層號(hào)為 K 的組合項(xiàng)包括它下面全部層號(hào)比它大的組合項(xiàng)和初等項(xiàng), 止; 3數(shù)據(jù)部的結(jié)構(gòu) ( 1)文件節(jié)( FILE SECTION ) 用來描述程序中用到的輸入文 件和輸出文件及其記錄中各數(shù)據(jù)項(xiàng)的屬性; ( 2)工作單元節(jié)( WORKING-STORAGE SECTION ) 用來描述程序中用到的數(shù)據(jù)項(xiàng); ( 3)聯(lián)接節(jié)( LINK

14、AGE SECTION ) 用來描述與調(diào)用程序間發(fā)生數(shù)據(jù)傳遞的數(shù)據(jù)項(xiàng); ( 4)報(bào)表節(jié)( REPORT SECTION ) 為了完成報(bào)表編制功能,此節(jié)用來規(guī)定欲輸出的報(bào)表的“體裁“,設(shè)計(jì)各報(bào)表欄的打印形式和方法等; 二文件節(jié) 1文件描述 ARE 格式: FD 文件名 LABEL RECORD IS/RECORDS ARE STANDARD/OMITTED DATA RECORD IS/RECORDS 數(shù)據(jù)名 2記錄描述 記錄描述體由 01 層號(hào)開頭,后跟記錄名; 假如記錄下面不再分項(xiàng),即記錄本身就是一個(gè)初等項(xiàng),就這種描述體最簡潔; 三字型子句( PIC 子句) 1數(shù)值型數(shù)據(jù)的描述 ( 1)“

15、9”描述符:表示在該位置上可以放入一個(gè) 0-9 之間的數(shù)字 舉例: 02 X PIC 9999. 02 Y PIC 95. ( 2)“ V ”描述符:支持在數(shù)值型數(shù)據(jù)結(jié)構(gòu)中隱含的小數(shù)點(diǎn)位置 舉例: 03 M PIC 999V999. ( 3)“ P”描述符:對(duì)低位上有如干個(gè)零的數(shù),可以用該描述符; 舉例: 01 A PIC 9P9. 表示 10 的 9 次方 01 B PIC PPPP99. 表示 ( 4)“ S”描述符:假如想在數(shù)據(jù)項(xiàng)中放入一個(gè)帶符號(hào)的數(shù),可以用該描述符;對(duì)于類似 PIC S99 的數(shù)據(jù)項(xiàng),系統(tǒng)在 內(nèi)存中該數(shù)據(jù)項(xiàng)的最終一個(gè)字節(jié)中,放入一個(gè)標(biāo)記,表示此數(shù)為負(fù); 二字母型數(shù)據(jù)的描

16、述 “ A ”描述符:這種類型的數(shù)據(jù)項(xiàng)中只能放字母或空格 三字符型數(shù)據(jù)的描述 第 6 頁,共 19 頁( 1)字符型數(shù)據(jù)的規(guī)定 概念:由任意的 COBOL 字符組成的數(shù)據(jù),稱字符型數(shù)據(jù); 說明: I.字符型數(shù)據(jù)可以用 X 描述符來描述,也可以用 9 和 A 描述符來描述; II. 字母型數(shù)據(jù)可以用 A 來描述,也可以用 X ; III. 字符型數(shù)據(jù)中可以放數(shù)字; 四編輯型描述符 1插入小數(shù)點(diǎn)“ .”,用“ .”描述符; 2插入逗號(hào)“, ”作分位號(hào),用“, ”描述符; 3插入零,用“ 0”描述符; 4插入空格,用“ B”描述符; 5插入正負(fù)號(hào),用“ +”或“ -”描述符; 6插入“ $” ( 1

17、)加到數(shù)字前; ( 2)在數(shù)字前加正負(fù)號(hào)和 $; 7浮動(dòng)插入正負(fù)號(hào)和“ $” 8取消高位零,用“ Z”和“ * ”描述符; 9插入“ DB “和“ CR”字符:此兩個(gè)描述符只能用作固定插入,而且只作最終一個(gè)描述符號(hào);當(dāng)數(shù)值為正時(shí),此兩次 留兩個(gè)空格;為負(fù)時(shí),在編輯型數(shù)據(jù)項(xiàng)中最終兩個(gè)字節(jié)中置 DB 或 CR; 五 PIC 子句小結(jié) 1格式: PICTURE/PIC IS 描述字符串 2每一種類型數(shù)據(jù)可以使用的描述字符如下: 數(shù)據(jù)類型 在 PIC 子句中答應(yīng)使用的描述字符 數(shù)值數(shù)據(jù)項(xiàng) 字 9 V S P 母數(shù)據(jù)項(xiàng) 字符 A 數(shù)據(jù)項(xiàng) 編輯數(shù) 9 A X 值數(shù)據(jù)項(xiàng) 編輯 9 P V . , B Z +

18、 - $ * 0 CR DB字符數(shù)據(jù)項(xiàng) A X 9 B 0 3描述字符的含義 描述字符 含義 9 表示一個(gè)數(shù)字的位置 A 表示一個(gè)字母的位置 X 表示一個(gè)字符的位置 V 表示隱含小數(shù)點(diǎn)的位置 S 表示數(shù)值數(shù)據(jù)帶符號(hào) P 表示十進(jìn)制比例換算,即指明落在數(shù)據(jù)域外的十進(jìn)制小數(shù)點(diǎn)位置 $ 插入貨幣號(hào)位置 . 插入小數(shù)點(diǎn)位置 , 插入逗號(hào)的位置 + 一律加符號(hào) -對(duì)負(fù)數(shù)加負(fù)號(hào),對(duì)正數(shù)前留一空格 Z 取消高位零,以代空格 * 取消高位零,代以 *第 7 頁,共 19 頁B 插入空格的位置 DB ,數(shù)據(jù)為正時(shí),數(shù)據(jù)后空兩格 0插入零的位置 數(shù)據(jù)為負(fù)時(shí),DB ( 借 在數(shù)據(jù)后面顯現(xiàn) 方) CR ( 貸 數(shù)據(jù)為

19、負(fù)時(shí),在數(shù)據(jù)后面顯現(xiàn) CR,數(shù)據(jù)為正時(shí),數(shù)據(jù)后空兩格 方) 四工作單元節(jié)( WORKING-STORAGE SECTION ) 1工作單元節(jié)的作用 程序中用的數(shù)據(jù)項(xiàng)分兩部分:一部分是屬于輸入或輸出文件的,另一部分是非輸入或 輸出的數(shù)據(jù); 在工作單元節(jié)中描述的數(shù)據(jù)項(xiàng)也有兩種形式:一種是孤立的數(shù)據(jù)項(xiàng),它們是初等項(xiàng); 一種是組合項(xiàng); COBOL 規(guī)定,孤立的數(shù)據(jù)項(xiàng)的描述體以層號(hào) 77 開頭,組合項(xiàng)描述體以 01 到 49 之間的一個(gè)數(shù)作層號(hào);在次序上常先寫 77 層,再寫 01-49 層; 2賦初值子句( VALUE 子句) 舉例: 77 A PIC 99 V ALUE IS 0. 77 T PIC

20、 X9 V ALUE fogshadow . 說明:只有對(duì)工作單元節(jié)中的數(shù)據(jù)項(xiàng)可以賦初值; 過程部之二 一傳送語句( MOVE 語句)的較高技巧 1各種類型數(shù)據(jù)間的傳送 ( 1)同類型數(shù)據(jù)間的傳送 ( 2)編輯傳送; 留意:傳送的方向必需是由數(shù)值型數(shù)據(jù)傳送給編輯型數(shù)據(jù),而不能由編輯型數(shù)據(jù)傳送 給數(shù)值型數(shù)據(jù); ( 3)不同類型數(shù)據(jù)間的傳送規(guī)章; 說明: Y 為答應(yīng)傳送, N 為不答應(yīng), Z 為在某些情形下是正確的 橫 -接收項(xiàng) 數(shù)值型 整 數(shù)值編輯 字母型 字符型 字 符 編 輯 組合項(xiàng) 豎 -發(fā)送項(xiàng) 整 非 型 Y Y 型 Y 數(shù) 數(shù) Y Y Y Y 數(shù) 值 整數(shù) 型 非 整 Y Y Y NN

21、NY 數(shù) 數(shù)值編輯型 NNNNY Y Y 字母型 字NNNY Y Y Y 符型 編輯Z Z Z Z Y Y Y 字符型 數(shù)NNNNY Y Y 值常量 非Y Y Y NNNY 數(shù)值常量 N N N Y Y Y Y ZERO Y Y Y NY Y Y SPACE NNNY Y Y Y 組合項(xiàng) Z Z Z Z Y Y Y 第 8 頁,共 19 頁2組合項(xiàng)的傳送 ( 1)發(fā)送項(xiàng)和接收項(xiàng)都是組合項(xiàng),而且其結(jié)構(gòu)和描述均相同,就可看作將各初等項(xiàng)一一對(duì)應(yīng)傳送; ( 2)如發(fā)送項(xiàng)與接收項(xiàng)長度相同,但數(shù)據(jù)結(jié)構(gòu)形式不同,就將發(fā)送項(xiàng)的內(nèi)容原樣不變地自左而右次序地傳送到接收 項(xiàng); 3對(duì)應(yīng)傳送(帶 CORRESPONDI

22、NG 子句的 MOVE 語句) ( 1)數(shù)據(jù)名的受限與受限名的傳送 數(shù)據(jù)名和限定符之間用 OF 或 IN 來連接; 舉例: MOV A1 OF A OF SUM TO T1. ( 2)用 CORRESPONDING 子句的傳送對(duì)應(yīng)傳送(同名傳送) 作用:把一個(gè)組合項(xiàng)中如干項(xiàng)傳送給另一組合項(xiàng)中同名的項(xiàng); 格式: MOVE CORRESPONDING/CORR 二算術(shù)運(yùn)算語句的較高技巧 1四舍五入處理( ROUNDED 子句) 標(biāo)識(shí)符 1 TO 標(biāo)識(shí)符 2 作用:依據(jù)數(shù)據(jù)項(xiàng)的描述要求對(duì)余外位截?cái)?然后對(duì)被截?cái)嗟暮笠晃粩?shù)進(jìn)行四舍五入處理; 舉例: ADD A , B TO C ROUNDED 有無

23、ROUNDED C 內(nèi)容 A+B+C 值 C 描述 999 有 187 999V9 有 999V99 有 999V999 有 假如運(yùn)算結(jié)果有多個(gè),就應(yīng)當(dāng)分別說明哪一個(gè)接收項(xiàng)要進(jìn)行舍入處理, 數(shù)據(jù)名后面,如 ADD A,B,C TO D,E,F ROUNDED,G ROUNDED,H 2長度溢出處理 ROUNDED 應(yīng)寫在有關(guān)的接收項(xiàng)(結(jié)果數(shù)據(jù)項(xiàng))的 當(dāng)運(yùn)算結(jié)果的整數(shù)部分的長度假如比結(jié)果數(shù)據(jù)項(xiàng)描述所規(guī)定的整數(shù)部分長,就發(fā)生長度溢出,結(jié)果的高位部分被截 斷; ON SIZE ERROR 子句供應(yīng)“溢出”處理;即當(dāng)發(fā)生溢出錯(cuò)誤的時(shí)候,按程序設(shè)計(jì)者事先指定的操作處理; 舉例: MULTIPL Y A

24、BY B GIVING C ON SIZE ERROR DISPLAY SIZE ERROR STOP RUN. 3對(duì)應(yīng)項(xiàng)間的運(yùn)算(帶 CORRESPONDING 子句的算術(shù)運(yùn)算語句) 格式: ADD CORRESPONDING/CORR 標(biāo)識(shí)符 1 TO 標(biāo)識(shí)符 2 ROUNDED ;ON SIZE ERROR 強(qiáng)制語句 SUBTRACT CORRESPONDING/CORR 標(biāo)識(shí)符 1 TO 標(biāo)識(shí)符 2 ROUNDED ;ON SIZE ERROR 強(qiáng)制語句 4除法語句中的余數(shù)子句( REMAINDER 子句) 舉例: DIVIDE 1.5 INTO 7 GIVING C REMAINDE

25、R D. 三 IF 語句的高級(jí)技巧 1 IF 語句的嵌套 舉例:(留意 IF 與 ELSE 的一一配對(duì)) IF A=B 第 9 頁,共 19 頁MOVE B TO T IF A=C MOVE C TO RIF X0 等價(jià) ( 2) IF X IS NEGATIVE 與 IF X0 等價(jià) ( 3) IF X IS ZERO 與 IF X=0 等價(jià) 4類型條件 格式:標(biāo)識(shí)符 IS NOT NUMERIC/ALPHABETIC 其中, NUMERIC 表示數(shù)值類型, ALPHABETIC 表示字母類型; 5條件名條件 作用:用來代替一系列紛雜的 IF-ELSE 語句; 常量 2 格式: 88 條件名

26、 VALUE IS/ARE 常量 1THROUGH/THRU 常量 3THROUGH/THRU 常量 4 舉例:第一在數(shù)據(jù)部說明 77 X 條件變量 PIC 96. 88 X1 VALUE 0 THRU 99. 88 X2 VALUE 100 THRU 999. 88 X3 VALUE 1000 THRU 4999. 88 X4 VALUE 5000 THRU 100000. 第 10 頁,共 19 頁經(jīng)過上面的說明后,可以在過程部中直接使用條件名條件; IF X1 MOVE 0.03 TO R. IF X2 MOVE 0.04 TO R. IF X3 MOVE 0.05 TO R. IF X

27、4 MOVE 0.06 TO R. 在 0=X100 時(shí), R=0.03 在 100=X1000 時(shí), R=0.04 在 1000=X5000 時(shí), R=0.05 在 5000=X5 其作用是執(zhí)行 T1 到 T2 語句序列, X 是“循環(huán)變量” ,是整型數(shù)據(jù)項(xiàng); A 為初值, B 為步長,它們都是整數(shù)或 整數(shù)數(shù)據(jù)項(xiàng); 第 11 頁,共 19 頁六執(zhí)行語句的多重循環(huán)形式 格式: PERFORM 過程名 1THROUGH/THRU 過程名 2條件 1 VARYING 參數(shù) 1FROM 初值 1BY 步長 1UNTILAFTER 參數(shù) 2FROM 初值 2BY 步長 2UNTIL 條件 2 AFTE

28、R 參數(shù) 3 FROM 初值 3BY 步長 3UNTIL 條件 3 說明: 1;最終面的循環(huán)體先執(zhí)行; 2 COBOL 答應(yīng)用到三重循環(huán); 七出口語句( EXIT 語句) 作用:供應(yīng)一個(gè)段名,被 PERFORM 調(diào)用的語句序列由此公共集合點(diǎn),返回到 PERFORM 的下一個(gè)語句去; 舉例: PERFORM A THRU B A. IF XY GO TO B MOVE X TO T. B. EXIT. 八修改語句( ALTER 語句) 格式: ALTER 過程名 1 TO PROCEED TO 過程名 2 ,過程名 3 TO PROCEED TO 過程名 4 作用:用來轉(zhuǎn)變 GO TO 的轉(zhuǎn)向點(diǎn)

29、;該語句使以過程名 1,過程名 3, 命名的各段中的 GO TO 語句的轉(zhuǎn)向點(diǎn)分 別被修改為過程名 2,過程名 4;留意,過程名 1,過程名 3 各段只能由一條 GO TO 語句單獨(dú)組成; 數(shù)據(jù)部之二 -數(shù)據(jù)部的較高技巧 一數(shù)據(jù)在運(yùn)算機(jī)內(nèi)的表示形式 1字符數(shù)據(jù)在內(nèi)存中的儲(chǔ)備形式 ( 1) ACSII ( 2) EBCDIC 2數(shù)值型數(shù)據(jù)在內(nèi)存中的儲(chǔ)備形式 ( 1)外部十進(jìn)制(或稱擴(kuò)張十進(jìn)制)形式 ( 2)外部浮點(diǎn)數(shù)形式 ( 3)內(nèi)部十進(jìn)制(又稱縮合十進(jìn)制)形式 ( 4)定點(diǎn)二進(jìn)制形式 ( 5)內(nèi)部浮點(diǎn)形式 二用法子句( USAGE 子句) 作用:可以使程序設(shè)計(jì)者自由選擇數(shù)據(jù)在內(nèi)存中的存放形式;

30、 格式: USAGE IS DISPLAY/COMPUTATIONAL/COMP 說明: 1;DISPLAY 表示是“顯示型的用法” ,表示此數(shù)據(jù)項(xiàng)適于顯示,打??; 2COMPUTATIONAL=COMP ,表示是“運(yùn)算型的用法” ,適于運(yùn)算; 3如省略 USAGE 子句,就隱含表示為用 DISPLAY 形式; 第 12 頁,共 19 頁三符號(hào)子句( SIGN 子句) 作用:用來指定數(shù)值型數(shù)據(jù)描述體中運(yùn)算符號(hào)的狀態(tài)和位置; 格式: SIGN IS LEADING/TRAILING SEPARATE CHARACTER 說明: 1;沒有 SIGN 子句時(shí),數(shù)值的符號(hào)是存放在數(shù)據(jù)項(xiàng)最終一個(gè)字節(jié)中的

31、; 2用 SIGN 子句可以指定符號(hào)在數(shù)值的前部仍是后部( LEADING/TRAILING ); 3指定符號(hào)單獨(dú)占一個(gè)字節(jié),用“ SEPARATE”可選項(xiàng),內(nèi)存中增加一個(gè)字節(jié); 4SIGN 子句只能用于 PIC 字符串中含有“ S”的數(shù)值型數(shù)據(jù)描述體中; 5使用 SIGN 子句的數(shù)據(jù)項(xiàng)的用法應(yīng)當(dāng)是 USAGE DISPLAY (顯式的或隱含的) ; 舉例: 02 A PIC S93 USAGE DISPLAY SIGN IS LEADING. 四重定義子句( REDEFINES 子句) 作用:不同的數(shù)據(jù)項(xiàng)可以共用內(nèi)存中的同一段空間; 例如已給數(shù)據(jù)項(xiàng) A 支配了一段內(nèi)存空間, 在經(jīng)過某一段的過

32、程后, A 已經(jīng)不再使用了,但它仍占著內(nèi)存這部分空間,為了節(jié)約內(nèi)存,可以將另一數(shù)據(jù)項(xiàng) B 也支配在 A 所占的這段內(nèi)存空間; 格式:層號(hào) 數(shù)據(jù)名 1REDEFINES 數(shù)據(jù)名 2 舉例: 02 A PIC X5. 02 B REDEFINES A PIC 95. 說明: 1;數(shù)據(jù)名 2 與數(shù)據(jù)名 1 的層號(hào)必需相同; 2用 REDEFINES 子句的描述體應(yīng)當(dāng)緊跟在被重新定義的數(shù)據(jù)項(xiàng)的描述之后,中間不能插入其它項(xiàng)的描述說 明; 3可以多次重定義,但必需緊跟顯現(xiàn),而且要求使用最初定義的數(shù)據(jù)名; 4REDEFINES 子句不能用于文件節(jié)的 01 層中; 5用 REDEFINES 子句可以轉(zhuǎn)變數(shù)據(jù)結(jié)

33、構(gòu),但數(shù)據(jù)名 6REDEFINES 子句應(yīng)在其它子句之前; 1, 2 的長度應(yīng)當(dāng)相等; 7重定義子句所在的數(shù)據(jù)描述體中不能使用初值子句賦初值; . 五重命名子句( RENAMES 子句) 作用:在不轉(zhuǎn)變數(shù)據(jù)項(xiàng)的長度的前提下,重新定義數(shù)據(jù)區(qū)的名稱和數(shù)據(jù)結(jié)構(gòu)的形式(包括初等項(xiàng)的類型和長度) ;可 以把原先已經(jīng)定義的某些數(shù)據(jù)項(xiàng)重新組合成一個(gè)新項(xiàng),并以一個(gè)新名字來代表它;但用重命名子句不能轉(zhuǎn)變原先各初等項(xiàng) 的類型,長度等屬性; 格式: 66 數(shù)據(jù)名 1 RENAMES 數(shù)據(jù)名 2 THRU 數(shù)據(jù)名 3 說明:只能用于工作單元節(jié)中,不能用于文件節(jié)中 六遇零置空子句( BLANK 子句) 作用:當(dāng)數(shù)據(jù)項(xiàng)的

34、值為零時(shí),使它的內(nèi)容轉(zhuǎn)變?yōu)榭瞻祝崭瘢?舉例: 03 A PIC 9999 BLANK WHEN ZERO. 七對(duì)齊子句( JUSTIFIED 子句) ;這個(gè)子句只能用于數(shù)值型或編輯型的初等項(xiàng); 作用:字符或字母型數(shù)據(jù)傳送的時(shí)候是按標(biāo)準(zhǔn)的對(duì)齊方式,即“左對(duì)齊” ,如想改為“右對(duì)齊” ,可以用 JUSTIFIED 子 句; 格式: JUSTIFIED/JUST RIGHT 舉例: 77 B PIC X ( 5) JUSTIFIED RIGHT 八同步安置子句( SYNCHRONIZED 子句) 作用:一個(gè)機(jī)器字一般定為 4 個(gè)字節(jié),從內(nèi)存中取數(shù)據(jù)的時(shí)候是以機(jī)器字為單位的,而數(shù)據(jù)存放就是按字節(jié)連續(xù)

35、存放 第 13 頁,共 19 頁的,這里面就存在一個(gè)邊界對(duì)齊的沖突,會(huì)影響目標(biāo)程序運(yùn)行時(shí)間;用同步安置子句可以指定數(shù)據(jù)項(xiàng)在內(nèi)存中如何按自然 邊界來安置; 格式: SYNCHRONIZED/SYNC LEFT/RIGHT 說明: 1;用 SYNC LEFT 時(shí),左對(duì)齊,右邊補(bǔ)零或空格; 2用 SYNC RIGHT 時(shí),右對(duì)齊,左邊補(bǔ)零或空格; 舉例: 01 A. 02 A1 PIC 93 SYNC LEFT VALUE 82. 03 A2 PIC X3 SYNC RIGHT VALUE ABC 九復(fù)寫語句( COPY 語句) 作用:把“源程序庫”中的某些記錄描述和數(shù)據(jù)描述插入到自己的源程序中;

36、格式: COPY 庫名 REPLACING 標(biāo)識(shí)符 1/常量 1/ 字 1BY 標(biāo)識(shí)符 2/常量 2/字 2 子程序 一概述 舉例:編一個(gè)打印一行“ *”符號(hào)的子程序 1 主程序(只寫與調(diào)用子程序有關(guān)的部分) IDENTIFICATION DIVISION. (標(biāo)識(shí)部) PROGRAM-ID. A. (程序名為 A) ENVIRONMENT DIVISION. (環(huán)境部) DATA DIVISION. (數(shù)據(jù)部) PROCEDURE DIVISION. (過程部) CALL B. (調(diào)用子程序 B) 2 子程序 IDENTIFICATION DIVISION. PROGRAM-ID. B. E

37、NVIRONMENT DIVISION. DATA DIVISION. WORKING-STORAGE SECTION. 77 X PIC X80. PROCEDURE DIVISION. MOVE ALL * TO X. DISPLAY X. EXIT PROGRAM. 可以看到程序 A 和程序 B 分別是兩個(gè)程序,各有自己的程序名,都有四大部分; 二調(diào)用程序與被調(diào)用程序間的數(shù)據(jù)聯(lián)系 格式:調(diào)用語句 CALL 子程序名 USING 數(shù)據(jù)名 1 ,數(shù)據(jù)名 2 第 14 頁,共 19 頁被調(diào)用程序中過程部部頭的一般格式為 PROCEDURE DIVISION USING 數(shù)據(jù)名 1,數(shù)據(jù)名 2

38、說明: 1;兩部分相對(duì)應(yīng)的參數(shù)個(gè)數(shù),長度必需相等; 2參數(shù)是在內(nèi)存中建立關(guān)聯(lián),類似于 三子程序的結(jié)構(gòu) 1標(biāo)識(shí)部 說明子程序的名字,以供調(diào)用; 2環(huán)境部 3數(shù)據(jù)部 ( 1)文件節(jié)( FILE SECTION ) C+ 中的傳遞引用參數(shù); ( 2)工作單元節(jié)( WORKING-STORAGE SECTION ) USING 子句中有數(shù)據(jù)名,就此數(shù)據(jù)名應(yīng)在此節(jié)中加 ( 3)聯(lián)接節(jié)( LINKAGE SECTION ):假如子程序過程部部頭的 以說明; 4過程部 過程部的部頭: PROCEDURE DIVISION USING 數(shù)據(jù)名 1,數(shù)據(jù)名 2, 過程部中應(yīng)當(dāng)包括一個(gè)程序出口語句: EXIT P

39、ROGRAM. 表的建立與查找 一表的概念 COBOL 語言中的表( TABLE )類似于其他高級(jí)語言中的數(shù)組( 表 ARRAY ); 中,序號(hào)稱為下標(biāo),相對(duì)地址稱為位標(biāo),下標(biāo)和位標(biāo)稱為“顯現(xiàn)號(hào)” ; 二表的建立( OCCURS 子句) 格式: OCCURS 整數(shù) TIMES 舉例: 01 PRODUCT-RECORD. 03 RODUCT OCCURS 20 TIMES. 04 QUANTITY-OF-PRODUCTION PIC 96. 04 QANTITY-OF-SALES PIC 96. 04 QANTITY-OF-HAND PIC 96. 說明: 1;OCCURS 子句不能顯現(xiàn)在 7

40、7 層,由于 77 層是獨(dú)立的數(shù)據(jù)項(xiàng); 2OCCURS 子句不能用于 01 層; 3只有當(dāng) OCCURS 所說明的數(shù)據(jù)是初等項(xiàng)時(shí),才能在該數(shù)據(jù)項(xiàng)的描述中使用 PIC 子句; 4不能用 VALUE 子句對(duì)表賦初值,不能同時(shí)用 OCCURS 子句和 VALUE 子句來描述同一數(shù)據(jù)項(xiàng); 三可變長表 格式: OCCURS 整數(shù) 1 TO 整數(shù) 2 TIMES DEPENDING ON 數(shù)據(jù)名 1 說明:依據(jù)數(shù)據(jù)名 1 的值來確定數(shù)據(jù)項(xiàng)重復(fù)的次數(shù); 四表元素的引用 格式:表名(下標(biāo)) 說明: 1;假如 B 是一個(gè)表,不直接引用表名 B 而不加下標(biāo); 第 15 頁,共 19 頁元素的; 2假如表元素是組合

41、項(xiàng),就引用它下屬的項(xiàng)(可以是初等項(xiàng)或組合項(xiàng)) ,也必需用下標(biāo)指明它是屬于哪一個(gè)表 3假如表元素是組合項(xiàng),可以用它對(duì)下屬的數(shù)據(jù)項(xiàng)進(jìn)行限定; 4下標(biāo)只能是整常數(shù)或具有整型值的數(shù)據(jù)名; 5下標(biāo)不能是帶下標(biāo)的數(shù)據(jù)名,即不能是表元素; 五給表元素賦初值 1對(duì)包括全部表元素的整個(gè)表賦給一個(gè)初值,這時(shí)可以對(duì)表的描述體上面一層的數(shù)據(jù)項(xiàng)賦一個(gè)初值即可; 例 1: 01 TABLE VALUE IS ZERO. 03 OCCURS 20 PIC 93. 例 2: 01 T VALUE ABCDEFHIJ . 02 Q OCCURS 3 PIC X3. 這樣, Q( 1),Q( 2), Q(3)的內(nèi)容分別是 ABC

42、 ,DEF , HIJ ; 2聯(lián)合使用 OCCURS 子句和 REDEFINES 子句來給各個(gè)表元素賦值; 步驟:( 1)先在工作單元節(jié)中定義一個(gè)組合項(xiàng),它占的內(nèi)存的大小和需賦值的表一樣,在該組合項(xiàng)中定義如干個(gè)數(shù) 據(jù)項(xiàng),數(shù)據(jù)項(xiàng)的描述和表的元素相同; ( 2)然后對(duì)這些數(shù)據(jù)項(xiàng)分別用 VALUE 子句賦以初值,由于在這些數(shù)據(jù)項(xiàng)的描述中沒有顯現(xiàn) OCCURS 子句, 因此用 VALUE 賦初值是合法的 ( VALUE 子句和 OCCURS 子句不能同時(shí)用來描述一個(gè)數(shù)據(jù)項(xiàng)) ;這些值就是要賦給表元素 的初值; ( 3)把這個(gè)組合項(xiàng)重定義為一個(gè)表; 六用位標(biāo)法引用表元素 1位標(biāo)的概念:位標(biāo)的值表示表元素

43、在該表中的相對(duì)位置(以字節(jié)數(shù)表示) ; 2位標(biāo)名的指定方法:在數(shù)據(jù)部中定義一個(gè)表時(shí)所用的 OCCURS 子句中要加上“ INDEXED BY 位標(biāo)名”短語來指定; 說明:( 1)由于位標(biāo)是特地用于引用表元素的特殊數(shù)據(jù)項(xiàng),它不能用來進(jìn)行算術(shù)運(yùn)算; ( 2)一維表或多維表的每一維按需要可以指定如干個(gè)位標(biāo)名,引用時(shí)這些位標(biāo)名只能在該維內(nèi)使用; ( 3)有時(shí)需要把位標(biāo)的值轉(zhuǎn)存到另一個(gè)數(shù)據(jù)項(xiàng)中,但由于位標(biāo)是特殊類型的數(shù)據(jù)項(xiàng),因此,需要另外定義一 種特殊的數(shù)據(jù)項(xiàng)叫位標(biāo)數(shù)據(jù)項(xiàng),用來特地儲(chǔ)備位標(biāo)的值;位標(biāo)數(shù)據(jù)項(xiàng)在數(shù)據(jù)部中定義;描述位標(biāo)數(shù)據(jù)項(xiàng)用 USAGE 子句; 例如: 77 K USAGE IS INDEX. 七 SET (設(shè)置)語句 1作用:將一表元素的相對(duì)地址放到指定的位標(biāo)去; 如: SET I TO 10. 表示將位標(biāo) I 置位到第 10 個(gè)元素的第一個(gè)字

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論