




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、COBOL語言程序設(shè)計(jì)第六章 過程部之三執(zhí)行語句(PERFORM)6.1 PERFORM語句n在程序中,常常有一部分語句需要多次執(zhí)行。我們該怎么做?q最簡單的就是重復(fù)語句q例如分別計(jì)算P1P(1+R)nA1. MOVE 0.06 TO R.n MOVE 1000 TO P.n COMPUTE P1 = P * (1 + R).n WRITE P1 AFTER 2.nA2. MOVE 0.04 TO R.n MOVE 100 TO P.n COMPUTE P1 = P * (1 + R).n WRITE P1 AFTER 2.n如何避免重復(fù)呢PERFORMnA1. MOVE 0.06 TO R.
2、n MOVE 1000 TO P.n PERFORM C.nA2. MOVE 0.04 TO R.n MOVE 100 TO P.n PERFORM C.nnnnC. COMPUTE P1 = P * (1 + R).n WRITE P1 AFTER 2.PERFORM語句及作用n重復(fù)重復(fù)一種重要的程序結(jié)構(gòu)。當(dāng)我們需要將相同的代碼執(zhí)行多一種重要的程序結(jié)構(gòu)。當(dāng)我們需要將相同的代碼執(zhí)行多次的時候使用重復(fù)次的時候使用重復(fù)n大多數(shù)程序設(shè)計(jì)語言有很多種關(guān)于重復(fù)的關(guān)鍵字(大多數(shù)程序設(shè)計(jì)語言有很多種關(guān)于重復(fù)的關(guān)鍵字( e.g. WHILE, FOR, REPEAT ),以便創(chuàng)建不同類型的重復(fù)結(jié)構(gòu)(),以便創(chuàng)
3、建不同類型的重復(fù)結(jié)構(gòu)(dowhile, for(,), repeatuntil,)nCOBOL 只有一種重復(fù)結(jié)構(gòu)只有一種重復(fù)結(jié)構(gòu); PERFORM.nPERFORM 有不同的變體有不同的變體. n每種每種變體變體和其他語言中不同的重復(fù)結(jié)構(gòu)作用類似和其他語言中不同的重復(fù)結(jié)構(gòu)作用類似復(fù)習(xí)COBOL的PARAGRAPH(段)n一個段(Paragraph)就是一個有名字的代碼塊n段的命名采用通常的命名規(guī)則(A-Z, 0-9, -)n段名后面總是根著一個”.”(full-stop)n一個段可以有任意數(shù)目的句子和子句。最后一個句子或子句最后必須有一個句點(diǎn)”.”(full-stop)n段因?yàn)榱硗庖粋€段的開始
4、或者整個程序的終結(jié)而結(jié)束。例子:段ProcessRecord. DISPLAY StudentRecord READ StudentFileAT END MOVE HIGH-VALUES TO StudentRecord END-READ.ProduceOutput. DISPLAY “Here is a message”.段段 ProcessRecord 的范圍被名為的范圍被名為 ProduceOutput的的段的段的開始而中止開始而中止.6.2 執(zhí)行語句的最基本形式n過程名過程部中的節(jié)名、段名。相當(dāng)于其他語言的標(biāo)號n一般COBOL程序過程部不設(shè)節(jié),直接是段。所以n更一般的情況是,因此有更一
5、般情況過程名 PERFORMn該P(yáng)ERFORM類型不屬于程序設(shè)計(jì)中的重復(fù)類型。n該語句指示計(jì)算機(jī)將控制轉(zhuǎn)移給n當(dāng)?shù)搅丝刂茐K的末尾的時候,控制將還給PERFORM后面的子句。n1stProc和EndProc是段名或者節(jié)名。nPERFORM.THRU使計(jì)算機(jī)把從1stProc到EndProc的段或者節(jié)看成一個單一的代碼塊。PERFORM 1stProc THRUTHROUGH EndProc PROCEDURE DIVISION. PERFORM OneLevelDown DISPLAY Back in TopLevel. STOP RUN.TwoLevelsDown. DISPLAY Now i
6、n TwoLevelsDown.OneLevelDown. DISPLAY Now in OneLevelDown PERFORM TwoLevelsDown DISPLAY Back in OneLevelDown.Run of PerformFormat1In TopLevel. Starting to run program Now in OneLevelDown Now in TwoLevelsDown. Back in OneLevelDownBack in TopLevel.Format 1 Example.PROCEDURE DIVISION.Begin. PERFORM Sum
7、Sales STOP RUN.SumSales. Statements Statements IF NoErrorFound Statements Statements IF NoErrorFound Statements Statements Statements END-IF END-IF.Why use the PERFORM Thru?PROCEDURE DIVISIONBegin. PERFORM SumSales THRU SumSalesExit STOP RUN.SumSales. Statements Statements IF ErrorFound GO TO SumSal
8、esExit END-IF Statements Statements Statements IF ErrorFound GO TO SumSalesExit END-IF StatementsSumSalesExit. EXIT.Go To and PERFORM THRU6.3 執(zhí)行語句的使用規(guī)則n(一)PERFORM語句的嵌套A. PERFORM C. B. C. PERFORM D. D. n注意:嵌套不能出現(xiàn)交叉n下面一些正確和錯誤的例子:n發(fā)生交叉:即后一個被“調(diào)用”的語句序列包含了前一個被“調(diào)用”的語句序列中一部分語句和該語句序列外的一部分語句。n錯誤:后一個被“調(diào)用”的語句序列
9、還是包含了前一被“調(diào)用”的語句序列的最后一個段n綜合起來,后一個被“調(diào)用”的語句序列或者全部套在前一個被“調(diào)用”的語句序列之中,或者全部在它之外是正確的。不允許二者交叉或有共同的終點(diǎn)(只有在最后一段中僅有一個EXIT語句時才允許以這段作共同的終點(diǎn))n(二)在PERFORM語句所執(zhí)行的語句中,可以含有轉(zhuǎn)移語句,可以使流程轉(zhuǎn)到流程之外,但是一般應(yīng)轉(zhuǎn)回此序列,以便最后能執(zhí)行此語句序列的最后一個句子。n注意:這種風(fēng)格與結(jié)構(gòu)化方法不一致,一般不建議使用。nPERFORM語句所執(zhí)行的序列應(yīng)包括一個完整的“過程”6.4 使用PERFORM語句實(shí)現(xiàn)循環(huán)n程序設(shè)計(jì)語言的基本結(jié)構(gòu)重復(fù)重復(fù)結(jié)構(gòu)對比表重復(fù)結(jié)構(gòu)對比表C
10、Modula-2COBOLwhileRepeat Perform Until .With Test Before do whileWhile Perform Until .With Test After forFor Perform .Varying Format 2 - Syntax PERFORM 1stProc THRUTHROUGH EndProc RepeatCount TIMES StatementBlock END-PERFORM PROCEDURE DIVISION.Begin.DisplayName.StatementsPERFORM DisplayName 4 TIMESS
11、tatementsSTOP RUN. DISPLAY “Tom Ryan”.COBOL85的新特點(diǎn) In-line TIMESt RepeatCoun EndProc THROUGHTHRU 1stProc PERFORM PERFORM-ENDlock StatementB TIMESt RepeatCoun EndProc THROUGHTHRU 1stProc PERFORMIn-line vs Out-of-line nIn-Line 方式方式In-Line方式是熟悉其他程序設(shè)計(jì)語言重復(fù)結(jié)構(gòu)的程序員熟悉的方式。在in-line方式的PERFORM語句中,。n該語句塊從關(guān)鍵字PERFOR
12、M開始執(zhí)行,在關(guān)鍵字END-PERFOM處結(jié)束。nOut-of-line 方式(方式(COBOL78及以前標(biāo)準(zhǔn)的唯一方式)及以前標(biāo)準(zhǔn)的唯一方式) 在out-of-line的PERFORM語句中,。這和其他語言在循環(huán)體中調(diào)用函數(shù)或者過程的方式近似。n一些要點(diǎn)一些要點(diǎn) 大略的說,當(dāng)使用前文提及的format 1格式的PERFORM語句執(zhí)行out-of-line的代碼時,代碼應(yīng)該執(zhí)行一些獨(dú)特的功能,并用段名進(jìn)行標(biāo)識(感覺像一個函數(shù)或者過程調(diào)用)總之,應(yīng)該使程序更清晰而不是更難讀懂IDENTIFICATION DIVISION.PROGRAM-ID. PerformExample2.AUTHOR. M
13、ichael Coughlan.DATA DIVISION.WORKING-STORAGE SECTION.01 NumofTimes PIC 9 VALUE 5.PROCEDURE DIVISION.Begin. DISPLAY Starting to run program PERFORM 3 TIMES DISPLAY This is an in line Perform END-PERFORM DISPLAY Finished in line Perform PERFORM OutOfLineEG NumOfTimes TIMES DISPLAY Back in Begin. Abou
14、t to Stop. STOP RUN.OutOfLineEG. DISPLAY This is an out of line Perform.Format 2 ExampleStarting to run programThis is an in line PerformThis is an in line PerformThis is an in line PerformFinished in line Perform This is an out of line Perform This is an out of line Perform This is an out of line P
15、erform This is an out of line Perform This is an out of line PerformBack in Begin. About to StopRun of PerformExample26.5 執(zhí)行語句的較復(fù)雜的形式n本節(jié)內(nèi)容根據(jù)目前主機(jī)系統(tǒng)普遍適用的COBOL-85來講解,和書上有一定區(qū)別,請同學(xué)們注意。Format 3 Syntaxn該格式的該格式的PERFORM是用來構(gòu)建其他語言常見的是用來構(gòu)建其他語言常見的WHILE或者或者REPEAT結(jié)構(gòu);結(jié)構(gòu);n使用使用WITH TEST BEFORE ,則則PERFORM的行為和的行為和WHILE
16、循環(huán)相似,循環(huán)相似,測試條件也在進(jìn)入循環(huán)體之前被測試;測試條件也在進(jìn)入循環(huán)體之前被測試;n使用使用WITH TEST AFTER則則PERFORM的行為和的行為和REPEAT循環(huán)相似,測試循環(huán)相似,測試條件也在進(jìn)入循環(huán)體之后才被測試;條件也在進(jìn)入循環(huán)體之后才被測試;nWITH TEST BEFORE 是是 缺省模式,缺省模式, 所以很少明確說明,也就是說所以很少明確說明,也就是說COBOL老版本只有這種形式老版本只有這種形式 PERFORM 1stProc THRUTHROUGH EndProc WITH TEST BEFOREAFTER UNTIL Condition StatementBl
17、ock END-PERFORM testLoop BodyFalseTruePERFORM WITHTEST AFTER =REPEAT . UNTILNext StatementtestLoop BodyFalseTruePERFORM WITHTEST BEFORE =WHILE . DONext StatementSequential File ProcessingnIn general terms, the WHILE loop is an ideal construct for processing sequences of data items whose length is no
18、t predefined.nSuch sequences of values are often called “streams”.nBecause the length of the stream is unknown we have to be careful how we manage the detection of the end of the stream.nA useful way for solving this problem uses a strategy known as “read ahead”.The READ AheadnWith the “read ahead”
19、strategy we always try to stay one data item ahead of the processing.nThe general format of the “read ahead” algorithm is as follows;Attempt to READ first data itemWHILE NOT EndOfStream Process data item Attempt to READ next data itemENDWHILEnUse this to process any stream of data.Reading a Sequenti
20、al FilenAlgorithm TemplatenThis is an example of an algorithm which is capable of processing any sequential file; ordered or unordered! PROCEDURE DIVISION.Begin. OPEN INPUT StudentFile READ StudentFile AT END MOVE HIGH-VALUES TO StudentDetails END-READ PERFORM UNTIL StudentDetails = HIGH-VALUES DISP
21、LAY StudentId SPACE StudentName SPACE CourseCode READ StudentFile AT END MOVE HIGH-VALUES TO StudentDetails END-READ END-PERFORM CLOSE StudentFile STOP RUN.9456789 COUGHLANMS LM519367892 RYAN TG LM609368934 WILSON HR LM61RUN OF SeqReadPERFORM-ENDLINE-IN條件UNTIL32BY21FROM1VARING2THRUTHROUGH1 PERFORM過程
22、標(biāo)識符常數(shù)標(biāo)識符常數(shù)標(biāo)識符過程名過程名PERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next
23、StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementP
24、ERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VAR
25、YING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1
26、FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next StatementPERFORM VARYING Idx1 FROM 1 BY 1 UNTIL Idx1 EQUAL TO 3 DISPLAY Idx1END-PERFORM.exit value =TrueFalseIdx1Inc Idx1Loop BodyIdx1 = 3Move 1 to Idx1Next Statement6.6 多重循環(huán)nPERFORMVAR
27、YING的一般形式注意nAFTER子句不能用于in-line方式的PERFORM,也就是說,in-line方式的PERFORM只能有一個循環(huán)變量n緊根在VARYING后面的是最外層的循環(huán)變量,第一個AFTER后面是次外層,第二個AFTER是更里面的。n最里面的循環(huán)變量必須變化到它的中止條件,它外面的變量才隨之改變n當(dāng)重復(fù)語句中止,循環(huán)變量保持其最后的值n如果沒有 WITH TEST 子句WITH TEST BEFORE 是缺省的. PERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 F
28、ROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7
29、Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop Bod
30、yDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePE
31、RFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx
32、1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS TH
33、AN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Nex
34、t StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2In
35、c Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING I
36、dx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6
37、 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move
38、1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec
39、Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM
40、 IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQU
41、AL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5T
42、rueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next Sta
43、tementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 5Loop BodyDec Idx2Idx2TMove 6 to Idx2Inc Idx
44、1Idx1Idx2TrueFalsePERFORM IterationCount VARYING Idx1 FROM 1 BY 3 UNTIL Idx1 EQUAL TO 7 AFTER Idx2 FROM 6 BY -1 UNTIL Idx2 LESS THAN 5TrueFalseIdx1Idx1 = 7Move 1 to Idx1Move 6 toIdx2Next StatementIdx2 30.PERFORM UNTIL N30StatementBlock END-PERFORMn(四)PERFORM T1 THRU T2 VARYING X FROM 1 BY 2 UNTIL X3
45、0. PERFORM VARYING X FROM 1 BY 2 UNTIL X30 StatementBlock END-PERFORMn(五)PERFORM T1 THRU T2VARYING I FROME 1 BY 1 UNTIL I10AFTER J FROM 2 BY 2 UNTIL J8.n總結(jié)PERFORM的作用:q“調(diào)用”本程序中某一語句序列q實(shí)現(xiàn)循環(huán)nPERFORM VARYING I FROM 1 BY 1 UNTIL I 9 n PERFORM VARYING J FROM 1 BY 1 UNTIL J I n COMPUTE P = I * J n MOVE I TO IE n MOVE J TO JE n MOVE P TO PE n DISPLAY JE, *, IE, =, PE n END-PERFORM nEND-PERFORM 6.8 出口語句EXITnEXIT語句什么也不做,其作為一個段中的唯一語句,提供一個插入段名的位置n通常作為PERFORM語句控制的一組段中最后一段的唯一一條語句Z6.9 修改語句ALTERnALTER是個過時COBOL語句,將被廢棄。在編程中應(yīng)該避免使用。其作用是改變GO TO語句的轉(zhuǎn)向點(diǎn)。n不要求也不建議使用n嚴(yán)重影響程序的可讀性6 舉例(例4.1)/P390COM1
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度無人駕駛技術(shù)研發(fā)合伙人投資協(xié)議書
- 二零二五年度員工入股分紅協(xié)議:股權(quán)分紅與績效考核掛鉤
- 科技助力下的石墨制品質(zhì)量檢測與評估技術(shù)
- 二零二五年度農(nóng)機(jī)租賃與農(nóng)業(yè)廢棄物資源化利用項(xiàng)目合作協(xié)議
- 2025至2030年中國絨毛漿數(shù)據(jù)監(jiān)測研究報(bào)告
- 電商直播銷售從策劃到執(zhí)行的全過程解析
- 二零二五年度企業(yè)食堂綠色餐飲承包協(xié)議
- 二零二五年度服務(wù)業(yè)企業(yè)績效協(xié)議目標(biāo)責(zé)任書模板
- 二零二五年度購房貸款保險(xiǎn)合同
- 二零二五年度桶裝水行業(yè)規(guī)范與自律合作協(xié)議
- 2024至2030年中國阻隔防爆橇裝式加油裝置行業(yè)投資前景及策略咨詢研究報(bào)告
- DB34∕T 3247-2018 井采煤礦綠色礦山建設(shè)要求
- 2024至2030年中國小模數(shù)齒輪市場調(diào)查與行業(yè)前景預(yù)測專題研究報(bào)告
- DB32T-公路橋梁水下結(jié)構(gòu)檢測評定標(biāo)準(zhǔn)
- 小學(xué)語文教師讀書筆記范文(5篇)
- 2023年部編人教版六年級道德與法治下冊全冊課件【全套】
- 《茉莉花》(課件)人音版音樂六年級上冊
- 肌肉注射的常見并發(fā)癥及預(yù)防處理措施
- 景觀模型設(shè)計(jì)與制作:第7章 建筑模型制作基本技法
- 關(guān)愛婦女防治兩癌講座課件
- DL∕T 584-2017 3kV~110kV電網(wǎng)繼電保護(hù)裝置運(yùn)行整定規(guī)程
評論
0/150
提交評論