




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、第一章 關(guān)于COBOL的初步知識一. COBOL語言的特點 COBOL是Common Business-Oriented Language(公用面向商業(yè)的語言)的縮寫,主要供數(shù)據(jù)處理、數(shù)據(jù)收集及分析之用。COBOL自60年代初開始廣泛應(yīng)用于計算機應(yīng)用領(lǐng)域(商業(yè)和其他領(lǐng)域)。事實上,除了商業(yè)之外,各種管理工作都廣泛使用COBOL,如各種統(tǒng)計工作,財會工作,企業(yè)計劃編制,作業(yè)制度,情報檢索,人事管理等。COBOL針對商業(yè)世界的使用,是真正商用應(yīng)用程序開發(fā)的首選語言。1 適于數(shù)據(jù)處理領(lǐng)域。2 采用英語語法的高級語言,可讀性、可維護性、可移植性較強。3 通用性強,標(biāo)準(zhǔn)化程度較高。4 結(jié)構(gòu)嚴(yán)謹(jǐn),層次分明
2、。5 缺點是比較繁瑣。二 最簡單的COBOL程序介紹例:IDENTIFICATION DIVISION.(標(biāo)識部)PROGRAM-ID. EXAM1.(程序標(biāo)識段)ENVIRONMENT DIVISION.(設(shè)備部)DATA DIVISION.(數(shù)據(jù)部)PROCEDURE DIVISION.(過程部)A. DISPLAY THIS IS A COBOL PROGRAM. STOP RUN.例:IDENTIFICATION DIVISION.(標(biāo)識部)PROGRAM-ID. EXAM.(程序標(biāo)識段)ENVIRONMENT DIVISION.(設(shè)備部)DATA DIVISION.(數(shù)據(jù)部)WORK
3、ING-STORAGE SECTION.(工作單元節(jié))77 A PICTURE IS 9(3).(對進行描述)77 B PICTURE IS 9(3).(對進行描述)PROCEDURE DIVISION.(過程部)S. ACCEPT A.(輸入值) ACCEPT B.(輸入值)ADD A TO B.(A+B->B)DISPLAY A,B.(顯示和值) STOP RUN. 三 COBOL程序的結(jié)構(gòu)1 部每個程序都包括四個部:IDENTIFICATION DIVISION (標(biāo)識部)提供程序的一般性文檔說明,主要用來指定源程序名。ENVIRONMENT DIVISION (環(huán)境部)列出程序中
4、所用到的文件。程序中不需要外部文件時,環(huán)境部為空,也可以省略部標(biāo)題。DATA DIVISION (數(shù)據(jù)部)程序中所用到的全部數(shù)據(jù)(包括:文件數(shù)據(jù)-用于輸入輸出、靜態(tài)數(shù)據(jù)、參數(shù)等)都應(yīng)在數(shù)據(jù)部中說明它們的類型和所占內(nèi)存的情況。PROCEDURE DIVISION (過程部)包含構(gòu)成程序的過程性語句,用來給出程序要執(zhí)行的指令,使計算機產(chǎn)生相應(yīng)的操作。2 節(jié)和段 標(biāo)識部下只有各個段。除標(biāo)識部以外,每個部下可以有若干個節(jié)(SECTION),每個節(jié)以“節(jié)頭”作標(biāo)識。每個節(jié)下又可包括若干段(PARAGRAPH),每個段用“段名”標(biāo)識。各個段內(nèi)有各種COBOL元素。3 句子,語句和子句 在過程部中,每一段由
5、若干個句子(Sentence)組成。一個句子是以英文句號來結(jié)束的。句子又由語句(Statement)組成。一個語句中又可以包含若干個子句(Clause)。 注意:部標(biāo)題、節(jié)標(biāo)題、段名、數(shù)據(jù)項目描述及句子后必須用英文句號結(jié)束,否則程序無法編譯。4 描述體(描述款目)在數(shù)據(jù)部中有若干個節(jié),每個節(jié)中有若干個描述體,每個描述體又有若干個子句構(gòu)成。四 源程序的書寫格式1 16列,為“序號區(qū)”,為6位整數(shù)序號,不是程序本身的內(nèi)容。序號不是必須的,但其所占區(qū)域要保留。2 第7列,為“指示符區(qū)(續(xù)行標(biāo)志區(qū))”。連接符“-”表示本行是緊接在上一行的后面?!?”或“/”表示本行為注釋行?!癉”表示本行為調(diào)試行。3
6、 811列,為“A區(qū)”,部頭,節(jié)頭,段頭,層號01,層號77以及文件描述符FD,程序結(jié)束標(biāo)題等應(yīng)從A區(qū)開始書寫,但不一定從第8列開始寫。4 1272列(現(xiàn)在有時廠家規(guī)定可到80列),為“B”區(qū),過程部中的句子只能從B區(qū)開始書寫。5 7380列,為“注釋區(qū)”。在寫程序時,應(yīng)注意以下幾點:1大寫或小寫字母均可,習(xí)慣用大寫字母。2相鄰的兩個字之間必須留一個以上的空格。3運算符和等號左右兩邊必須各留一個空格。4逗號,句號,分號的左邊不能留空格,而右邊應(yīng)有空格。五 COBOL字符和COBOL單字 COBOL字符集包括以下字符: 09, az, AZ, + - * / = , . ; ” ( ) <
7、 > $空格 : COBOL單字分三種:保留字、用戶自定義字及系統(tǒng)名稱。 COBOL單字的規(guī)則如下:1 字長為130個字符之間。2 只能由字母,數(shù)字和連字符“-”組成,第一個和最后一個字符不能用連字符。3 字中不能出現(xiàn)空格。4 小寫字母與大寫字母等價。5 不能用保留字作為用戶定義字和系統(tǒng)名稱,但用戶定義字和系統(tǒng)名稱可以用同一個單詞。用戶自定義字:文件、數(shù)據(jù)、標(biāo)號、程序等所取的名稱。系統(tǒng)名稱:COBOL保留字,用于與操作環(huán)境通信,又COBOL廠家定義。分為:Computer name、Implementers name、Language name。保留字:有300多個。如:+、ACCEPT
8、、ADD、BEFORE、DATA。六 常量1 數(shù)值常量(數(shù)字直接數(shù)) 例: 123, +45.67, -89.652 非數(shù)值常量(非數(shù)字直接數(shù)):字符串內(nèi)的引號用兩個連續(xù)引號表示。 例:abcd, Expired,3 象征常量:用保留字表示某些常用常量(直接數(shù))。例:ZERO ZEROS ZEROES SPACE SPACES HIGH-VALUE HIGH-VALUES LOW-VALUE LOW-VALUES QUOTE QUOTES ALL 常量七.處理數(shù)據(jù)的特點:層次的概念;記錄和文件的概念。八 程序文本的復(fù)制與替換操作1. COPY語句COPY語句用COBOL源文本text-name
9、替換從COPY字開始到終止句號之前的內(nèi)容。2. REPLACE語句 REPLACE語句將COBOL源程序某個段中的文本進行替換。替換從REPLACE語句的第一個格式開始,到REPLACE OFF 語句結(jié)束。第二章 標(biāo)識部和環(huán)境部一 標(biāo)識部(IDENTIFICATION DIVISION)(一)必寫部分IDENTIFICATION DIVISION.PROGRAM-ID. 程序名.(二)任選部分 一般格式: AUTHOR. 作者姓名INSTALLATION. 設(shè)計這個程序的公司或部門。DATE-WRITTEN. 編寫日期,可記入修訂史,修改日期、原因及人員。DATE-COMPILED. 編譯日期
10、SECURITY. 保密程度的描述。 注:標(biāo)識部中的段標(biāo)題只能按部描述中指定的順序出現(xiàn)。3. 環(huán)境部(ENVIRONMENT DIVISION)環(huán)境部指定程序中與特定計算機或操作系統(tǒng)相關(guān)的方面,指明用到哪些設(shè)備,哪些文件,將程序中用到的內(nèi)部文件名與外部文件(或外部設(shè)備)聯(lián)系起來。如果程序不需要任何環(huán)境部提供的項目,則可以省略環(huán)境部。一般格式:ENVIRONMENT DIVISION.CONFIGURATION SECTION. 配置節(jié)SOURCE-COMPUTER.OBJECT-COMPUTER.SPECIAL-NAMES.INPUT-OUTPUT SECTION. 輸入/輸出節(jié)FILE-CO
11、NTROL.I-O-CONTROL.1 配置節(jié)包括SOURCE-COMPUTER, OBJECT-COMPUTER和SPECIAL-NAMES(專用名段)。SOURCE-COMPUTER段標(biāo)識編譯程序的計算機。若該段省略,則編譯程序的計算機是源計算機。如果指定WITH DEBUGGING MODE 從句,則編譯所有源調(diào)試行,否則把調(diào)試行作為說明語句。OBJECT-COMPUTER段標(biāo)識編譯程序運行的計算機。SPECIAL-NAMES段用于把系統(tǒng)中原規(guī)定的一些設(shè)備名或功能名或符號改為用戶自己指定的名字或符號。SPECIAL-NAMES. CLASS REAL-NUMBER IS012345678
12、9+-.-可用于類條件測試 DECIMAL-POINT IS COMMA. -逗號用作小數(shù)點,句號用作編輯符 CURRENCY SIGN IS “Y”. -表示貨幣符號的字符,DEFAULT$2 輸入輸出節(jié)輸入輸出節(jié)只用于文件,它把內(nèi)部文件與外部文件(包括外部設(shè)備)聯(lián)系起來。它有兩個段:文件控制段:FILE-CONTROL段是給文件命名,指出存放該文件的外部設(shè)備及其他有關(guān)文件控制信息。對每個文件包含一個項目。FILE-CONTROL. SELECT FILE-1 ASSIGN TO “FILE-1.TXT”. SELECT FILE-2 ASSIGN TO DISK. SELECT FILE-
13、3 ASSIGN TO PRINTER. 輸入輸出控制段: I-O-CONTROL段包含定義程序返回點,不同文件共享的內(nèi)存區(qū)和多文件卷中文件位置的項目。第三章 數(shù)據(jù)部一 數(shù)據(jù)部的節(jié) 數(shù)據(jù)部包含程序引用的所有數(shù)據(jù)的定義,如文件記錄、變量、表格和報表。COBOL將數(shù)據(jù)部分成節(jié),每個節(jié)是可選的,但程序中的節(jié)應(yīng)按指定順序定義。DATA DIVISION.FILE SECTION. 文件節(jié)WORKING-STORAGE SECTION. 工作存儲節(jié)LINKAGE SECTION . 連接節(jié)COMMUNICATION SECTION. 通信節(jié)REPORT SECTION. 報表節(jié)1 文件節(jié)程序中每一個輸入
14、或輸出文件都要在文件節(jié)中定義。包括:(1) 文件名和文件屬性。(2) 文件中包括的記錄名。(3) 每個記錄中數(shù)據(jù)的層次關(guān)系。(4) 記錄中各數(shù)據(jù)項的數(shù)據(jù)形式和占內(nèi)存的大小。DATA DIVISION. (數(shù)據(jù)部)FILE SECTION. (文件節(jié))FD FILE-1. (文件名) LABEL RECORD IS OMITTED DATA RECORD IS STUDENT-SCORE. 01 STUDENT-SCORE. (記錄名) 03 NAME PIC X(10). 03 NUM PIC 9(06).03 CORUSE-SCORE.05 CORUSE-1 PIC 9(03).05 COR
15、USE-2 PIC 9(03).05 CORUSE-3 PIC 9(03).2 工作存儲節(jié)包含程序所需的臨時結(jié)果和初始化靜態(tài)數(shù)據(jù)的數(shù)據(jù)定義。WORKING-STORAGE SECTION.77 X PIC S99 VALUE -21.01 A PIC 9(08).01 B. 03 B1 PIC X(04). 03 B2 PIC X(02). 03 B3 PIC X(02).3 連接節(jié)本節(jié)只用于子程序,包含調(diào)用程序傳遞的數(shù)據(jù)(即參數(shù))。LINKAGE SECTION.01 LCMIN. COPY RCI001.01 LCMOT. COPY RCJ001.4 通信節(jié)通信節(jié)描述作為程序間接口的數(shù)據(jù)和
16、消息控制系統(tǒng),用以實現(xiàn)與通信設(shè)備相關(guān)的消息分析的COBOL方法。屬過時部分,很少使用。5 報表節(jié)報表節(jié)描述實現(xiàn)COBOL報告編寫工具的系統(tǒng)所需的數(shù)據(jù)。 REPORT SECTION.RD EMPLOYEE-REPORT PAGE LIMIT 60 LINES HEADING 1 FOOTING 58 FIRST DETAIL 3.二COBOL數(shù)據(jù)的類型及層次 (一)數(shù)據(jù)類型 (1)numeric(數(shù)字)(2)numeric-edited(數(shù)字編輯)(3)alphabetic(字母)(4)alphanumeric(字母數(shù)字)(5)alphanumeric-edited(字母數(shù)字編輯)所有數(shù)據(jù)類型
17、缺省作為字符串存放在內(nèi)存中,唯一可以用不同方式存儲的數(shù)據(jù)類別是數(shù)字型數(shù)據(jù)(通過USAGE子句)。對數(shù)字型數(shù)據(jù)制訂不同方式存儲,提高計算效率。 (二)數(shù)據(jù)的層次和層號 COBOL中把有從屬關(guān)系的數(shù)據(jù)用層次關(guān)系來描述。數(shù)據(jù)的層次結(jié)構(gòu)是:記錄組合項基本項。層次規(guī)定如下:(1)用來描述數(shù)據(jù)的層次結(jié)構(gòu)的層號從01開始,到49結(jié)束,即可用的層號為0149。(2)從屬項的層號比其上屬項的層號高。(3)如果幾個數(shù)據(jù)項都從屬于同一組合項但互不從屬,則這幾個數(shù)據(jù)項應(yīng)具有相同的層號。(4)77層項目用于某個組的數(shù)據(jù)項,如程序中的臨時變量。(5)66層和88層是特殊層。88層是對特殊數(shù)據(jù)項目條件名保留的。(在講過程部
18、的條件語句時再詳細(xì)介紹。)66層是用于更明現(xiàn)有數(shù)據(jù)項或數(shù)據(jù)項組。(講RENAMES語句時再介紹。) (三)限定數(shù)據(jù) (四)FILLER關(guān)鍵字 需要定義部分記錄,但這部分在程序中永遠(yuǎn)不會用到,則可用保留字FILLER占有這個記錄部分的位置。舉例:一個打印用的記錄行,有固定的空格時。 如果組項目不需按名稱引用,則可以用FILLER關(guān)鍵字作為數(shù)據(jù)名,不用生成組名,但FILLER組名中定義的每個數(shù)據(jù)項應(yīng)當(dāng)唯一。三. 數(shù)據(jù)部用子句(一)PIC子句PIC是PICTURE的縮寫,PIC子句用來描述每一個基本數(shù)據(jù)項,定義基本項目的具體長度、格式和數(shù)據(jù)類型。01 A. 03 A1 PIC 9999. 03 A2
19、 PIC AAAA. 03 A3 PIC XXXX. (A)字母數(shù)據(jù)字母數(shù)據(jù)限于字母表中使用的字符和空格符,用A描述符表示,每個字符用一個A表示。01 X PIC A(4).MOVE AB C TO X.(B) 字符數(shù)據(jù)(字母數(shù)字)字符數(shù)據(jù)可以包含計算機字符集中的任何字符。字符數(shù)據(jù)項目的格式字符串可用用A、 X、 9表示,至少要包含一個X,是非數(shù)值類型的,不能用于運算。01 X PIC X(4).01 Y PIC X(8).01 Z PIC A(5)X9(2).MOVE BOOK TO XMOVE 1234 TO XMOVE COBOL-85 TO YMOVE COBOL-85 TO Z(C)
20、 字符編輯數(shù)據(jù)(字母數(shù)字)要把字符數(shù)據(jù)格式化成特定形式,則可以用字符編輯數(shù)據(jù)。字符編輯數(shù)據(jù)用特定字符表示格式。字符編輯數(shù)據(jù)項目的格式字符串可用A、 X、 9、B、0和/ 表示,至少要有一個A或X和一個B(空格)或0(0)或/(斜杠)。01 EDITED-DATE PICTURE IS 99/XXX/9999.MOVE 05May1909 TO EDITED-DATE 則EDITED-DATE的值為05/May/1909 (D)數(shù)字?jǐn)?shù)據(jù)數(shù)字?jǐn)?shù)據(jù)由數(shù)字組成,包括其隱含的小數(shù)點和操作符號,表示的是實際數(shù)字值, 可用于數(shù)據(jù)運算。數(shù)字?jǐn)?shù)據(jù)只能包含字符9,V,S和P的組合,至少要有一個9,最多18個9,至
21、少一個V和S。1“9”描述符 表示數(shù)字存放位置, 不能放入空格,不能表示小數(shù)和負(fù)數(shù)。算進項目長度中。 描 述 數(shù)值 內(nèi)存中表示 長度 數(shù)值范圍 01 X PIC 999 123 123 3 0999 01 Y PIC 9(4) 4567 4567 4 09999 01 Z PIC 99 12.34 12 2 01 T PIC 99 -12.34 12 22“V”描述符 指出在數(shù)據(jù)中隱含的小數(shù)點的位置,不占內(nèi)存,不算進項目長度中。運算時按隱含的小數(shù)點位置對準(zhǔn)進行運算。顯示時只顯示內(nèi)存中的內(nèi)容,不顯示小數(shù)點。不包含V的項目假設(shè)的小數(shù)點位于最右邊。 描 述 數(shù)值 內(nèi)存中表示 長度 數(shù)值范圍 01 X
22、 PIC 99V99. 87.5 8750 4 0.0099.99 01 Y PIC 9(3)V9(2). 781 78100 5 0.000999.99 01 Z PIC V999 1.234 234 3 01 T PIC 999V 123 123 33“P”描述符 表示數(shù)據(jù)項的比例因子,不占內(nèi)存,不算進項目長度中。當(dāng)數(shù)值很大,前面或后面若干位為0,為了節(jié)省內(nèi)存可以用“P”描述符。P只能出現(xiàn)在開頭或末尾,而不能同時在兩處出現(xiàn)。顯示時只顯示內(nèi)存中實際存放的數(shù)字而不顯示隱含的P(即0)。 描 述 數(shù)值 內(nèi)存中表示 長度 數(shù)值范圍 01 X PIC 9P(4). 10000 1 1 19*1000
23、0 01 Y PIC PPP99. 0.00023 23 2 0.000010.000994“S”描述符 表示一個帶符號的數(shù),符號不算如項目長度中,除非包括SIGN IS SEPARATE 從句。如有S則必須是最左邊一個描述符。如無S則總是表示為正值。 描 述 數(shù)值 內(nèi)存中表示 長度 數(shù)值范圍 01 X PIC S9(3)V9(2) 126.89 12689 5 -999.99999.99 01 Y PIC S9(3)V9(2) -1126.897 12689 5(E) 數(shù)字編輯數(shù)據(jù)為了使輸出數(shù)據(jù)更易讀,可以定義數(shù)字編輯數(shù)據(jù)。數(shù)字編輯數(shù)據(jù)可以用于顯示數(shù)字,但所有計算中只能用數(shù)字?jǐn)?shù)據(jù)。數(shù)字編輯數(shù)
24、據(jù)項目的格式字符串只能包含字符9、Z、B、0、/、P、V、,、。、*、+、-、CR、DB的組合。它必須包含118個9字符,包含至少一個除9、P、V以外的字符。1“.”描述符表示插入小數(shù)點的位置,只能在格式字符串中使用一次,不能與V和P同時使用。01 W PIC 9(3).9(2).01 V PIC 9(3)V9(2). MOVE 123.45 TO V MOVE V TO W 錯誤:01 W PIC S9(3).9(2).2“,”描述符表示插入逗號的位置,盡管它通常作千位分隔符,但也可以插入格式字符串其他地方。 01 W PIC 999,999.99. MOVE 123456.78 TO W
25、輸出表示: 123,456.783“0”描述符表示插入0。4“B”描述符表示插入空格。01 W PIC 9(3).01 V PIC B9(3)B.MOVE 123 TO W.MOVE W TO V.5“+”或“-”描述符表示在輸出的數(shù)值前(或后)加正號或負(fù)號。當(dāng)用“+”時,不論數(shù)值為正或負(fù)一律加符號。當(dāng)用“-”時,當(dāng)數(shù)值為正時,數(shù)值前空一格,數(shù)值為負(fù)時,加一負(fù)號。01 X PIC S99.01 Y PIC +99.01 Z PIC -99.01 U PIC 99+.01 V PIC 99-.6插入“$”01 A PIC $999.99.01 B PIC +$999.99.01 C PIC -$
26、999.99.7浮點插入形式(浮動插入正負(fù)號和“$”)“$”, “+” , “-”的位置是浮動的,能夠使符號緊挨著數(shù)字之前輸出。在編輯型數(shù)據(jù)的描述中,指定浮動插入的字符個數(shù)應(yīng)足夠,以免數(shù)據(jù)被截斷。浮動字符前不能再出現(xiàn)其它符號,即浮動字符應(yīng)為第一個描述字符。01 A1 PIC S9(3)V99.01 A2 PIC +.99.01 A3 PIC $.99.01 A4 PIC +.+.01 A5 PIC $.$. 錯誤: 01 A1 PIC +$.99.8零抑制格式(取消高位零,用“Z”和“*”描述符)01 A1 PIC S9(3)V99.01 A2 PIC ZZZZ.99.01 A3 PIC *.
27、99.(1) 不能同時用Z浮動和+,-, $浮動 錯誤: ZZ$9.99 或 +ZZ.99(2)單個的+, -, $可以與Z或*連用01 A1 PIC +ZZZ.99.01 A2 PIC -*(3).99.01 A3 PIC $ZZZ.99.(3)如果使“Z”或“*”對應(yīng)與所有的數(shù)字字符,當(dāng)數(shù)值為0時,則所用數(shù)字位全部由空格或*代替。小數(shù)點位置上,由空格代替(用Z時),或保留“.”(用*時)。01 A1 PIC ZZZ.ZZ.01 A2 PIC *.*.(4)可與“,”連用 01 A1 PIC Z,ZZZ.99.9插入“DB”和“CR”字符 DB(DEBIT,借方)和CR(CREDIT,貸方)
28、只能用作固定插入,而且只作最后一個描述符號。當(dāng)數(shù)值為負(fù)時,在編輯型數(shù)據(jù)項中最后兩個字節(jié)中置DB或CR,數(shù)值為正時,此兩字節(jié)留空格。01 A1 PIC $9(3).99DB.01 A2 PIC $999.99CR.10PIC子句小結(jié) 描述字符 含義 9 表示一個數(shù)字位置 A 表示一個字母位置 X 表示一個字符位置 V 表示隱含的小數(shù)點位置 S 表示數(shù)值數(shù)據(jù)帶符號 P 表示十進比例換算 $ 插入貨幣號 . 插入小數(shù)點位置 , 插入逗號位置 + 一律加符號 - 對負(fù)數(shù)加負(fù)號,對正數(shù)前留一空格 Z 取消高位零,用空格代替 * 取消高位零,用*代替 B 插入空格 0 插入零 DB(借方) 數(shù)據(jù)為負(fù)時,在
29、數(shù)據(jù)后面插入DB,為正時,空兩格 CR(貸方) 數(shù)據(jù)為負(fù)時,在數(shù)據(jù)后面插入CR,為正時,空兩格(二) REDEFINES子句REDEFINES子句可以用不同數(shù)據(jù)描述同一計算機內(nèi)存,適用于基本數(shù)據(jù)項和組數(shù)據(jù)項。層號 數(shù)據(jù)名1 REDEFINES 數(shù)據(jù)名2 02 A.03 A1 PIC 9(4).03 A2 PIC X(6).03 A3 PIC X(4).02 B REDEFINES A.03 B1 PIC X(5).03 B2 PIC 9(6).03 B3 PIC 99V9.02 C REDEFINES A.03 C1 PIC X(5).03 C2 PIC X(4).03 C3 PIC X(5)
30、. 規(guī)則:(1)數(shù)據(jù)名2與數(shù)據(jù)名1的層號必須相同。內(nèi)存中的值為數(shù)據(jù)名1和數(shù)據(jù)名2共享。(2)用REDEFINES子句的描述體應(yīng)緊跟在被重新定義的數(shù)據(jù)項的描述之后,中間不能插入其它項的說明。當(dāng)進行多次重定義,必須緊跟出現(xiàn),而且要求使用最初定義的數(shù)據(jù)名。(3)不能用于文件節(jié)或報表節(jié)的01層,可用于工作單元節(jié)的01層。(4)用REDEFINES子句可以改變數(shù)據(jù)的結(jié)構(gòu),REDEFINES從句定義的區(qū)域長度應(yīng)小于等于原區(qū)域長度。(5)REDEFINES子句應(yīng)在其它子句之前。(6)使用REDEFINES子句的數(shù)據(jù)項不能使用VALUE子句賦初值。(7)數(shù)據(jù)名2不能包含OCCURS子句。 03 A PIC X
31、(8) VALUE ABCDEFGH. 03 B REDEFINES A.05 B1 PIC X(4). 05 B2 PIC X(4).(三)USAGE子句USAGE子句可以指定計算機內(nèi)存中的數(shù)據(jù)項格式,充分利用計算機內(nèi)存空間和算術(shù)功能。USAGE子句不影響項目的使用(但過程部的有些語句將某些操作數(shù)限于某種USAGE從句)。USAGE子句可以用于基本和組數(shù)據(jù)項目。 USAGE IS BINARYDISPLAY COMPUTATIONAL COMP COMPUTATIONAL-1 COMP-1 COMPUTATIONAL-2 COMP-2 COMPUTATIONAL-3 COMP-3 COMPU
32、TATIONAL-4 COMP-4 COMPUTATIONAL-5 COMP-5 INDEX PACKED-DECIMAL缺省為DISPLAY。BINARY、COMPUTATIONAL、PACKED-DECIMAL只用于數(shù)字?jǐn)?shù)據(jù)項。BINARY指定項目存放成二進制數(shù)。在PIC子句中描述字符9的個數(shù)為14時,占內(nèi)存字節(jié)為2;個數(shù)為59時,占內(nèi)存字節(jié)為4;個數(shù)為1018時,占內(nèi)存字節(jié)為8。COMPUTATIONAL由廠家定義。大多選擇與BINARY相同。COMPUTATIONAL-1由廠家定義。大多定義為單精度內(nèi)部浮點數(shù)字項,用內(nèi)存4Byte。(不用PIC)COMPUTATIONAL-2由廠家定義
33、。大多定義為雙精度內(nèi)部浮點數(shù)字項,用內(nèi)存8Byte。(不用PIC)PACKED-DECIMAL指定數(shù)字按縮和十進制存放,以減少每個數(shù)字的存儲量。每個數(shù)字4位或每個字節(jié)表示2個數(shù)字。符號也占半個字節(jié),放在最后面(無符號,用1111;+號,用1100;-號,用1101)。COMPUTATIONAL-3由廠家定義。大多選擇與PACKED-DECIMAL一致。COMPUTATIONAL-4由廠家定義。大多選擇與PACKED-DECIMAL一致。COMPUTATIONAL-5由廠家定義。類似于USAGE COMP,但與在某些平臺上的字節(jié)順序相反。在支持小尾字節(jié)順序的平臺上,COMP-5執(zhí)行速度更快。(C
34、OMP-X類似于COMP-5,但按大尾字節(jié)順序存放。)INDEX用法是特殊用法,指定用該項目作為表格索引。采用INDEX用法的項目只能在過程部的某些語句中,不能有PIC從句。注:USAGE從句用于組層時作用于組中每個基本項目。如用BINARY時,組中的所有基本項目都要用數(shù)字。03 A PIC 9(4) COMP.03 B PIC 9(4).03 C COMP.05 C1 PIC S9(3).05 C2 PIC S9(6).(四)SIGN子句 SIGN子句可以指定格式字符串包含S字符的數(shù)字?jǐn)?shù)據(jù)項中符號的位置。 SIGN IS LEADING SEPARATE CHARACTER TRAILING
35、 通過LEADING或TRAILING 來指定符號在數(shù)字的第一位(LEADING)或最后一位(TRAILING)。符號的具體表示由廠家指定。 如果有SEPARATE子句,則符號用標(biāo)準(zhǔn)字符+或-表示,符號位記入數(shù)據(jù)項的長度。(五)OCCURS子句 OCCURS子句指定數(shù)據(jù)項為固定項目數(shù)或可變項目數(shù)的表格(即數(shù)組)。OCCURS子句不能用于01和77層,可以用于基本或組數(shù)據(jù)項目。詳細(xì)內(nèi)容見表格處理。(六)SYNCHRONIZED子句 SYNCHRONIZED子句指定基本數(shù)據(jù)項在計算機內(nèi)存自然邊界上的對齊。 指定SYNCHRONIZED子句時的具體效果由廠家指定??蓞⒖唇炭茣?5章。(七)JUST
36、IFIED子句 JUSTIFIED子句(簡稱JUST)只能用于非編輯的字母數(shù)字基本數(shù)據(jù)項。即數(shù)據(jù)放進這個項目時,它與最右邊的字符對齊。數(shù)據(jù)太長時左邊截尾,太短時則左邊填充。標(biāo)準(zhǔn)規(guī)則為與最左邊的字符對齊并在右邊截尾或填充。(八)BLANK WHEN ZERO子句BLANK WHEN ZERO子句只能用于數(shù)字型或數(shù)字編輯型的基本項。使用時,當(dāng)數(shù)據(jù)項的值為零時,內(nèi)容改變?yōu)榭崭瘛?3 A PIC $(5).99 BLANK WHEN ZERO.03 B PIC Z,ZZ9.99 BLANK WHEN ZERO.03 C PIC *.* BLANK WHEN ZERO.(BLANK子句不起作用)(九)賦
37、初值子句(VALUE 子句) 程序中的數(shù)據(jù)往往需要賦初值,可以用VALUE子句來實現(xiàn)。 01 A1 PIC 99 VALUE 12. 01 A2 PIC X(5) VALUE COBOL. 01 A3 PIC S99V99 VALUE -12.34. 01 T. 03 A4 PIC 9(6) VALUE ZERO. 03 A5 PIC X(6) VALUE SPACES. 03 A6 PIC X(6) VALUE ALL A.03 A7 VALUE 1234. - 組項目被初始化了,則下屬項目不能有05 A71 PIC 99. VALUE子句。 05 A72 PIC 99.四66層RENAME
38、S項目用66層RENAMES項目可以在不改變數(shù)據(jù)項的長度的前提下,重新定義數(shù)據(jù)區(qū)的名稱和數(shù)據(jù)結(jié)構(gòu)的形式。原各基本項的類型和長度不變。即是說該格式可以更名現(xiàn)有數(shù)據(jù)項或數(shù)據(jù)項組,或以原定以未允許的方式組合。66 數(shù)據(jù)名1 RENAMES 數(shù)據(jù)名2 THRU 數(shù)據(jù)名3 01 A. 03 B05 G05 H 03 C05 I05 J03 D03 E 03 F66 K RENAMES G THRU I.66 M RENAMES B THRU C.66 N RENAMES E.(1)層號只能用66,它必須緊跟在01層記錄中最后一個數(shù)據(jù)描述體之后。(2)只能用于工作單元節(jié)中,不能用于文件節(jié)中。(3)指定數(shù)據(jù)
39、名3時,數(shù)據(jù)名3必須在數(shù)據(jù)名2后面定義,不能從屬于數(shù)據(jù)名2。此時數(shù)據(jù)名1是一組項目。第四章 過程部一簡介過程部是COBOL程序的最后一個部分。包含程序運行時要執(zhí)行的所有語句。以PROCEDURE DIVISION開頭,包含對數(shù)據(jù)操作的程序邏輯。過程部的組件包括語句、句子、段和節(jié)。(1) 語句(statement):以動詞開頭的單詞、直接數(shù)和分隔符的組合。語句應(yīng)一律從B區(qū)(12列開始)開始寫,續(xù)行也應(yīng)從B區(qū)開始。(2) 句子(sentence):以英文句號(.)結(jié)尾的一系列語句。(3) 段(paragraph):由段名、句號分隔符和零或幾條句子組成。段的最后一條語句要用英文句號結(jié)束。(4) 節(jié)(
40、section):由節(jié)標(biāo)題加上保留字SECTION和分隔符句號。注:段名應(yīng)在節(jié)中保持唯一性、節(jié)名應(yīng)在程序中保持唯一性。段名不能與節(jié)名重復(fù)。引用段名時可以用所屬的節(jié)限定如下:GO TO PARA-1 IN SECTION-22.例1:PROCEDURE DIVISION. (過程部頭)A SECTION. (A節(jié))A1. MOVE 1 TO I. (A1段) MOVE 2 TO J.A2. ADD I TO J. (A2段)B SECTION. (B節(jié))例2:PROCEDURE DIVISION.DISPLAY HOW DO YOU DOSTOP RUN.例3:MOVE 100 TO X.ADD
41、 Y TO Z.IF X > 100 GO TO FINISH.二算術(shù)運算語句1 加法語句(ADD 語句)ADD A TO B A + B BADD 15 TO C 15 + C CADD A, B TO C A + B + C CADD 15, 25 TO C 15 + 25 + C CADD A, B GIVING C A + B CADD 15, 25 GIVING C 15 + 25 CADD A, B TO C, D A + B + C C, A + B + D D2 減法語句(SUBTRACT語句)SUBTRACT B FROM A A B A SUBTRACT B, C F
42、ROM A A B C A SUBTRACT B, C FROM A, T A B C A, T B C T SUBTRACT B, C FROM A GIVING X A B C X3乘法語句(MULTIPLY 語句) MULTIPLY A BY B A * B B MULTIPLY A BY B GIVING C A * B C MULTIPLY A BY B, C A * B B, A * C C4除法語句(DIVIDE語句) DIVIDE A INTO B B / A B DIVIDE A INTO B GIVING C B / A C DIVIDE A BY B GIVING C A
43、 / B C DIVIDE A BY B GIVING C REMAINDER D A / B 商C, 余數(shù)D REMAINDER子句 :取得余數(shù)。存放余數(shù)的數(shù)據(jù)項可以時數(shù)字或數(shù)字編輯數(shù)據(jù)項。余數(shù)計算取決于每個操作數(shù)的符號和小數(shù)點位置。 例: 77 Q PIC S99V9. 77 R PIC S99V9. DIVIDE 3 INTO 7 GIVING Q REMAINDER R Q=2.3 R=0.15計算語句(COMPUTE語句) COMPUTE語句可以進行復(fù)雜的四則運算,也可實現(xiàn)指數(shù)運算。 COMPUTE T = (A + B) * C / D COMPUTE T = X * 2 COMP
44、UTE T = 1 / (1 / A + 1 / B) 運算次序:()單邊運算符、例1:IDENTIFICATION DIVISION.PROGRAM-ID EX1.ENVIRONMENT DIVISION.DATA DIVISION.WORKING-STORAGE SECTION.77 X PIC 9999.77 A PIC 9977 B PIC 99.77 C PIC 99.PROCEDURE DIVISION. ACCEPT A. ACCEPT B. ACCEPT C. COMPUTE X = (A + B) / C. DISPLAY X. STOP RUN.6四舍五入處理(ROUNDE
45、R子句) 接收項目后邊的ROUNDER短語表示運算產(chǎn)生的數(shù)值先進行四舍五入處理再存入接收項目中。對多個接收項目,舍入處理對各個項目獨立進行。 ADD A, B TO C ROUNDER ADD A, B, C TO D, E ROUNDER, F ROUNDER7長度溢出處理(ON SIZE ERROR短語) 結(jié)果絕對值大于接收項目最大存儲能力時,會發(fā)生SIZE ERROR條件。01 A PIC 9V9 VALUE 1.2.1 B PIC 9V9 VALUE 9.0.01 C PIC 9V9. MULTIPLY A BY B GIVING C ON SIZE ERROR DISPLAY SIZ
46、E ERROR.8帶CORRESPONDING子句的算術(shù)運算語句(數(shù)據(jù)項同名時編寫多條語句的縮寫方法。) 算術(shù)運算語句中的ADD和SUBTRACT語句除了可以用來使兩個或多個單個的數(shù)據(jù)項進行運算外,還可以用來使兩個組合項中的對應(yīng)項進行加,減運算。進行運算的各項必須是數(shù)值型初等項。(數(shù)據(jù)項目不一定要格式相同。數(shù)據(jù)項的順序也無關(guān)緊要。) 02 A. 02 B.03 A1 PIC 9(3). 03 A1 PIC 99V99.03 A2 PIC 99V99. 03 A2 PIC 9V9.03 A3 PIC 9V9. 03 A3 PIC 99V99.ADD CORR A TO B.三傳送語句(MOVE語句)MOVE語句用來實現(xiàn)數(shù)據(jù)的
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 甘孜職業(yè)學(xué)院《大跨度空間結(jié)構(gòu)》2023-2024學(xué)年第二學(xué)期期末試卷
- 2025屆寧夏吳忠市高三上學(xué)期適應(yīng)性考試(一模)歷史試卷
- 2024-2025學(xué)年浙江省六校聯(lián)盟高一上學(xué)期期中聯(lián)考?xì)v史試卷
- 做賬實操-代理記賬行業(yè)的賬務(wù)處理分錄
- 長春大學(xué)旅游學(xué)院《幼兒舞蹈創(chuàng)編二》2023-2024學(xué)年第二學(xué)期期末試卷
- 2024-2025學(xué)年湖北省新高考聯(lián)考協(xié)作體高一上學(xué)期期中考試歷史試卷
- 濟南工程職業(yè)技術(shù)學(xué)院《信息安全基礎(chǔ)》2023-2024學(xué)年第二學(xué)期期末試卷
- 聊城大學(xué)東昌學(xué)院《病理學(xué)與病理生理學(xué)》2023-2024學(xué)年第二學(xué)期期末試卷
- 亳州職業(yè)技術(shù)學(xué)院《數(shù)據(jù)分析與可視化實驗》2023-2024學(xué)年第二學(xué)期期末試卷
- 萍鄉(xiāng)衛(wèi)生職業(yè)學(xué)院《文化人類學(xué)理論》2023-2024學(xué)年第二學(xué)期期末試卷
- 五年級上冊英語Module6Unit1Youcanplaybasketballwell外研社課件
- 工程施工派工單
- 編紙條 市賽獲獎 完整版課件
- 玩具公司職位說明書匯編
- 平面設(shè)計創(chuàng)意與制作課件
- 化學(xué)專業(yè)英語元素周期表
- 新湘版小學(xué)科學(xué)四年級下冊教案(全冊)
- Q∕SY 06349-2019 油氣輸送管道線路工程施工技術(shù)規(guī)范
- 實驗心理學(xué)課件(周愛保博士版)
- 04 第三章 環(huán)境污染物的生物轉(zhuǎn)運和生物轉(zhuǎn)化 -毒物動力學(xué)
- 珍愛生命 安全第一 中小學(xué)主題教育班會
評論
0/150
提交評論