【正文】
JUST)只能用于非編輯的字母數(shù)字基本數(shù)據(jù)項(xiàng)。(八)BLANK WHEN ZERO子句BLANK WHEN ZERO子句只能用于數(shù)字型或數(shù)字編輯型的基本項(xiàng)。 05 A72 PIC 99.四.66層RENAMES項(xiàng)目用66層RENAMES項(xiàng)目可以在不改變數(shù)據(jù)項(xiàng)的長(zhǎng)度的前提下,重新定義數(shù)據(jù)區(qū)的名稱和數(shù)據(jù)結(jié)構(gòu)的形式。(2)只能用于工作單元節(jié)中,不能用于文件節(jié)中。包含程序運(yùn)行時(shí)要執(zhí)行的所有語(yǔ)句。語(yǔ)句應(yīng)一律從B區(qū)(12列開始)開始寫,續(xù)行也應(yīng)從B區(qū)開始。(4) 節(jié)(section):由節(jié)標(biāo)題加上保留字SECTION和分隔符句號(hào)。存放余數(shù)的數(shù)據(jù)項(xiàng)可以時(shí)數(shù)字或數(shù)字編輯數(shù)據(jù)項(xiàng)。對(duì)多個(gè)接收項(xiàng)目,舍入處理對(duì)各個(gè)項(xiàng)目獨(dú)立進(jìn)行。進(jìn)行運(yùn)算的各項(xiàng)必須是數(shù)值型初等項(xiàng)。MOVE 123 TO AMOVE ZERO TO BMOVE SPACE TO CMOVE ’COBOL’ TO X, Y, Z1.同類型數(shù)據(jù)間的傳送規(guī)則。 發(fā)送項(xiàng)是數(shù)字型數(shù)據(jù),而接收項(xiàng)是編輯數(shù)字型數(shù)據(jù),則先將發(fā)送項(xiàng)中數(shù)據(jù)按接收項(xiàng)的描述要求進(jìn)行編輯,然后再傳送。如果發(fā)送項(xiàng)是數(shù)字,則必須是無(wú)符號(hào)整數(shù)。如果兩個(gè)組合項(xiàng)中包括的項(xiàng)不同,則只傳送同名的項(xiàng)。 ACCEPT 標(biāo)識(shí)符 [ FROM 助憶名 ]**助憶名應(yīng)與環(huán)境部SPECIALNAMES段中的硬件名相關(guān)聯(lián)。省略時(shí)為操作員控制臺(tái)。A1. ADD A TO C ON SIZE ERROR GOTO A2.A2. STOP RUN.六.字符串連接語(yǔ)句(STRING語(yǔ)句)STRING語(yǔ)句從一個(gè)或幾個(gè)發(fā)送數(shù)據(jù)項(xiàng)收集字符并將數(shù)據(jù)合成一個(gè)接收數(shù)據(jù)項(xiàng)。若取得的發(fā)送項(xiàng)的長(zhǎng)度小于接收項(xiàng),則接收項(xiàng)中沒有復(fù)制的字符位置保持不變。 UNSTRING A DELIMITED BY ’T’ OR ALL ’ ’ OR ’R’ INTO B DELIMITER IN QC DELIMITER IN PD ENDUNSTRING.4.POINTER短語(yǔ),指定從發(fā)送項(xiàng)某一指定位置開始傳送。八.檢測(cè)語(yǔ)句(INSPECT語(yǔ)句) INSPECT語(yǔ)句檢查數(shù)據(jù)項(xiàng)以計(jì)算該項(xiàng)目中某個(gè)字符串出現(xiàn)的次數(shù)或用另一個(gè)字符串替換該字符串。) MOVE ’AT**F,***,T’ TO A INSPECT A TALLYING N FOR ALL ’*’ AFTER ’T’ ( N = 5 ) ALL檢查匹配的字符或字符串個(gè)數(shù)。 INSPECT A TALLYING N FOR ALL ’*’ BEFORE ’,’ ( N = 2 ) BEFORE指定停止比較中斷,若沒發(fā)現(xiàn)指定的字符,則效果如同沒有指定BEFORE. 注意:如果在同一條INSPECT TALLYING 語(yǔ)句中組合CHARACTERS、ALL、LEADING,則檢查一個(gè)字符進(jìn)行,連續(xù)采用每個(gè)檢查標(biāo)準(zhǔn),檢查順序按INSPECT語(yǔ)句中指定的順序。 MOVE ’’ TO A INSPECT A REPLACING ALL ’0’ BY SPACE ALL ’.’ BY ’,’ ALL ’A’ BY ’B’ INSPECT A REPLACING FIRST ’0’ BY SPACE BEFORE ’.’ FIRST短語(yǔ)時(shí),只把第一個(gè)出現(xiàn)的字符當(dāng)作匹配。對(duì)象與目標(biāo)應(yīng)當(dāng)長(zhǎng)度相同,且對(duì)象中字符不能重復(fù)。用來(lái)表示條件變量當(dāng)前值的名字叫條件名,用層號(hào)88,緊跟在條件變量之后說(shuō)明。1.簡(jiǎn)單PERFORM格式 PERFORM 過程名1 [ THRU(THROUGH) 過程名2 ] 過程部中的節(jié)名,段名稱為過程名。 MOVE 0 TO T MOVE 1 TO N PERFORM UNTIL N 30 ADD N TO T ADD 1 TO N ENDPERFORM.4.PERFORM VARYING格式 PERFORM VARYING格式相當(dāng)于C語(yǔ)言中的FOR語(yǔ)句。 EVALUATE NETINCOMEWHEN 0 THRU 12500 MOVE 0 TO TAXRATEWHEN 12501 THRU 28000 MOVE TO TAXRATEWHEN 28001 THRU 50000 MOVE TO TAXRATEWHEN OTHER MOVE TO TAXRATE ENDEVALUATE十二.停止語(yǔ)句(STOP語(yǔ)句)STOP RUN格式停止程序,關(guān)閉任何打開的文件,這是COBOL程序正常終止的方式。01 PRODUCTRECORD.03 PRODUCT OCCURS 20 TIMES. 05 PRODUCTION PIC 9(6). 05 SALES PIC 9(6). 05 HAND PIC 9(6).**PRODUCT是表的名字。01 STUDENTSCORERECORD. 03 NAME PIC X(10). 03 QTYOFCOURSE PIC 99. 03 SCORE PIC 9(3) OCCURS 1 TO 10 TIMES DEPENDING ON QTYOFCOURSE.3.多維表格發(fā)生多維表格時(shí),用從屬于帶OCCURS從句的數(shù)據(jù)項(xiàng)的另一個(gè)OCCURS從句定義數(shù)據(jù)項(xiàng)。(2)OCCURS從句不能用于01層和77層。如果用OCCURS來(lái)描述一個(gè)組合項(xiàng),則重復(fù)出現(xiàn)的是這個(gè)組合項(xiàng)。01 A.02 B PIC X(20) OCCURS 5. 錯(cuò)誤03 C PIC X(20). 二.表元素的引用表必須先在數(shù)據(jù)部定義,才能在過程部引用。例QUANTITY(3,2)。01 TABLE VALUE IS ZERO. 03 A PIC 9(3) OCCURS 20 TIMES.01 TABLE. 03 A PIC 9(3) OCCURS 20 TIMES VALUE IS ZERO.01 TABLE.03 A OCCURS 20 TIMES VALUE SPACES. 05 NAME PIC X(10). 05 MAIL PIC X(20). 對(duì)帶OCCURS從句的數(shù)據(jù)項(xiàng)指定VALUE值。01 TABLE.03 MONTHS PIC X(36) VALUE ‘JanFebMarAprMayJunJulAugSepOctNovDec’.03 MNAME REDEFINES MONTHS PIC XXX OCCURS 12 TIMES.四.用索引法引用表元素1.索引的概念。(2)需要用索引來(lái)引用表元素的,都需要在建立表時(shí)用INDEXED BY短語(yǔ)來(lái)指定索引的名字。索引數(shù)據(jù)項(xiàng)在數(shù)據(jù)部中定義,用USAGE子句描述。SET A TO B A接收項(xiàng)(整型數(shù)據(jù)項(xiàng)或索引數(shù)據(jù)項(xiàng)) B發(fā)送項(xiàng)(整型直接數(shù),整型數(shù)據(jù)項(xiàng)或索引數(shù)據(jù)項(xiàng))01 A. 03 B OCCURS 1。77 K USAGE IS INDEX.., 2.SET語(yǔ)句SET語(yǔ)句用來(lái)給索引賦值,其作用是將一表元素的相對(duì)地址放到指定的索引去。(4)一維或多維表的每一維按需要可以指定若干個(gè)索引名。對(duì)作為索引的數(shù)據(jù)名要專門指定。01 TABLE. 03 A OCCURS 100 TIMES ASCENDING KEY IS ZIP. 05 NAME PIC X(10) VALUE SPACES. 05 MAIL PIC X(20) VALUE SPACES. 05 ZIP PIC 9(5) VALUE ZEROS. 對(duì)帶OCCURS從句的數(shù)據(jù)項(xiàng)所屬數(shù)據(jù)項(xiàng)指定VALUE值。01 TABLE.02 B OCCURS 8. 03 C1 PIC X(8). 03 C2 PIC X(2).MOVE SPACE TO C1 OF B(2). – 表元素應(yīng)出現(xiàn)在限定詞OF或IN的后面。例PRODUCT(2)。而且在建立一個(gè)多維表的同時(shí),也建立了一維表。77層是孤立的數(shù)據(jù)項(xiàng),不和其他數(shù)據(jù)發(fā)生組合關(guān)系。01 PRODUCTRECORD. 03 PRODUCT OCCURS 20 TIMES.05 QUANTITY PIC 9(6) OCCURS 3 TIMES.PRODUCT是一維表,QUANTITY是二維表。integer1指定最少個(gè)數(shù),可以為0,integer2指定最大個(gè)數(shù)。一.表定義生成表時(shí),在數(shù)據(jù)部的數(shù)據(jù)描述項(xiàng)中使用OCCURS子句。 PERFORM 過程名1 [ THRU 過程名2 ] VARYING 標(biāo)識(shí)符1 FROM 標(biāo)識(shí)符2 BY 標(biāo)識(shí)符3 UNTIL 條件1[ AFTER 標(biāo)識(shí)符4 FROM 標(biāo)識(shí)符5 BY 標(biāo)識(shí)符6 UNTIL 條件2 ] MOVE 0 TO T PERFORM VARYING N FROM 1 BY 1 UNTIL N 30 ADD N TO T ENDPERFORM PERFORM VARYING I FROM 1 BY 1 UNTIL I 9 AFTER J FROM 1 BY 1 UNTIL J 9 DISPLAY P = I * J ENDPERFORM.5. 出口語(yǔ)句(EXIT語(yǔ)句) EXIT語(yǔ)句提供了一組過程的公共出口,或者說(shuō)它指出了被調(diào)用過程的邏輯終點(diǎn)。 PERFORM 過程名1 [ THRU 過程名2 ] 整數(shù) TIMES例1:A. MOVE 5 TO N. MOVE 1 TO M. PERFORM A1 N TIMES. DISPLAY M. STOP RUN.A1. MULTIPLY N BY M SUBTRACT 1 FROM N.上例中的PERFORM部分也可寫成: PERFORM N TIMES MULTIPLY N BY M SUBTRACT 1 FROM N ENDPERFORM.3.PERFORM UNTIL格式 PERFORM UNTIL格式重復(fù)執(zhí)行指定的過程組,直到條件值變?yōu)檎妗? IF X 0 AND X 100 … IF X = 0 OR X = 1十.PERFORM語(yǔ)句 PERFORM語(yǔ)句使控制傳遞另一過程,并在執(zhí)行后返回。數(shù)據(jù)名或 IS [ NOT ] POSITIVE算術(shù)表達(dá)式 NEGATIVE ZEROIF A IS POSITIVE …IF B IS NOT NEGATIVE …IF (A + B) IS ZERO …3.類型條件 類型條件測(cè)試數(shù)據(jù)項(xiàng)的類型是否完全由屬于某個(gè)類或集合的字符組成。) INSPECT A TALLYING N FOR ALL ’L’ REPLACING LEADING ’A’ BY ’E’ AFTER ’L’3. INSPECT CONVERTING格式,是INSPECT REPLACING語(yǔ)句縮寫。即是說(shuō),第一個(gè)比較成功后,指針移動(dòng)到下一個(gè)字符,再?gòu)牡谝粋€(gè)比較做起。 INSPECT A TALLYING N FOR CHARACTERS AFTER ’T’ ( N = 9 )CHARACTERS計(jì)算所有字符,任何字符都算匹配。(檢查方向由左向右。UNSTRING A INTO B, C, D TALLYING IN N. (N=3)6.OVERFLOW短語(yǔ) 注:如果發(fā)送項(xiàng)的長(zhǎng)度大于接收項(xiàng)的總長(zhǎng)度,則填完最后一個(gè)接收項(xiàng)時(shí),語(yǔ)句結(jié)束并發(fā)生溢出。UNSTRING A INTO B, C, D1.DELIMI