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

下載本文檔

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

文檔簡介

1、.cobol語言基礎(chǔ)培訓(xùn)教程2009年04月23日 | 5:23 下午分類:大型機Mainframe|標(biāo)簽:cobol 數(shù)據(jù)類型、COBOL 程序舉例、cobol入門、cobol教程、cobol語言、大型機培訓(xùn)|CHAPTER1COBOL概述COBOL是CommonBusinessOrientedLanguage的縮寫。它不僅是商業(yè)數(shù)據(jù)處理的理想語言,而且廣泛用于數(shù)據(jù)管理領(lǐng)域,因此COBOL語言也被稱為”用于管理的語言”。一。COBOL語言的特點最適于數(shù)據(jù)處理領(lǐng)域:算數(shù)計算量少而邏輯處理量多,輸入輸出量大,數(shù)據(jù)間存在著一定的邏輯關(guān)系,大量的分類排序;COBOL比較接近英語,容易懂;通用性強,易

2、移植,COBOL結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明。二。COBOL的組成部分:1。標(biāo)識部(IDENTIFICATIONDIVISION):用于標(biāo)識程序名。2。環(huán)境部(ENVIRONMENTDIVISION):用于說明程序運行的環(huán)境。3。數(shù)據(jù)部(DATADIVISION):用于說明程序中涉及的所有數(shù)據(jù)。4。過程部(PROCEDUREDIVISION):是程序的核心部分,它決定計算機應(yīng)進行什么操作。三。最簡單的COBOL程序舉例:COL167812727380IDENTIFICATIONDIVISION。PROGRAM-ID。PSAMPLE1。ENVIRONMENTDIVISION。DATADIVISION。PR

3、OCEUREDIVISION。DISPLAYTHISISACOBOLPROGRAM.STOPRUN。四。COBOL源程序的書寫格式:第1至6列為”標(biāo)號區(qū)”。第7列為”續(xù)行標(biāo)志區(qū)”第8至此11列,稱為”A區(qū)”。程序中有些內(nèi)容如部頭,節(jié)頭,段頭,層號01,層號77及文件描述符FD等應(yīng)從A區(qū)開始寫。第12至此72列,稱為”B區(qū)”。寫程序中的正文部分。如過程部中的句子只能從B區(qū)開始寫。第73至80列,稱為”注釋區(qū)”。五。COBOL字符集包括:數(shù)字09,字母AZ,az,專用字符:+-*/=,.;()$及空格。屬于系統(tǒng)字符集而不屬于COBOL字符集的字符只能出現(xiàn)在COBOL程序中的字符串里。六。常量:CO

4、BOL常量分為數(shù)值常量(如100,-29),非數(shù)值常量(如ABC)和表意常量(如ZERO,SPACE,HIGH-VALUE,LOW-VALUE,QUOTE,ALL常量)。七。COBOL所處理的數(shù)據(jù)的特點層次的概念:數(shù)據(jù)間存在的從屬關(guān)系。文件的概念:多個記錄可以組成一個文件。記錄的概念:具有一定層次關(guān)系的一組數(shù)據(jù)項的最大集合,它是內(nèi)存中具有獨立邏輯含義的最大存取項,具有最高層次。CHAPTER2過程部初步一。輸入輸出語句。1。ACCEPT語句:直接從終端鍵盤或系統(tǒng)指定的輸入設(shè)備上輸入數(shù)據(jù)。ACCEPT標(biāo)識符FROM助憶名注:A。標(biāo)識符(identifier)指的是能唯一地標(biāo)識一個數(shù)據(jù)項的數(shù)據(jù)名,

5、不能唯一地標(biāo)識一個數(shù)據(jù)項的數(shù)據(jù)名不是標(biāo)識符。標(biāo)識符可以是組合項。B。在ACCEPT語句中如不寫FROM部分,如ACCEPTA,則表示從系統(tǒng)隱含指定的設(shè)備上讀入一個數(shù)據(jù)給A。如果不想從指定的設(shè)備上輸入,則要用FROM選項,這時”助憶名”需要在環(huán)境部中事先說明和那種外部設(shè)備相聯(lián)系。如:ENVIRONMENTDIVISION。(環(huán)境部)CONFIGRATIONSECTION。(配置節(jié))SPECIAL-NAMES。(專用名段)CONSOLEISABC如在過程部中有ACCEPTTFROMABC。則表示要從控制臺接收數(shù)據(jù)2。DISPLAY語句:從計算機內(nèi)存中輸出到某一指定的輸出設(shè)備上。DISPLAY標(biāo)識符

6、1,常量1標(biāo)識符2,常量2。UPON助憶名(標(biāo)識符和助憶名的說明同上)ACCEPT語句和DISPLAY語句不必定義文件適用于少量的數(shù)據(jù)輸入輸出。3。READ語句:COBOL語言中數(shù)據(jù)的輸入輸出主要是通過對外部文件的讀寫進行的。READ語句就是從外部文件上讀入數(shù)據(jù)輸出到程序中的數(shù)據(jù)項中。在程序中用到的所有文件都需要在環(huán)境部中指定程序中用到的文件名與實際外部文件的聯(lián)系。數(shù)據(jù)部也要對文件加以描述。指定數(shù)據(jù)結(jié)構(gòu)各數(shù)據(jù)項所占的內(nèi)存單元長度以及數(shù)據(jù)形式。COBOL的存取是以文件為對象以記錄為單位的。READ語句的最簡單的格式為:READ文件名ENVIRONMENTDIVISION。INPUT-OUTPUT

7、SECTION。FILE-CONTROL。SELECTIN-FILLEASSIGNTO外部文件名。為了存儲讀入的記錄,必須在內(nèi)存開辟一個與文件記錄長度相等的存儲區(qū),即輸入文件紀(jì)錄區(qū)。每一個輸入文件都有相應(yīng)的輸入文件紀(jì)錄區(qū),與之一一對應(yīng)。亦即在數(shù)據(jù)部中描述文件的數(shù)據(jù)結(jié)構(gòu)。3。READ語句:假設(shè)IN-FILE文件每一記錄中包含的內(nèi)容為:產(chǎn)品代碼,產(chǎn)品數(shù)量,產(chǎn)品單價,生產(chǎn)日期。設(shè)某一記錄的具體數(shù)據(jù)如下:00100100000100019990322prodcodequantitypriceyearmonday如果我們希望讀入該記錄并對各數(shù)據(jù)項進行處理,則需要在輸入紀(jì)錄區(qū)中劃分出各數(shù)據(jù)項,以便存放相應(yīng)

8、的數(shù)據(jù)。定義輸入紀(jì)錄區(qū)以及劃分記錄區(qū)中各數(shù)據(jù)項的工作是由數(shù)據(jù)部來完成的。下面我們簡單介紹數(shù)據(jù)部定義記錄區(qū)方法,針對上面輸入數(shù)據(jù)的特點,我們可以在數(shù)據(jù)部中對記錄區(qū)作如下描述:DATADIVISION。FDIN-FILELABLERECORDISSTANDARD。01IN-RECORD。(定義記錄區(qū)名為IN-RECORD)02PROD-CODEPIC9(4)。02PROD-QUANTITYPIC9(5)。02PROD-PRICEPIC9(6)。02MANU-DATE。(生產(chǎn)日期為一組合項)05DATE-CCYYPIC9(4)。05DATE-MMPIC9(2)。05DATE-DDPIC9(2)。其中

9、,F(xiàn)D即FILEDESCRIPTION,表示從該行起是文件描述體。LABLERECORDISSTANDARD:所有的磁盤文件和磁帶文件都必須寫明此句。01層定義輸入紀(jì)錄區(qū)的名字為IN-RECORD,由于01層屬于FD描述體,因此也就指定了IN-RECORD和IN-FILE的關(guān)系。亦即從IN-FILE讀入的數(shù)據(jù)存放在IN-RECORD記錄區(qū)中。這樣,在執(zhí)行一次READ語句后,文件中一個記錄的數(shù)據(jù)便輸入到內(nèi)存記錄區(qū),按排列順序分別送到記錄區(qū)中各數(shù)據(jù)項中。注意文件的各記錄中的數(shù)據(jù)是不分?jǐn)?shù)據(jù)項的,只是按一定的順序把數(shù)據(jù)存放在各字節(jié)中。所以數(shù)據(jù)部對記錄區(qū)中各數(shù)據(jù)項的描述應(yīng)該與文件的記錄中各數(shù)據(jù)排列次序和

10、長度相一致。READ語句的一般形式:READ文件名RECORDINTO標(biāo)識符ATEND執(zhí)行語句,例如:READIN-FILEINTOTEMP-RECORDATENDSTOPRUN該語句除了將讀到的數(shù)據(jù)傳送到IN-RECORD之外,還傳送到TEMP-RECORD中。在遇到文件尾時,程序結(jié)束運行。4。WRITE語句:將內(nèi)存中的數(shù)據(jù)輸出到外部設(shè)備,主要是由WRITE語句來完成的。WRITE語句的最簡單的格式為:WRITE記錄名(注意WRITE語句的操作對象是記錄,所以是記錄名而不是文件名)與輸入文件相似輸出文件也要在環(huán)境部中指定所對應(yīng)的實際存在的外部文件:ENVIRONMENTDIVISION。IN

11、PUT-OUTPUTSECTION。FILE-CONTROL。SELECTOUT-FILLEASSIGNTO打印機名。也要在數(shù)據(jù)部中定義輸出記錄區(qū):DATADIVISION。FDOUT-FILELABLERECORDISOMITTED。01OUT-RECORD。02PROD-CODEPIC9(4)。02PROD-QUANTITYPIC9(5)。02PROD-PRICEPIC9(6)。02MANU-DATE05DATE-CCYYPIC9(4)。05DATE-MMPIC9(2)。05DATE-DDPIC9(2)。LABLERECORDISOMITTED:凡輸出設(shè)備是打印機的都必須寫明此句。如輸出設(shè)

12、備是磁盤,則仍用LABLERECORDISSTANDARD。01層定義輸出紀(jì)錄區(qū)的名字為OUT-RECORD,由于01層屬于FD描述體,因此也就指定了OUT-RECORD和OUT-FILE的關(guān)系。在用WRITE語句輸出一個記錄之前,應(yīng)向輸出記錄區(qū)傳送數(shù)據(jù)。如已將數(shù)據(jù)傳送到上述各數(shù)據(jù)項中,則在執(zhí)行WRITEOUT-RECORD語句后,則記錄區(qū)中的數(shù)據(jù)通過打印機打印出來。WRITE語句的一般形式:標(biāo)識符2LINEBEFORE整數(shù)LINESWRITE記錄名FROM標(biāo)識符1AFTERADVANCING助憶名PAGE5。OPEN語句:程序中如果需要讀寫文件,則該文件必須先用OPEN語句打開,系統(tǒng)在執(zhí)行R

13、EAD,WRITE以前先檢查該文件是否已在規(guī)定的外部設(shè)備上準(zhǔn)備就緒。OPEN語句的一般格式為:INPUT文件名1,文件名2。OPENOUTPUT文件名3,文件名4。6。CLOSE語句:當(dāng)對一個文件的讀或?qū)懙牟僮饕淹瓿?,就?yīng)關(guān)閉該文件。CLOSE語句的一般格式為:CLOSE文件名1,文件名2。COBOL通過2位長度的文件狀態(tài)字(FILE-STATUS)來表示文件的操作結(jié)果是否成功,常見的文件狀態(tài)值及意義:二。算數(shù)運算語句1。ADD語句:格式1:ADD標(biāo)識符1,標(biāo)識符2。TO標(biāo)識符m,標(biāo)識符n。常量1,常量2格式2:ADD標(biāo)識符1,標(biāo)識符2,標(biāo)識符3常量1,常量2,常量3。GIVING標(biāo)識符m,標(biāo)

14、識符n。2。SUBTRACT語句:格式1:SUBTRACT標(biāo)識符1,標(biāo)識符2。FROM標(biāo)識符m,標(biāo)識符n。常量1,常量2格式2:SUBTRACT標(biāo)識符1,標(biāo)識符2。FROM標(biāo)識符常量1,常量2常量GIVING標(biāo)識符n,標(biāo)識符p。3。MULTIPLY語句:格式1:MULTIPLY標(biāo)識符1BY標(biāo)識符2,標(biāo)識符3。常量1,格式2:MULTIPLY標(biāo)識符1BY標(biāo)識符2GIVING標(biāo)識符3,標(biāo)識符4。常量1,常量24。DIVIDE語句:格式1:DIVIDE標(biāo)識符1INTO標(biāo)識符2,標(biāo)識符3。常量1格式2:DIVIDE標(biāo)識符1INTO標(biāo)識符2GIVING標(biāo)識符3,標(biāo)識符4。常量1BY常量2B注意:DIVI

15、DEAINTOB是指B/ADIVIDEAINTOCBGIVINGC是指B/ADIVIDEABYBCGIVINGC是指A/B5。COMPUTE語句:COMPUTE標(biāo)識符1,標(biāo)識符2。=算術(shù)表達式運算的優(yōu)先級由高到低順序為:(),正負號,*,*或/,+或-如:C=3,D=5,E=2,F(xiàn)=1則:COMPUTA,B=-(C+D)*2/E*3-F=-3三。傳送語句(MOVE)MOVE語句用來實現(xiàn)內(nèi)存中數(shù)據(jù)的傳送(而不是內(nèi)存和外設(shè)之間的傳送)。MOVE語句的一般格式為:MOVE標(biāo)識符1TO標(biāo)識符2,標(biāo)識符3。常量1MOVE語句的傳送規(guī)則:1,如果接收項和發(fā)送項在數(shù)據(jù)部中描述的類型和長度相同,則按字節(jié)一一對

16、應(yīng)傳送。2,如果接收項和發(fā)送項長度不相同,而二者都是數(shù)值數(shù)據(jù)項,則按小數(shù)點對齊處理。3,對字母或字符數(shù)據(jù)(非數(shù)值型數(shù)據(jù))的傳送,按左對齊處理。4,初等項和組合項之間可以相互傳送。關(guān)于各類數(shù)據(jù)之間的傳送規(guī)則將在第五章中介紹。四。轉(zhuǎn)移語句(GOTO)當(dāng)需要使程序改變正常執(zhí)行的順序時,可以使用無條件轉(zhuǎn)移語句GOTO。其一般格式為:格式1:GOTO過程名格式2:GOTO過程名1,過程名2。過程名nDEPENDINGON標(biāo)識符注意:只能轉(zhuǎn)移到段或節(jié)的開頭,不能轉(zhuǎn)移到段或節(jié)的當(dāng)中某一語句。段名或節(jié)名為過程名。五。條件語句(IF)當(dāng)需要根據(jù)給出的某些條件是否滿足來決定應(yīng)執(zhí)行哪一部分語句時,可以使用條件語句I

17、F。其一般格式為:IF條件語句組1ELSE語句組1END-IFNEXTSENTENCENEXTSENTENCECOBOL關(guān)系運算符:ISGREATERTHAN()ISLESSTHAN()(=)NOTLESSTHAN(NOT=)NOTEQUALTO(NOT=)注意:句點在IF語句中的特殊作用。如:IFA0DISPLAYA。ADDATOTOTAL。DISPLAYTOTAL。與IFA0DISPLAYAADDATOTOTAL。DISPLAYTOTAL。就不同。為避免出現(xiàn)問題應(yīng)該使用顯式終止符(END-IF,END-PERFORM等)代替隱式終止符(句點”?!保┝?。停止語句(STOP)其一般格式為:ST

18、OPRUN常量STOPRUN執(zhí)行后,程序停止運行,停止后不能再接著運行,如需要,可重新運行一次。STOP常量,表示程序暫時掛起不往下執(zhí)行,顯示出此常量。七。返回語句(GOBACK)停止運行,將控制權(quán)返回給上一級??捎帽菊Z句代替STOP語句。子程序必須用GOBACK而不能用STOP:因為STOP停止的是一個RUNUNIT(運行單元)。CHAPTER3標(biāo)識部和環(huán)境部一。標(biāo)識部(IDENTIFICATIONDIVISION)IDENTIFICATIONDIVISION.PROGRAM-ID.程序名。AUTHOR。作者名。INSTALLATION。計算機設(shè)置場所。DATE-WRITTEN。源程序編寫日

19、期。DATE-COMPILED。源程序編譯日期。SECURITY。保密程度。二。環(huán)境部(ENVIRONMENTDIVISION)ENVIRONMENTDIVISION.CONFIGRATIONSECTION。SOURCE-COMPUTER。源計算機名。OBJECT-COMPUTER。目標(biāo)計算機名。SPECIAL-NAMES。專用名描述項。INPUT-OUTPUTSECTION。FILE-CONTROL。文件控制描述體。I-O-CONTROL。輸入輸出控制描述體1。CONFIGRATIONSECTION。專有名段的一般格式:SPECIAL-NAMES。DICIMAL-POINTISCOMMA。C

20、URRENCYSIGNIS非數(shù)值常量。專用名IS助憶名。2。INPUT-OUTPUTSECTION。INPUT-OUTPUTSECTION包括兩個段,即:FILE-CONTROL和I-O-CONTROL。FILE-CONTROL段是為文件分配外部文件。I-O-CONTROL段的作用是可以指定目標(biāo)程序運行時,幾個文件共用一個內(nèi)存區(qū),以省內(nèi)存。在此暫不作介紹。FILE-CONTROL段的主要功能是給程序中使用的文件命名。指出存放該文件的外部設(shè)備及其它有關(guān)文件控制的信息。對文件的描述是由SELECT子句實現(xiàn)的。FILE-CONTROL段的一般格式:INPUT-OUTPUTSECTION。FILE-C

21、ONTROL。SELECT文件名ASSIGNTO外部文件名ORGANIZAIONIS.(SEQUENCIAL,INDEXED,RELATIVE)ACCESSMODEIS.(SEQUENCIAL,RANDOM,DYNAMIC)RECORDKEYIS.FILESTATUSIS.CHAPTER4數(shù)據(jù)部之一一。數(shù)據(jù)部概述。1。數(shù)據(jù)部的作用是定義數(shù)據(jù)項屬性,描述數(shù)據(jù)結(jié)構(gòu)。所有在過程部中出現(xiàn)的數(shù)據(jù)項都必須在數(shù)據(jù)部中對它們的屬性進行說明。包括數(shù)據(jù)項的類型,數(shù)據(jù)項間的關(guān)系,記錄與文件的關(guān)系,文件的屬性。2。數(shù)據(jù)的層次和層號:COBOL中把有從屬關(guān)系的數(shù)據(jù)用層次(level)關(guān)系來描述。數(shù)據(jù)的層次結(jié)構(gòu)是:記錄組

22、合項初等項。如,在前面READ語句中定義的IN-FILE文件具有如下結(jié)構(gòu):01IN-RECORD。02PROD-CODEPIC9(4)。02PROD-QUANTITYPIC9(5)。02PROD-PRICEPIC9(6)。02MANU-DATE。05DATE-CCYYPIC9(4)。05DATE-MMPIC9(2)。05DATE-DDPIC9(2)。層次規(guī)定如下:(1)用來描述數(shù)據(jù)的層次結(jié)構(gòu)的層號從01到49。記錄的層次最高,定為01層號。(2)從屬項的層號比其下屬項的層號高。層號不必要求連續(xù)。(3)從屬于同一組合項但不互相從屬的數(shù)據(jù)項具有相同的層號。3。數(shù)據(jù)部的結(jié)構(gòu):數(shù)據(jù)部中通常用到的有以下

23、幾個節(jié):(1)FILESECTION:描述程序中用到的輸入輸出文件及其記錄中各數(shù)據(jù)項的屬性。(2)WORKING-STORAGESECTION:描述程序中用到的中間數(shù)據(jù)項。(3)LINKAGESECTION:描述與調(diào)用程序間發(fā)生數(shù)據(jù)傳遞的數(shù)據(jù)項。(4)REPORTSECTION:為了完成報表編制功能,此節(jié)用來規(guī)定欲輸出的報表的體裁,設(shè)計各報表欄的打印形式和方法等。二。文件節(jié)。1。文件節(jié)的作用:程序中每一個輸入或輸出文件都要在文件節(jié)中加以描述。內(nèi)容包括:文件名和文件屬性;文件中包括的記錄名字;每個記錄中數(shù)據(jù)的層次關(guān)系;記錄中各數(shù)據(jù)項的數(shù)據(jù)形式和占內(nèi)存的大小。2。文件描述:最簡單的文件描述體的一般

24、格式為:FD文件名LABLERECORDISSTANDARDRECORDSAREOMITTEDDATARECORDIS數(shù)據(jù)名RECORDSARE3。記錄描述:記錄描述體由01層號開始,后跟記錄名。如果記錄本身就是一個初等項,則在記錄名后描述記錄長度;否則,數(shù)據(jù)名后跟句點,下面定義記錄的數(shù)據(jù)結(jié)構(gòu)。如:DATADIVISION。FILESECTION。FDIN-FILELABLERECORDISSTANDARD。DATARECORDISIN-FILE-RECORD。01IN-FILE-RECORDPICX(80)。DATADIVISION。FILESECTION。FDIN-FILELABLEREC

25、ORDISSTANDARD。DATARECORDISIN-FILE-RECORD。01IN-FILE-RECORDPICX(80)?;颍?1IN-FILE-RECORD。05DATEPIC9(8)。05PROD-CODEPIC9(4)。05PROD-PRICEPIC9(6)。)4。數(shù)據(jù)項描述:在每一個初等項的名字后跟一個PIC子句。用它來描述數(shù)據(jù)的類型和長度。PIC子句在下面詳細說明。5。文件節(jié)的書寫格式:FD從A區(qū)開始書寫,01層號也從A區(qū)開始,其它層號可以從A區(qū)也可以從B區(qū)開始。為了看起來層次分明,最好從B區(qū)開始。三。PIC子句。PIC即PICTURE的縮寫。PIC子句用來描述每一個初等項

26、。它說明:(1)數(shù)據(jù)項是什么類型。(2)數(shù)據(jù)項占多大內(nèi)存域。(3)是否需要按打印的要求準(zhǔn)備有關(guān)字符。PIC子句的主要作用在于描述一個初等項的一般特征和編輯要求。1。數(shù)值型數(shù)據(jù)的描述:9描述符:表示該位置上可以放入一個09之間的數(shù)字。因此:01APIC999?;?1APIC9(3)。表示A可以存放000999之間的一個三位數(shù)。有幾個9表示有幾位數(shù)。注意:(1)在數(shù)值型數(shù)據(jù)項中只能放數(shù)字不能放空格。(2)用9描述符只能表示整數(shù),如輸入小數(shù)部分,則小數(shù)部分被舍棄。(3)如送入一個負數(shù),則負號被舍棄。V描述符:指出在數(shù)值數(shù)據(jù)結(jié)構(gòu)中隱含的小數(shù)點的位置。小數(shù)點不占內(nèi)存單元。如:03MPIC9(3)V9(2

27、)。注意:(1)V在描述符的最后,則等于無小數(shù)點。(2)一個數(shù)據(jù)的描述符中只能出現(xiàn)一個V。(3)進行數(shù)據(jù)傳送或運算時,按隱含的小數(shù)點位置對準(zhǔn)進行傳送或運算。(4)V表示的小數(shù)點只在傳送或運算時起作用,不能被顯示或打印出來。S描述符:如果想在數(shù)據(jù)項中放入一個帶符號的數(shù),可以用S描述符。如:03MPICS9(3)V9(2)。注意:(1)S描述符必須是最左邊的一個描述符。(2)在內(nèi)存中,S不占位數(shù),在傳送或運算時起作用。2。字母型數(shù)據(jù)的描述:字母型數(shù)據(jù)項用A描述符,在這種類型的數(shù)據(jù)項中只允許存放字母或空格。3。字符型數(shù)據(jù)的描述:由任意的COBOL字符組成的數(shù)據(jù),稱為字符型數(shù)據(jù),它是非數(shù)值型的,不能用

28、于計算。用X描述符來表示字符型數(shù)據(jù)。如:03MPICX(5)。注意:(1)字符型數(shù)據(jù)可以用X描述符,也可以用9和A描述符來描述。如描述數(shù)據(jù)COB-74可以用PICX(6),也可以用PICA(3)X9(2)。(2)字母型數(shù)據(jù)既可以用A描述,也可以用X。(3)字符型數(shù)據(jù)中可以放數(shù)字。4。編輯型描述符:編輯型數(shù)據(jù)項只是作為輸出數(shù)據(jù)時增加或改變某些所需的符號,起編輯作用,它不是作計算用的。下面分別介紹編輯數(shù)據(jù)項中用到的編輯描述符。(1)。插入小數(shù)點。,用。描述符。如:77TPIC99。99。(2)。插入逗號,作分位號,用,描述符。如:02APIC999,999。99。(或PIC9(3),9(3)。9(

29、2)(3)。插入空格,用B描述符。如:02APICB9(3)B。(4)。插入正負號,用+或-描述符。如:02A1PIC+9(3)。(或PIC9(3)+)02A2PIC-9(3)。(或PIC9(3)-)注意:描述符+,一侓加符號。描述符-只對負值加負號。(5)。插入$。如:02A1PIC$999。99。02A2PIC+$99999。02A3PIC-$999。9。(6)。浮動插入正負號和$02A1PIC$99.99.02A2PIC$.$.02A3PIC+9.99.(7)。取消高位零,用Z和*描述符。在高位零的位置上代以空格或*。如:02A1PICZ(5)。99。02A2PIC*(5)。*(2)。0

30、2A3PIC+ZZZ,ZZZ,ZZ。ZZ。02A4PIC-*,*,*。99。(8)。插入DB和CR字符。DB和CR只能用作固定插入,當(dāng)數(shù)值為負時,在編輯型數(shù)據(jù)項中最后兩個字節(jié)中置DB或CR,數(shù)值為正時,此兩字節(jié)留空格。如:02A1PIC$9(3)。99DB02A2PIC$9(3)。99CR。5.常用數(shù)值型數(shù)據(jù)四。工作單元節(jié)(WORKING-STORAGESECTION)1。工作單元節(jié)的作用:程序中用的數(shù)據(jù)項分為兩部分,一部分是屬于輸入或輸出文件的,另一部分是非輸入或輸出的數(shù)據(jù)。如一些中間變量或用作累計的數(shù)據(jù)項等。非輸入輸出的數(shù)據(jù)就應(yīng)在工作單元節(jié)中描述,還可以用工作單元節(jié)來賦初值。2。VALUE

31、子句:用于給變量賦初值。如:02APIC9(3)VALUE123。注意:(1)只有對工作單元節(jié)中的數(shù)據(jù)項才能賦初值,不能對文件節(jié)中輸入輸出文件中的數(shù)據(jù)項賦初值。(2)如果在組合項的描述體中使用VALUE,初值只能是表意常量或非數(shù)值型常量。對組合項整體而言,一律按字符型數(shù)據(jù)項處理。(3)當(dāng)用一個帶符號的數(shù)值作初值時,相應(yīng)的PIC子句中應(yīng)有S描述符。(4)賦初值時應(yīng)該注意類型的一致性。(5)VALUE子句給出的值應(yīng)適合PIC子句的描述范圍,否則會出現(xiàn)截斷或產(chǎn)生錯誤。CHAPTER5過程部之二一。MOVE語句的較高技巧1。各種類型數(shù)據(jù)之間的傳送規(guī)則見下表:(Y:表示合法傳送。N:表示非法傳送??瞻祝?/p>

32、表示某些時候是合法的。)接收項數(shù)值型數(shù)值型數(shù)值編輯型字母型字符型字符編輯型組合項發(fā)送項整數(shù)非整數(shù)數(shù)值型整數(shù)YYYNYYY數(shù)值型非整數(shù)YYYNNNY數(shù)值編輯型YYYNYYY字母型NNNYYYY字符型YYY字符編輯型NNNNYYY數(shù)值常量YYYNNNY非數(shù)值常量NNNYYYYZEROYYYNYYYSPACENNNYYYY組合項YYY2。用CORRESPONDING子句的傳送對應(yīng)傳送(同名傳送)對應(yīng)傳送的一般格式:MOVECORRESPONDING標(biāo)識符1TO標(biāo)識符2CORR說明:(1)如果兩個組合項中包括的項不同,則只傳送同名的項。(2)傳送的兩者間必須有成對的同名數(shù)據(jù)項,而且這一對中必須至少有一

33、個項是初等項。否則不能作為對應(yīng)項傳送。(3)所謂同名,指的是它們有相同的全程受限,即全程同名。假如T1和T2的描述分別為:01T1。01T2。02X。02X。03X1。03X2。03X3。03X1。02Y1。02Y。03A1。03A1。則T1中的A1與T2中的A1就不是全程同名。4。除法語句中的余數(shù)語句(REMAINDER子句):DIVIDE語句只能求商不能求余數(shù)。如想求余數(shù),可用REMAINDER子句。如:DIVIDEAINTOBGIVINGCREMAINDERD注意:(1)商和余數(shù)的值不僅取決于除數(shù)和被除數(shù),還取決于數(shù)據(jù)部中對商和余數(shù)的描述。(2)如用ROUNDED子句,它只對商起作用,余

34、數(shù)不作四舍五入處理,在計算余數(shù)時,仍按四舍五入前的值為準(zhǔn)。(3)長度溢出也只檢查商的值是否溢出,而不檢查余數(shù)。三。IF語句的較高技巧1。符號條件:數(shù)據(jù)名ISNOTPOSITIVE算術(shù)表達式NEGATIVEZERO2。類型條件:標(biāo)識符ISNOTNUMERICALPHABETIC3。條件名條件:用來表示條件變量當(dāng)前值的名字叫條件名。條件名本身是一個條件,它有一個值(真或假),用它來檢查條件變量的值是否落在條件名所代表的值的范圍中,當(dāng)條件變量的值落在條件名所代表的值的范圍中,則此條件名所表示的條件為真,否則為假。條件名條件的一般格式:88條件名VALUEIS常量1THRU常量2常量3THRU常量4。

35、如:02WS-FILE-STATUSPIC9(2)。88WS-FILE-NORMALVALUE0,93。88WS-FILE-EOFVALUE10。CHAPTER6過程部之三一。執(zhí)行語句的作用:在一個COBOL程序中,過程部中往往有一部分語句需要執(zhí)行多次。為了讓重復(fù)的部分在程序中只出現(xiàn)一次,可以把重復(fù)的部分單獨寫成一段或一節(jié)(有一個段名或節(jié)名),每次執(zhí)行這部分語句時轉(zhuǎn)去該段,執(zhí)行完轉(zhuǎn)回來。這時候就需要用到執(zhí)行語句(PERFORM)。二。執(zhí)行語句的一般形式:PERFORM過程名1THRU過程名2三。使用PERFORM語句實現(xiàn)循環(huán):1。PERFORM過程名1THRU過程名2整數(shù)TIMES標(biāo)識符2。P

36、ERFORM過程名1THRU過程名2UNTIL條件3。PERFORM過程名1THRU過程名2VARYING標(biāo)識符1FROM常數(shù)1BY常數(shù)2UNTIL條件標(biāo)識符2標(biāo)識符3四。執(zhí)行語句的多重循環(huán)形式:COBOL允許三重循環(huán),其一般格式可寫為:PERFORM過程名1THRU過程名2VARYING參數(shù)1FROM初值1BY步長1UNTIL條件1AFTER參數(shù)2FROM初值2BY步長2UNTIL條件2AFTER參數(shù)3FROM初值3BY步長3UNTIL條件3五。出口語句(EXIT):EXIT語句提供了一組過程的公共出口,即指出了被調(diào)用過程的邏輯終點。CHAPTER7各部之間的關(guān)系及程序舉例一.各部之間的關(guān)系

37、:IDENTIFICATIONDIVISION.PROGRAM-ID.PROGRAM1.給程序加上標(biāo)識以便識別.ENVIRONMENTDIVISION.CONFIGRATIONSECTION.INPUT-OUTPUTSECTION.FILE-CONTROL.SELECTPRODFILEASSIGNTOFILE1.描述程序中用到的文件與外部文件的關(guān)系及控制信息DATADIVISION.FILESECTION.FDPRODFILELABELRECORDISSTANDARD.01PROD-RECPICX(200).WORKING-STORAGESECTION.01WS-VARIBALES.05WS-

38、IPIC9(2).描述程序中用到的所有文件及其記錄中各數(shù)據(jù)項的屬性及程序中用到的所有中間數(shù)據(jù)項的描述.PROCEDUREDIVISION.程序的核心部分,他決定計算機進行什么操作.如,文件的讀寫及其他處理二.程序舉例:例1:讀入一組產(chǎn)品銷售記錄,每讀入一個記錄,計算出銷售總額(數(shù)量X單價).然后打印出該產(chǎn)品的全部數(shù)據(jù).數(shù)據(jù)形式如下:19921231000001AAAA0100500019931231100001BBBB02006000-DATEPRODCODECUSTAMTPRICE程序如下:IDENTIFICATIONDIVISION.PROGRAM-ID.PEXAM1ENVIRONMENT

39、DIVISION.CONFIGRATIONSECTION.INPUT-OUTPUTSECTION.FILE-CONTROL.SELECTINPUT-FILEASSIGNTOFILE1ORGANIZATIONISSEQUENCIALACCESSMODEISSEQUENCIALFILE-STATUSISWS-INPUT-FILE-STATUS.SELECTOUTPUT-FILEASSIGNTOP-FILEORGANIZATIONISSEQUENCIALACCESSMODEISSEQUENCIALFILE-STATUSISWS-OUTPUT-FILE-STATUS.DATADIVISION.FILL

40、ESECTION.FDINPUT-FILELABELRECORDISSTANDARD.01IN-REC.05DATEPIC9(8).05PROD-CODEPIC9(6).05CUSTOMER-CODEPICX(4).05QUANTITYPIC9(4).05UNIT-PRICEPIC9(4).FDOUTPUT-FILELABELRECORDISSTANDARD.01OUT-REC.05DATEPIC9999B99B99.05FILLERPICX(5).05PROD-CODEPIC9(6).05FILLERPICX(5).05CUSTOMER-CODEPICX(4).05FILLERPICX(5).05QUANTITYPICZZZ9.05FILLERPICX(5).05UNIT-PRICEPIC$(5).05FILLERPICX(5).05SALES-VALUEPIC

溫馨提示

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

評論

0/150

提交評論