COBOL語(yǔ)言基礎(chǔ)教程_第1頁(yè)
COBOL語(yǔ)言基礎(chǔ)教程_第2頁(yè)
COBOL語(yǔ)言基礎(chǔ)教程_第3頁(yè)
COBOL語(yǔ)言基礎(chǔ)教程_第4頁(yè)
COBOL語(yǔ)言基礎(chǔ)教程_第5頁(yè)
已閱讀5頁(yè),還剩26頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、cobol語(yǔ)言基礎(chǔ)培訓(xùn)教程2009年04月23日 |5:23 下午分類(lèi):大型機(jī)| Mainframe | 標(biāo)簽:cobol 數(shù)據(jù)類(lèi)型、COBO困1序舉例、cobol 入門(mén)、cobol 教程、cobol 語(yǔ)言、大型機(jī)培訓(xùn) |CHAPTER 1 COBOL 概述COBOL就是mon Business Oriented Language得縮寫(xiě)。它不僅就是商業(yè) 數(shù)據(jù)處理得理想語(yǔ)言,而且廣泛用于數(shù)據(jù)管理領(lǐng)域,因此COBOL語(yǔ)言也被稱(chēng)為"用于管理得語(yǔ)言”。一。COBOL語(yǔ)言得特點(diǎn)最適于數(shù)據(jù)處理領(lǐng)域:算數(shù)計(jì)算量少而邏輯處理量多,輸入輸出量大,數(shù)據(jù)間存在 著一定得邏輯關(guān)系,大量得分類(lèi)排序;COBO此

2、較接近英語(yǔ),容易懂;通用性強(qiáng),易移植,COBO結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。二。COBO得組成部分:1。標(biāo)識(shí)部(IDENTIFICATION DIVISION):用于標(biāo)識(shí)程序名。2。環(huán)境部(ENVIRONMENTDIVISION):用于說(shuō)明程序運(yùn)行得環(huán)境。3。數(shù)據(jù)部(DATADIVISION):用于說(shuō)明程序中涉及得所有數(shù)據(jù)。4。過(guò)程部(PROCEDUREDIVISION):就是程序得核心部分,它決定計(jì)算機(jī)應(yīng)進(jìn)行什 么操作。三。最簡(jiǎn)單得COBOL程序舉例:COL 1 6781272 7380IDENTIFICATION DIVISION。 PROGRAM-ID PSAMPLE1 ENVIRONMENDIV

3、ISION。 DATA DIVISIONo PROCEURBDIVISIONo DISPLAY ' THIS IS A COBOL PROGRAM STOP RUN 四。COBOL源程序得書(shū)寫(xiě)格式: 第1至6列為“標(biāo)號(hào)區(qū)”。第7列為”續(xù)行標(biāo)志區(qū)”第8至此11歹I,稱(chēng)為“ A區(qū)”。程序中有些內(nèi)容如部頭,節(jié)頭,段頭,層號(hào)01,層 號(hào) 77及文件 描述符FD等應(yīng)從A區(qū)開(kāi)始寫(xiě)。 第12至此72歹八稱(chēng)為“ B區(qū)”。寫(xiě)程序中得正文部分。如過(guò)程部中得句子只能 從B區(qū)開(kāi)始寫(xiě)。 第73至80歹I,稱(chēng)為“注釋區(qū)”。五。COBO字符集包括:數(shù)字 0 9 , 字母AZ ,a z , 專(zhuān)用字符 :+-* / =

4、 ,、;( ) < > $ 及空格。屬于系統(tǒng)字符集而不屬于COBO字符集得字符只能出現(xiàn) 里。在 COBOL 程序中得字符串六。常量COBOL 常量分為數(shù)值常量 (如 100,-29), 非數(shù)值常量(如 ABC)與表意常量(如 ZERO,SPACE,HIGH-VALUE,LOW-VALU,QEUOTE ,ALL 常量 ) 。七。 COBOL 所處理得數(shù)據(jù)得特點(diǎn)層次得概念: 數(shù)據(jù)間存在得從屬關(guān)系。文件得概念: 多個(gè)記錄可以組成一個(gè)文件。記錄得概念: 具有一定層次關(guān)系得一組數(shù)據(jù)項(xiàng)得最大集合 ,它就是內(nèi)存中具有獨(dú)立邏輯含義得最大存取項(xiàng) , 具有最高層次。CHAPTER 2 過(guò)程部初步一。輸

5、入輸出語(yǔ)句。1 o ACCEPTS句:直接從終端鍵盤(pán)或系統(tǒng)指定得輸入設(shè)備上輸入數(shù)據(jù)。ACCEPT標(biāo)識(shí)符 FROM 助憶名 注 :A 。標(biāo)識(shí)符(identifier) 指得就是能唯一地標(biāo)識(shí)一個(gè)數(shù)據(jù)項(xiàng)得數(shù)據(jù)名 , 不能唯一地標(biāo)識(shí)一個(gè)數(shù)據(jù)項(xiàng)得數(shù)據(jù)名不就是標(biāo)識(shí)符。標(biāo)識(shí)符可以就是組合項(xiàng)。Bo在ACCEP語(yǔ)句中如不寫(xiě)FRO酈分,如ACCEPT A,則表示從系統(tǒng)隱含指定得設(shè)備上讀入一個(gè)數(shù)據(jù)給A。如果不想從指定得設(shè)備上輸入 , 則要用 FROM 選項(xiàng),這時(shí)”助憶名”需要在環(huán)境部中事先說(shuō)明與那種外部設(shè)備相聯(lián)系。如 :ENVIRONMENTDIVISION。 (環(huán)境部 )CONFIGRATION SECTION

6、(配置節(jié))SPECIAL-NAMES(專(zhuān)用名段)CONSOLE IS ABC如在過(guò)程部中有ACCEPT TFROM ABC。則表示要從控制臺(tái)接收數(shù)據(jù)2。DISPLAY語(yǔ)句:從計(jì)算機(jī)內(nèi)存中輸出到某一指定得輸出設(shè)備上。DISPLAY 標(biāo)識(shí)符 1,常量 1 標(biāo)識(shí)符 2, 常量 2 。 UPON 助憶名 ( 標(biāo)識(shí)符與助憶名得說(shuō)明同上)ACCEP語(yǔ)句與DISPLAYS句不必定義文件適用于少量得數(shù)據(jù)輸入輸出。3。READS句:COBO印言中數(shù)據(jù)得輸入輸出主要就是通過(guò)對(duì)外部文件得讀寫(xiě)進(jìn)行得。 READ 語(yǔ)句就就是從外部文件上讀入數(shù)據(jù)輸 出到程序中得數(shù)據(jù)項(xiàng)中。 在程序中用到得所有文件都需要 在環(huán)境部中 指定程

7、序中用到得文件名與實(shí)際外部文件得聯(lián)系。 數(shù)據(jù)部也要對(duì)文件加以描述。 指定數(shù)據(jù)結(jié)構(gòu)各數(shù)據(jù)項(xiàng)所占得內(nèi)存單元長(zhǎng)度以及數(shù)據(jù)形式。COBOL 得存取就是以文件為對(duì)象以記錄為單位得READg句得最簡(jiǎn)單得格式為:READ文件名ENVIRONMENTDIVISION。INPUT-OUTPUT SECTION。SELECTIN-FILLEASSIGN TO外部文件名。為了存儲(chǔ)讀入得記錄 , 必須在內(nèi)存開(kāi)辟一個(gè)與文件記錄長(zhǎng)度相等得存儲(chǔ)區(qū) , 即 輸入文件紀(jì)錄區(qū)。每一個(gè)輸入文件都有相應(yīng)得輸入文件紀(jì)錄區(qū) , 與之一一對(duì)應(yīng)。亦即在數(shù)據(jù)部中描述文件得數(shù)據(jù)結(jié)構(gòu)。3。READS旬:假設(shè)IN-FILE 文件每一記錄中包含得內(nèi)容

8、為 : 產(chǎn)品代碼 , 產(chǎn)品數(shù)量 , 產(chǎn)品單價(jià) , 生產(chǎn)日期。設(shè)某一記錄得具體數(shù)據(jù)如下:00100100000100019990322prodcodequantitypriceyearmon day如果我們希望讀入該記錄并對(duì)各數(shù)據(jù)項(xiàng)進(jìn)行處理, 則需要在 輸入紀(jì)錄區(qū)中劃分出各數(shù)據(jù)項(xiàng) , 以便存放相應(yīng)得數(shù)據(jù)。定義輸入紀(jì)錄區(qū)以及劃分記錄區(qū)中各數(shù)據(jù)項(xiàng)得工作就是由數(shù)據(jù)部來(lái)完成得。 下面我們簡(jiǎn)單介紹數(shù)據(jù)部定義記錄區(qū)方法針對(duì)上面輸入數(shù)據(jù)得特點(diǎn) , 我們可以在數(shù)據(jù)部中對(duì)記錄區(qū)作如下描述:DATA DIVISION。FDIN-FILE LABLE RECORD ISSTANDAR D01IN-RECORD(定義記

9、錄區(qū)名為 IN-RECORD)02PROD-CODEPIC 9(4) 。02PROD-QUANTITYPIC 9(5) 。02PROD-PRICE PIC 9(6) 。02MANU-DATE(生產(chǎn)日期為一組合項(xiàng))05 DATE-CCYY PIC 9(4) 。05DATE-MM PIC9(2) 。05DATE-DD PIC9(2) 。其中 ,FD 即 , 表示從該行起就是文件描述體。LABLE RECORDIS STANDARD: 所有得磁盤(pán)文件與磁帶文件都必須寫(xiě)明此句。01層定義輸入紀(jì)錄區(qū)得名字為IN-RECORD, 01層屬于FD描述體,因此也就指定了 IN-RECORD 與 IN-FILE

10、 得關(guān)系。 亦即從 IN-FILE 讀入得數(shù)據(jù)存放在 IN-RECOR記錄區(qū)中。這樣,在執(zhí)行一次REA曲句后,文件中一個(gè)記錄得數(shù)據(jù)便輸入到內(nèi)存記錄區(qū),按排列順序分別送到記錄區(qū)中各數(shù)據(jù)項(xiàng)中。 注意文件得各記錄中得數(shù)據(jù)就是不分?jǐn)?shù)據(jù)項(xiàng)得 , 只就是按一定得順序把數(shù)據(jù)存放在各字節(jié)中。所以數(shù)據(jù)部對(duì)記錄區(qū)中各數(shù)據(jù)項(xiàng)得描述應(yīng)該與文件得記錄中各數(shù)據(jù)排列次序與長(zhǎng)度相一致。READ 語(yǔ)句得一般形式 :READ文件名 RECORDINTO 標(biāo)識(shí)符 AT END 執(zhí)行語(yǔ)句 , 例如 :READ IN-FILE INTO TEMP-RECORD AT END STOP RUN該語(yǔ)句除了將讀到得數(shù)據(jù)傳送到IN-RECOR

11、E外,還傳送到TEMP-RECORD中。在遇到文件尾時(shí), 程序結(jié)束運(yùn)行。4。WRITES句:將內(nèi)存中得數(shù)據(jù)輸出到外部設(shè)備,主要就是由WRITE語(yǔ)句來(lái)完成 得。WRITE®句得最簡(jiǎn)單得格式為:WRITE記錄名(注意WRITE®句得操作對(duì)象就是記錄,所以就是記錄名而不就是文件名 )與輸入文件相似輸出文件也要在環(huán)境部中指定所對(duì)應(yīng)得實(shí)際存在得外部文件:ENVIRONMENTDIVISION。INPUT-OUTPUT SECTION。SELECTOUT-FILLE ASSIGN TO打印機(jī)名。也要在數(shù)據(jù)部中定義輸出記錄區(qū) :DATA DIVISION。FDOUT-FILE LABLE

12、 RECORD IS OMITTED01OUT-RECORD02PROD-CODEPIC 9(4) 。02PROD-QUANTITYPIC 9(5) 。02PROD-PRICE PIC9(6) 。02MANU-DATE05DATE-CCYY PIC9(4) 。05DATE-MM PIC9(2) 。05DATE-DD PIC9(2) 。LABLE RECORDIS OMITTED : 凡輸出設(shè)備就是打印機(jī)得都必須寫(xiě)明此句。如輸出設(shè)備就是磁盤(pán),貝U仍用LABLE RECORDIS STANDARD01層定義輸出紀(jì)錄區(qū)得名字為OUT-RECORD,于 01層屬于FD描述體,因此也就指定了OUT-RE

13、CORD OUT-FILE 得關(guān)系。在用 WRITE 語(yǔ)句輸出一個(gè)記錄之前, 應(yīng)向輸出記錄區(qū)傳送數(shù)據(jù)。如已將數(shù)據(jù)傳送到上述各數(shù)據(jù)項(xiàng)中,則在執(zhí)行 W RITEOUT-RECOR曲句后,則記錄區(qū)中得數(shù)據(jù)通過(guò)打印機(jī)打印出來(lái)。WRITE 語(yǔ)句得一般形式 :標(biāo)識(shí)符 2 LINEBEFORE整數(shù) LINESWRITE記錄名 FROM 標(biāo)識(shí)符 1 AFTERADVANCING助憶名PAGE5。OPENS旬:程序中如果需要讀寫(xiě)文件,則該文件必須先用OPEN§包打開(kāi),系統(tǒng) 在執(zhí)行READ,WRITE前先檢查該文件就是否已在規(guī)定得外部設(shè)備上準(zhǔn)備就緒。OPENS旬得一月格式為:INPUT 文件名 1 ,

14、文件名 2 。OPEN OUTPUT 文件名 3 ,文件名 4。6。CLOSE®句:當(dāng)對(duì)一個(gè)文件得讀或?qū)懙貌僮饕淹瓿?就應(yīng)關(guān)閉該文件。CLOS第句得一月格式為:CLOSE 文件名 1, 文件名 2 。COBO通過(guò)2位長(zhǎng)度得文件狀態(tài)字()來(lái)表示文件得操作結(jié)果就是否成功,常見(jiàn)得文件狀態(tài)值及意義:算數(shù)運(yùn)算語(yǔ)句1。ADD®旬:格式 1:ADD標(biāo)識(shí)符 1 , 標(biāo)識(shí)符 2。TO 標(biāo)識(shí)符 m , 標(biāo)識(shí)符n 。常量 1 , 常量 2格式 2:ADD標(biāo)識(shí)符 1, 標(biāo)識(shí)符 2, 標(biāo)識(shí)符 3常量 1, 常量 2, 常量 3GIVING 標(biāo)識(shí)符 m , 標(biāo)識(shí)符 n 。標(biāo)識(shí)符 1, 標(biāo)識(shí)符 2 。

15、。 。 FROM 標(biāo)識(shí)符 m ,2。SUBTRACT句: 格式 1:SUBTRACT標(biāo)識(shí)符 n 。常量 1 , 常量 2格式 2:SUBTRACT標(biāo)識(shí)符 1, 標(biāo)識(shí)符2 。FROM標(biāo)識(shí)符常量 1, 常量2常量GIVING 標(biāo)識(shí)符 n , 標(biāo)識(shí)符 p 。3。MULTIPLY!旬:格式 1:MULTIPLY標(biāo)識(shí)符 1BY 標(biāo)識(shí)符2 , 標(biāo)識(shí)符 3 。常量 1,格式 2:MULTIPLY標(biāo)識(shí)符 1BY 標(biāo)識(shí)符2 GIVING 標(biāo)識(shí)符 3 , 標(biāo)識(shí)符 4 。常量 1 , 常量 24。DIVIDE語(yǔ)句:格式 1:DIVIDE標(biāo)識(shí)符1INTO 標(biāo)識(shí)符 2 , 標(biāo)識(shí)符 3 。常量 1格式 2:DIVIDE標(biāo)

16、識(shí)符1INTO 標(biāo)識(shí)符 2常量 1 BY 常量 2GIVING 標(biāo)識(shí)符, 標(biāo)識(shí)符 4 。Ba注意 : DIVIDE A INTO BDIVIDE AINTO Cd BDIVIDEA BYB指A/B5。 PUTE 語(yǔ)句 :PUTE標(biāo)識(shí)符 1運(yùn)算得優(yōu)先級(jí)由高到低順序?yàn)?(), 正負(fù)號(hào) ,*,* 或 /,+ 或如:C = 3 ,D = 5 ,E = 2 , PUT A,B = -(C+ D)* 2 /三。傳送語(yǔ)句 (MOVE)就是指GIVING C C (GIVINGB/A就是指 B/AC就是MOVE 語(yǔ)句用來(lái)實(shí)現(xiàn)內(nèi)存中數(shù)據(jù)得傳送, 標(biāo)識(shí)符 2 。= 1 則:E *3= 算術(shù)表達(dá)式F = -3( 而

17、不就是內(nèi)存與外設(shè)之間得傳送)MOV踣句得一般格式為標(biāo)識(shí)符MOVE1TO標(biāo)識(shí)符 2 , 標(biāo)識(shí)符 3 。常量 1MOV踣句得傳送規(guī)則:1, 如果接收項(xiàng)與發(fā)送項(xiàng)在數(shù)據(jù)部中描述得類(lèi)型與長(zhǎng)度相同 , 則按字節(jié)一一對(duì)應(yīng)傳送。2, 如果接收項(xiàng)與發(fā)送項(xiàng)長(zhǎng)度不相同 , 而二者都就是數(shù)值數(shù)據(jù)項(xiàng) , 則按小數(shù)點(diǎn)對(duì)齊處理。3, 對(duì)字母或字符數(shù)據(jù)( 非數(shù)值型數(shù)據(jù)) 得傳送 , 按左對(duì)齊處理。4, 初等項(xiàng)與組合項(xiàng)之間可以相互傳送。關(guān)于各類(lèi)數(shù)據(jù)之間得傳送規(guī)則將在第五章中介紹。四。轉(zhuǎn)移語(yǔ)句(GOTO)當(dāng)需要使程序改變正常執(zhí)行得順序時(shí), 可以使用無(wú)條件轉(zhuǎn)移語(yǔ)句 GO TO 。其一般格式為:格式 1: GOTO過(guò)程名格式 2:G

18、OTO 過(guò)程名 1, 過(guò)程名 2 。過(guò)程名 n DEPENDING ON標(biāo)識(shí)符注意 : 只能轉(zhuǎn)移到段或節(jié)得開(kāi)頭, 不能轉(zhuǎn)移到段或節(jié)得當(dāng)中某一語(yǔ)句。 段名或節(jié)名為過(guò)程名。五。條件語(yǔ)句 (IF)當(dāng)需要根據(jù)給出得某些條件就是否滿(mǎn)足來(lái)決定應(yīng)執(zhí)行哪一部分語(yǔ)句時(shí) , 可以使用條件語(yǔ)句 IF 。其一般格式為 :IF條件語(yǔ)句組1ELSE語(yǔ)句組1NEXT SENTENCEENTENCEEND-IFNEXT S符:ISISISGREATERLESSEQUALNOT GREATERTHANNOTLESSNOTEQUALTO注意 : 句點(diǎn)在IF 語(yǔ)句中得特殊作用。THAN (>)THAN (<)TO(=)

19、(NOT >) (<=)THAN (NOT <) (>=) (NOT =)如:IFADISPLAYADDDISPLAY與 IFDISPLAY AADD>0A。ATOTALA >0ATOTO TOTALTOTALCOBOL1系運(yùn)算DISPLAYTOTAL 就不同。為避免出現(xiàn)問(wèn)題應(yīng)該使用顯式終止符(END-IF,END-PERFORM)代替隱式終止符( 句點(diǎn)”?!?)六。停止語(yǔ)句(STOP)其一般格式為:STOPRUN常量STOP RUN 執(zhí)行后 , 程序停止運(yùn)行, 停止后不能再接著運(yùn)行, 如需要 , 可重新運(yùn)行一次。STOP 常量 , 表示程序暫時(shí)掛起不往下執(zhí)

20、行, 顯示出此常量。七。返回語(yǔ)句 (GOBACK)停止運(yùn)行,將控制權(quán)返回給上一級(jí)。可用本語(yǔ)句代替 STOP®句。子程序必須用 GOBACK不能用STOP因?yàn)镾TOP亭止得就是一個(gè)RUN UNIT(運(yùn)行單元)CHAPTER 3 標(biāo)識(shí)部與環(huán)境部(IDENTIFICATION DIVISION)IDENTIFICATION PROGRAM-、ID AUTHOR INSTALLATION。 DATE-WRITTE N DATE-PILED。 SECURITY。DIVISION、計(jì)算機(jī)設(shè)置場(chǎng)所。源程序編寫(xiě)日期。源程序編譯日期。 程序名。作者名。 保密程度。 (ENVIRONMENT DIVIS

21、ION)DIVISION、ENVIRONMENTSECTION。CONFIGRATIONSOURCE-PUTER源計(jì)算機(jī)名OBJECT-PUTE R目標(biāo)計(jì)算機(jī)名。SPECIAL-NAME S專(zhuān)用名描述項(xiàng)。INPUT-OUTPUTSECTION。 文件控制描述體 。I-O-CONTROL。輸入輸出控制描述體1。CONFIGRATION SECTION專(zhuān)有名段得一般格式:SPECIAL-NAME SDICIMAL-POINTISMA。 CURRENCY SIGN IS 非數(shù)值常量。 IS助憶 專(zhuān)用名名。 2。 INPUT-OUTPUTSECTION。INPUT-OUTPUT SECTION包括兩個(gè)

22、段,即:與 I-O-CONTROL段就是為文件分配外部文件。I-O-CONTRO段得作用就是可以指定目標(biāo)程序運(yùn)行時(shí),幾個(gè) 文件共用一個(gè)內(nèi)存區(qū) , 以省內(nèi)存。在此暫不作介紹。段得主要功能就是給程序中使用得文件命名。 指出存放該文件得外部設(shè)備及其它有關(guān)文件控制得信息。對(duì)文件得描述就是由SELECTF旬實(shí)現(xiàn)得。段得一般格式:INPUT-OUTPUTSECTION。外部文件名(SEQUE(SEQUSELECT文件名 ASSIGN TOORGANIZAIONIS 、NCIAL ,INDEXED, RELATIVE)ACCESSMODEIS 、ENCIAL, RANDOM, DYNAMIC)RECORD

23、KEYIS 、FILE STATUS IS、CHAPTER 4 數(shù)據(jù)部之一一。數(shù)據(jù)部概述。1。 數(shù)據(jù)部得作用就是定義數(shù)據(jù)項(xiàng)屬性, 描述數(shù)據(jù)結(jié)構(gòu)。 所有在過(guò)程部中出現(xiàn)得數(shù)據(jù)項(xiàng)都必須在數(shù)據(jù)部中對(duì)它們得屬性進(jìn)行說(shuō)明。包括數(shù)據(jù)項(xiàng)得類(lèi)型, 數(shù)據(jù)項(xiàng)間得關(guān)系,記錄與文件得關(guān)系 , 文件得屬性。2。 數(shù)據(jù)得層次與層號(hào)COBOW把有從屬關(guān)系得數(shù)據(jù)用層次(level)關(guān)系來(lái)描 述。數(shù)據(jù)得層次結(jié)構(gòu)就是:記錄-組合項(xiàng)-初等項(xiàng)。如,在前面READS旬中 定義得 IN-FILE 文件具有如下結(jié)構(gòu):01IN-RECOR D02PROD-CODEPIC9(4) 。02PROD-QUANTITYPIC 9(5) 。02PROD

24、-PRICE PIC9(6) 。02MANU-DAT E05DATE-CCYY PIC9(4) 。05DATE-MM PIC9(2)。05DATE-DD PIC9(2)。層次規(guī)定如下:(1) 用來(lái)描述數(shù)據(jù)得層次結(jié)構(gòu)得層號(hào)從01 到 49。 記錄得層次最高 , 定為 01 層號(hào)。(2) 從屬項(xiàng)得層號(hào)比其下屬項(xiàng)得層號(hào)高。層號(hào)不必要求連續(xù)。(3) 從屬于同一組合項(xiàng)但不互相從屬得數(shù)據(jù)項(xiàng)具有相同得層號(hào)。3。數(shù)據(jù)部得結(jié)構(gòu):數(shù)據(jù)部中通常用到得有以下幾個(gè)節(jié) :(1): 描述程序中用到得輸入輸出文件及其記錄中各數(shù)據(jù)項(xiàng)得屬性。(2)WORKING-STORAGSECTION的述程序中用到得中間數(shù)據(jù)項(xiàng)。(3)LIN

25、KAGE SECTION®述與調(diào)用程序間發(fā)生數(shù)據(jù)傳遞得數(shù)據(jù)項(xiàng)。(4)REPORT SECTION為了完成報(bào)表編制功能,此節(jié)用來(lái)規(guī)定欲輸出得報(bào)表得體裁 , 設(shè)計(jì)各報(bào)表欄得打印形式與方法等。二。文件節(jié)。1。文件節(jié)得作用 :程序中每一個(gè)輸入或輸出文件都要在文件節(jié)中加以描述。內(nèi)容包括 : 文件名與文件屬性; 文件中包括得記錄名字; 每個(gè)記錄中數(shù)據(jù)得層次關(guān)系;記錄中各數(shù)據(jù)項(xiàng)得數(shù)據(jù)形式與占內(nèi)存得大小。2。文件描述:最簡(jiǎn)單得文件描述體得一般格式為 :FD 文件名LABLERDRECORDSDATARECORDSRECORDARE OMITTEDRECORDAREISIS 數(shù)據(jù)名STANDA3。 記

26、錄描述 : 記錄描述體由 01 層號(hào)開(kāi)始 , 后跟記錄名。 如果記錄本身就就是一個(gè)初等項(xiàng) , 則在記錄名后描述記錄長(zhǎng)度; 否則 , 數(shù)據(jù)名后跟句點(diǎn) , 下面定義記錄得數(shù)據(jù)結(jié)構(gòu)。如 :DATA DIVISION。FD INDATARECORDIS STANDAR DRECORDIS IN- 。01IN-PICDATA DIVISION。X(80) 。FD INDATARECORDIS STANDAR DRECORDIS IN- 。01IN-PIC或( 01IN- 。05DATE PIC 9(8) 。05PROD-CODEPIC 9(4) 。05PROD-PRICE PIC 9(6) 。X(80)

27、 。4。 數(shù)據(jù)項(xiàng)描述: 在每一個(gè)初等項(xiàng)得名字后跟一個(gè)PIC子旬。)用它來(lái)描述數(shù)據(jù)得類(lèi)型與長(zhǎng)度。PIC子句在下面詳細(xì)說(shuō)明5。文件節(jié)得書(shū)寫(xiě)格式:FD從A區(qū)開(kāi)始書(shū)寫(xiě),01層號(hào)也從A區(qū)開(kāi)始,其它層號(hào)可以從A區(qū)也可以從B區(qū)開(kāi)始。為了瞧起來(lái)層次分明,最好從B區(qū)開(kāi)始。三。PIC子句。PIC即PICTURE馬縮寫(xiě)。PIC子句用來(lái)描述每一個(gè)初等項(xiàng)。它說(shuō)明 :(1) 數(shù)據(jù)項(xiàng)就是什么類(lèi)型。 (2) 數(shù)據(jù)項(xiàng)占多大內(nèi)存域。 (3) 就是否需要按打印得要求準(zhǔn)備有關(guān)字符。PIC子句得主要作用在于描述一個(gè)初等項(xiàng)得一般特征與編輯 要求。1。數(shù)值型數(shù)據(jù)得描述 :'9'描述符:表示該位置上可以放入一個(gè)0 9之間得數(shù)

28、字。因此:01APIC 999。或01APIC 9(3) 。表示A可以存放000 999之間得一個(gè)三位數(shù)。有幾個(gè) 9表示有幾位數(shù)。注意 :(1) 在數(shù)值型數(shù)據(jù)項(xiàng)中只能放數(shù)字不能放空格。用9'描述符只能表示整數(shù),如輸入小數(shù)部分,則小數(shù)部分被舍棄。(3) 如送入一個(gè)負(fù)數(shù), 則負(fù)號(hào)被舍棄。 V 描述符:指出在數(shù)值數(shù)據(jù)結(jié)構(gòu)中隱含得小數(shù)點(diǎn)得位置。 小數(shù)點(diǎn)不占內(nèi)存單元。如 :03MPIC 9(3)V9(2) 。注意 :(1)V 在描述符得最后,則等于無(wú)小數(shù)點(diǎn)。(2) 一個(gè)數(shù)據(jù)得描述符中只能出現(xiàn)一個(gè)V。(3) 進(jìn)行數(shù)據(jù)傳送或運(yùn)算時(shí), 按隱含得小數(shù)點(diǎn)位置對(duì)準(zhǔn)進(jìn)行傳送或運(yùn)算。(4)V 表示得小數(shù)點(diǎn)只在傳

29、送或運(yùn)算時(shí)起作用 , 不能被顯示或打印出來(lái)。'S'描述符:如果想在數(shù)據(jù)項(xiàng)中放入一個(gè)帶符號(hào)得數(shù),可以用S'描述符。如:03MPIC S9(3)V9(2) 。注意 :(1)S 描述符必須就是最左邊得一個(gè)描述符。(2) 在內(nèi)存中 ,S 不占位數(shù) , 在傳送或運(yùn)算時(shí)起作用。2。字母型數(shù)據(jù)得描述: 字母型數(shù)據(jù)項(xiàng)用 A 描述符 , 在這種類(lèi)型得數(shù)據(jù)項(xiàng)中只允許存放字母或空格。3。字符型數(shù)據(jù)得描述:由任意得COBO字符組成得數(shù)據(jù),稱(chēng)為字符型數(shù)據(jù),它就是非數(shù)值型得, 不能用于計(jì)算。用 X 描述符來(lái)表示字符型數(shù)據(jù)。如 :03MPIC X(5) 。注意:(1)字符型數(shù)據(jù)可以用X描述符,也可以

30、用9與A描述符來(lái)描述。如描述數(shù)據(jù)'COB-74 可以用 PIC X(6),也可以用PIC A(3)X9(2)。(3) 字母型數(shù)據(jù)既可以用 A 描述 , 也可以用X。(4) 字符型數(shù)據(jù)中可以放數(shù)字。(5) 編輯型描述符: 編輯型數(shù)據(jù)項(xiàng)只就是作為輸出數(shù)據(jù)時(shí)增加或改變某些所需得符號(hào) , 起編輯作用 , 它不就是作計(jì)算用得。 下面分別介紹編輯數(shù)據(jù)項(xiàng)中用到得編輯描述符。(1) 。插入小數(shù)點(diǎn)。 , 用。描述符。如 :77TPIC99。 99。(2) 。插入逗號(hào) , 作分位號(hào), 用 , 描述符。如 :02APIC999,999 。 99。(或PIC9(3),9(3)。 9(2)(3) 。插入空格插入

31、空格,用'B'描述符。如:02APICB9(3)B。(4) 。插入正負(fù)號(hào)插入正負(fù)號(hào), 用 +' 或 -' 描述符。如 :02A1PIC+9(3) 。 (或 PIC9(3)+)02A2PIC-9(3) 。 ( 或 PIC9(3)-)一、/-.、二注意: 描述符 +',一律加符號(hào)。描述符'-'只對(duì)負(fù)值加負(fù)號(hào)。(5) 。插入$'。如 :02A1PIC$999。 99。02A2PIC+$99999。02A3PIC-$999 。 9。(6) 。浮動(dòng)插入正負(fù)號(hào)與$02A1PIC$99、 99、02A2PICeeeee ctct$、 $、02A

32、3PIC+9、 99、(7) 。 取消高位零, 用 Z' 與 *' 描述符。 在高位零得位置上代以空格或 *' 。 如 :02A1PICZ(5) 。 99。02A2PIC*(5) 。 *(2) 。02A3PIC+ZZZ,ZZZ,ZZ。 ZZ。02A4PIC-*,*,*。 99。(8)。插入DB與'CR字符。DB與CRH能用作固定插入,當(dāng)數(shù)值為負(fù)時(shí),在 編輯型數(shù)據(jù)項(xiàng)中最后兩個(gè)字節(jié)中置DB或CR,數(shù)值為正時(shí), 此兩字節(jié)留空格。如 :PIC $9(3) 。 99DBPIC $9(3) 。 99CR。02A102A25、常用數(shù)值型數(shù)據(jù)(WORKING-STORAGSEE

33、CTION)1。工作單元節(jié)得作用 : 程序中用得數(shù)據(jù)項(xiàng)分為兩部分, 一部分就是屬于輸入或輸出文件得 , 另一部分就是非輸入或輸出得數(shù)據(jù)。如一些中間變量或用作累計(jì)得數(shù)據(jù)項(xiàng)等。非輸入輸出得數(shù)據(jù)就應(yīng)在工作單元節(jié)中描述, 還可以用工作單元節(jié)來(lái)賦初值。2。VALUE?句:用于給變量賦初值。如:02APIC9(3)VALUE123。注意 :(1) 只有對(duì)工作單元節(jié)中得數(shù)據(jù)項(xiàng)才能賦初值, 不能對(duì)文件節(jié)中輸入輸出文件中得數(shù)據(jù)項(xiàng)賦初值。(2)如果在組合項(xiàng)得描述體中使用VALUE初值只能就是表意常量或非數(shù)值型常量。 對(duì)組合項(xiàng)整體而言 , 一律按字符型數(shù)據(jù)項(xiàng)處理。(3)當(dāng)用一個(gè)帶符號(hào)得數(shù)值作初值時(shí),相應(yīng)得PIC子句

34、中應(yīng)有S'描述符。(4) 賦初值時(shí)應(yīng)該注意類(lèi)型得一致性。(5)VALUE子句給出得值應(yīng)適合PIC子句得描述范圍,否則會(huì)出現(xiàn)截?cái)嗷虍a(chǎn)生錯(cuò) 誤。CHAPTER 5 過(guò)程部之二一。 MOVE 語(yǔ)句得較高技巧1。各種類(lèi)型數(shù)據(jù)之間得傳送規(guī)則見(jiàn)下表:(Y:表示合法傳送。N:表示非法傳送??瞻?: 表示某些時(shí)候就是合法得。 )接收項(xiàng)數(shù)值型數(shù)值 型數(shù)值編輯 型字母 型字符 型字符編輯 型組合項(xiàng)發(fā)送項(xiàng)整數(shù)非整 數(shù)數(shù)值型整數(shù)YYYNYYY數(shù)值型非整 數(shù)YYYNNNY數(shù)值編輯型YYYNYYY字母型NNNYYYY字符型YYY字符編輯型NNNNYYY數(shù)值常量YYYNNNY非數(shù)值常量NNNYYYYZEROYYYN

35、YYYSPACENNNYYYY組合項(xiàng)YYY2。用CORRESPONDING得傳送- 對(duì)應(yīng)傳送(同名傳送)對(duì)應(yīng)傳送得一般格式:MOVECORRESPONDING標(biāo)識(shí)符(1) TO標(biāo)識(shí)符 2CORR說(shuō)明 :(1) 如果兩個(gè)組合項(xiàng)中包括得項(xiàng)不同 , 則只傳送同名得項(xiàng)。(2) 傳送得兩者間必須有成對(duì)得同名數(shù)據(jù)項(xiàng) , 而且這一對(duì)中必須至少有一個(gè)項(xiàng)就是 初等項(xiàng)。否則不能作為對(duì)應(yīng)項(xiàng)傳送。(3) 所謂同名 , 指得就是它們有相同得全程受限, 即全程同名。假如T1與T2得描述分別為:010203T1。01T2。X。02X。X1。03X2。03X3。OO03X102 Y1。02Y。A1。03 A1。03則 T1

36、中得 A1 與 T2 中得 A1 就不就是全程同名。4。除法語(yǔ)句中得余數(shù)語(yǔ)句(REMAINDER 子句 ):DIVIDE 語(yǔ)句只能求商不能求余數(shù)。如想求余數(shù),可用REMAINDER子句。如 :DIVIDEAINTOBGIVINGCREMAINDERD注意 :(1) 商與余數(shù)得值不僅取決于除數(shù)與被除數(shù), 還取決于數(shù)據(jù)部中對(duì)商與余數(shù)得描述。(2)如用ROUNDED句,它只對(duì)商起作用,余數(shù)不作四舍五入處理,在計(jì)算余 數(shù)時(shí) , 仍按四舍五入前得值為準(zhǔn)。(3) 長(zhǎng)度溢出也只檢查商得值就是否溢出 , 而不檢查余數(shù)。三。 IF 語(yǔ)句得較高技巧1。符號(hào)條件:數(shù)據(jù)名 IS NOTPOSITIVE算術(shù)表達(dá)式NEG

37、ATIVEZERO2。類(lèi)型條件:標(biāo)識(shí)符 ISNOTNUMERICALPHABETIC3。 條件名條件: 用來(lái)表示條件變量當(dāng)前值得名字叫條件名。 條件名本身就是一個(gè)條件 , 它有一個(gè)值( 真或假 ), 用它來(lái)檢查條件變量得值就是否落在條件名所代表得值得范圍中 , 當(dāng)條件變量得值落在條件名所代表得值得范圍中 , 則此條 件名所表示得條件為真 , 否則為假。88名1 常量 3如: 028888條件 VALUETHRU THRUWS-WS-WS-條件名條件得一般格式:IS常量常量 2常量 4。PIC9(2) 。VALUE 0,93 。VALUE10。CHAPTER 6 過(guò)程部之三一。執(zhí)行語(yǔ)句得作用:在

38、一個(gè)COBO程序中,過(guò)程部中往往有一部分語(yǔ)句需要執(zhí)行多次。為了讓重復(fù)得部分在程序中只出現(xiàn)一次, 可以把重復(fù)得部分單獨(dú)寫(xiě)成一段或一節(jié) ( 有一個(gè)段名或節(jié)名 ), 每次執(zhí)行這部分語(yǔ)句時(shí)轉(zhuǎn)去該段, 執(zhí)行完轉(zhuǎn)回來(lái)。 這時(shí)候就需要用到執(zhí)行語(yǔ)句 (PERFORM) 。二。執(zhí)行語(yǔ)句得一般形式 :PERFORM過(guò)程名1THRU三。使用PERFORM旬實(shí)現(xiàn)循環(huán):1。 PERFORM過(guò)程名1 THRU2 整數(shù)過(guò)程名 2過(guò)程名TIMES2。 PERFORM1 THRU2 UNTIL3。 PERFORM1 THRU2 VARYING 標(biāo)識(shí)符 11 BY2 UN標(biāo)識(shí)符 2符3過(guò)程名過(guò)程名條件過(guò)程名過(guò)程名FROM 常數(shù)常

39、數(shù)條件標(biāo)識(shí)標(biāo)識(shí)符四。執(zhí)行語(yǔ)句得多重循環(huán)形式 :COBOL 允許三重循環(huán), 其一般格式可寫(xiě)為PERFORM過(guò)程名1THRU過(guò)程名2VARYING參數(shù) 1FROM初值1BY步長(zhǎng)1UNTIL條件 1AFTER參數(shù) 2FROM初值2BY步長(zhǎng)2UNTIL條件 2AFTER參數(shù) 3FROM初值3BY步長(zhǎng)3UNTIL條件 3五。出口語(yǔ)句 (EXIT):EXIT 語(yǔ)句提供了一組過(guò)程得公共出口 , 即指出了被調(diào)用過(guò) 程得邏輯終點(diǎn)。CHAPTER 7 各部之間得關(guān)系及程序舉例、各部之間得關(guān)系IDENTIFICATIONDIVISION、給程序PROGRAM-、IDPROGRA、M1加上標(biāo) 識(shí)以便 識(shí)別、描述程EN

40、VIRONMENT DIVISION、CONFIGRATIONSECTION、INPUT-OUTPUTSECTION、SELECT PRODFILE ASSIGN TO FILE1、序中用 到得文 件與外 部文件 得關(guān)系 及控制 信息描述程DATA DIVISION、FILESECTIO、NFDPRODFILE01PROD-RECLABEL RECORDPICISSTANDAR、DX(200) 、WORKING-STORAGE SECTION、01WS-VARIBALE、S05 WS-IPIC序中用 到得所 有文件及其記錄中各 數(shù)據(jù)項(xiàng) 得屬性及程序中用到 得所有中間數(shù) 據(jù)項(xiàng)得 描述、 程序得核

41、心部分 , 她決定計(jì)算機(jī)進(jìn)行PROCEDURE DIVISION、什么操作、如 ,文件得讀寫(xiě)及其她處理二、程序舉例 :例1:讀入一組產(chǎn)品銷(xiāo)售記錄,每讀入一個(gè)記錄,計(jì)算出銷(xiāo)售總額(數(shù)量X單價(jià))、然后打印出該產(chǎn)品得全部數(shù)據(jù)、數(shù)據(jù)形式如下 :19921231000001A A A A 0100500019931B B B B 0DATEAMT程序如下 :IDENTIFICATION PROGRAM-、ID ENVIRONMENT CONFIGRATION INPUT-OUTPUT23110002006000PRODCODE CUSTPRICEDIVISION、PEXAM1DIVISION、SECTI

42、ON、SELECTFILE1INPUT-FILEASSIGNTOSECTION、ORGANIZATIONUENCIALACCESS MODESEQUENCIALISSEQISISWS-INPUT-、SELECTOUTPUT-FILEASSIGNISTOP-SEQUENCIALACCESSMODEISSEQUENCIALTPUT-、DATAFILLEFDINPUT-FILELABELISWS-OUDIVISION、SECTION、RECORDIS0105STANDAR、DIN-REC、DATEPIC9(8) 、05PROD-CODE PIC9(6) 、05CUSTOMER-CODE PICX(4

43、) 、05QUANTITY PIC9(4) 、05UNIT-PRICEPIC9(4)、FDOUTPUT-FILELABELRECORDIS 01 05STANDAR、DOUT-RE、CDATEPIC9999B99B99、05FILLERPICX(5)、05PROD-CODE PIC9(6) 、05FILLERPICX(5)、05CUSTOMER-CODPEICX(4) 、05FILLERPIC05QUANTITYPIC05FILLERPIC05UNIT-PRICE05FILLER05SALES-VALUEX(5)、ZZZ9、X(5)、PIC$(5) 、PICX(5) 、PIC$(8) 、WOR

44、KING-STORAGE01WS-VARIBLE、S05WS-INPUT- PIC88WS-INPUT-88WS-INPUT-VALUE23、05WS-OUTPUT-PIC88WS-OUTPUT-PROCEDUREDIVISION、SECTION、9(2) 、VALUE0、9(2) 、VALUE0、A000-MAIN、PERFORMA100-OPEN-FILESPERFORMR000-READ-ORD UNTIL WS-INPUT-PERFORMA300-CLOSE-FILESSTOP RUNA200-PROCESS-RECA000-EXIT、EXITA100-OPEN-FILES、OPEN

45、INPUTINPUT-WS-INPUT-DISPLAY INPUT-FILEULUPON CONSOLEPERFORM Z000-ABENDEND-IFIFNOTDISPLAY OUTPUT-FILEOPENUPON CONSOLEPERFORM Z000-ABENDEND-IFOUTPUT-NOTOPENNOT SUCCESSFWS-OUTPUT-NOTSUCCESSFULA200-PROCESS-RECO、 RDINITIALIZE OUT-RECMOVECORRIN-RECTOOUT-RECPUTE SALES-VALUE = QUANTITY OF IN-REC *UNIT-PRICE

46、 OF OUT-RECPERFORM W000-WRITE- R000-READ-FILEA300-CLOSE-FILE、CLOSEINPUT-R000-READ-FILE、READ INPUT-NOT WS-INPUT- AND NOT WS-INPUTDISPLAY INPUT-FILE READ NOTSUCCESSFULUPON CONSOLEPERFORM Z000-ABENDTEND-IFTHRUZ000-EXIW000-WRITE-FILE、WRITE OUT-RECAFTER1IFNOTWS-OUTPUT-DISPLAYOUTPUT-FILE WRITE NOTSUCCESSF

47、ULUPON CONSOLE PERFORM Z000-ABEND END-IFZ000-ABEND、CONSOLEA300-EXITRETURN-CODEDISPLAY PROGRAM ABEND ! UPONPERFORM A300-CLOSE-FILESTHRUMOVE16TOGOBACK輸出得數(shù)據(jù)形式如下 :AAAA1001992 12 31000001$5000$5000001993 12 31$6000100001 $1200000BBBB200例 2:ProgramINVI300Update inventoryfile (random)FileDescriptionUseVALT

48、RAN Valid inventory transaction fileInputINVMAST Inventory master fileUpdateERRTRAN Unmatched inventory transaction file OutputProcess specificationsThis program updates an inventory master file (INVMAST) based on the data in a sequential valid inventory transaction records(VALTRAN、)The inventorymas

49、terindexedby item number and updated randomly 、If the program finds a master record with the same item nu mber as a transaction, ituses thetransaction data to update the master record 、It does this by increasing theon hand quantityinthemaster recordby thereceiptquantity in the transaction record 、If

50、theprogram cannotfind amasterrecord for a transaction, it writes the transaction record on the error transactions(ERRTRAN、)The record format formatfor ERRTRANis same asforVALTRA、NThe basic processing requirements are:1、 Read a transaction record 、2、 Read the masterrecordwith thesame item number asin

51、the transaction record 、3、 If the masterrecordis found, update and rewritethe matching master record 、4、 If the transaction is not found , write the transaction record on the error transactions 、程序如下 :IDENTIFICATION DIVISION、PROGRAM-、ID INV1300、ENVIRONENT DIVISON、INPUT-OUTPUT SECTIO、NSELECT VALTRAN ASSIGN TOSYS020-AS-VALTRA、NSELECT INVMASTASSIGN TO SYS021-INVMATORGANIZATIONIS INDEXEDACCESSISR

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論