版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第四章第四章 2. 順序結(jié)構(gòu)順序結(jié)構(gòu)3. 選擇結(jié)構(gòu)選擇結(jié)構(gòu)嵌套:IF 表達(dá)式1 THEN BEGINIF 表達(dá)式2 THEN BEGIN語句序列1ENDIF ELSE BEGIN語句序列2ENDELSE ENDIF ELSE BEGINIF THEN BEGIN語句序列3ENDIF ELSE BEGIN語句序列4ENDELSE ENDELSE功能:根據(jù)三個(gè)表達(dá)式的值來選擇執(zhí)行四個(gè)語句序列中的一個(gè)流程圖:見下頁圖例 編程序,計(jì)算并輸出 y 的值,其中x 的值要求從鍵盤任意輸入。PRO MS5FunctionREAD, PROMPT=請(qǐng)輸入X = ?, xIF x LE 3 THEN BEGINI
2、F x LE -6 THEN BEGINy = 3 * x 2 - x + 1ENDIF ELSE BEGINIF x LE -3 THEN BEGINy = 5 * x 2 - 3 * x + 1ENDIF ELSE BEGINy = 7 * x 2ENDELSEENDELSEENDIF ELSE BEGINIF x LE 6 THEN BEGINy = 5 * x 2 + 3 * x + 1ENDIF ELSE BEGINy = 3 * x 2 + x + 1ENDELSEENDELSEPRINT, y = , yEND例 編程序,計(jì)算并輸出 y 的值,其中x 的值要求從鍵盤任意輸入。PR
3、O MS5Function2 READ, PROMPT=請(qǐng)輸入X = ?, x y=x LE -6?3 * x 2 - x + 1:$ (x LE -3?5 * x 2 - 3 * x + 1:$ (x LE 3?7 * x 2:$ (x LE 6?5 * x 2 + 3 * x + 1:$ 3 * x 2 + x + 1) PRINT, y = , yENDIF語句嵌套的另外兩種常見格式CASE語句格式:CASE 表達(dá)式 OF表達(dá)式1:BEGIN語句序列1 END 表達(dá)式n:BEGIN語句序列n END ELSE :BEGIN語句序列n+1 END ENDCASE功能:根據(jù)表達(dá)式的值與表達(dá)式
4、1到 表達(dá)式n中的每一個(gè)表達(dá)式的值相比較,來選擇執(zhí)行n1個(gè)語句序列中的一個(gè)語句序列。例 編程序Chapter04M,輸入1月到12月中的任意一個(gè)月份數(shù)字,輸出該月份的英文單詞。程序如下:; MPRO MonthREAD, PROMPT=請(qǐng)輸入月份(1 , . , 12):, mCASE m of 1 : PRINT, January & 2 : PRINT, February 3 : PRINT, March & 4 : PRINT, April 5 : PRINT, May & 6 : PRINT, June 7 : PRINT, Ju
5、ly & 8 : PRINT, August 9 : PRINT, September & 10 : PRINT, October 11 : PRINT, November & 12 : PRINT, December ELSE : PRINT, 輸入的月份無效! ENDCASEEND例 設(shè)計(jì)程序Chapter04MS6F,要求從鍵盤任意輸入一個(gè)值x,計(jì)算并輸出函數(shù) f (x) 的值,程序如下。其中f(x)為:; MS6FPRO MS6FunctionREAD, PROMPT=請(qǐng)輸入X = ?, xCASE 1 of x LT
6、 0: y = 2 * x + 1 x LT 1: y = 3 * x + 2 x LT 2: y = 4 * x +3 x LT 3: y = 5 * x + 4 x LT 4: y = 6 * x + 7 ELSE: y = 8 * x * x + 1ENDCASEPRINT, f ( x ) = , yEND4. 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)是指在程序執(zhí)行過程中,根據(jù)實(shí)際需要,程序中的某一段程序是指在程序執(zhí)行過程中,根據(jù)實(shí)際需要,程序中的某一段程序需要循環(huán)執(zhí)行若干次,具有這種結(jié)構(gòu)的程序稱為循環(huán)結(jié)構(gòu)程序。需要循環(huán)執(zhí)行若干次,具有這種結(jié)構(gòu)的程序稱為循環(huán)結(jié)構(gòu)程序。如果某個(gè)程序中有語句序列如果某個(gè)程序中有語
7、句序列A,該語句序列,該語句序列A要根據(jù)指定條件表達(dá)式的值循要根據(jù)指定條件表達(dá)式的值循環(huán)執(zhí)行,直到條件表達(dá)式的值為假為止。顯然語句序列環(huán)執(zhí)行,直到條件表達(dá)式的值為假為止。顯然語句序列A在程序執(zhí)行過程在程序執(zhí)行過程中,中, 要循環(huán)執(zhí)行若干次。循環(huán)結(jié)構(gòu)的流程圖可以用圖表示要循環(huán)執(zhí)行若干次。循環(huán)結(jié)構(gòu)的流程圖可以用圖表示格式:格式:WHILE 表達(dá)式表達(dá)式 DO 語句語句 格式:格式:WHILE 表達(dá)式表達(dá)式 DO BEGIN語句序列語句序列A ENDWHILE功能:根據(jù)表達(dá)式的值,功能:根據(jù)表達(dá)式的值,表達(dá)式為真,表達(dá)式為真,循環(huán)執(zhí)行語句序列循環(huán)執(zhí)行語句序列A若若干次。干次。例1設(shè)計(jì)程序Chapte
8、r04S,計(jì)算并輸出1 + + 1000。程序?yàn)椋? SPRO Sum1000sum = 0L & i = 1WHILE i LE 1000 DO BEGINsum = sum + i & i+ENDWHILEPRINT, 1 + 2 + + 1000 = , sumEND格式:格式:CONTINUE功能:在循環(huán)語句中,用于終止本次循環(huán),轉(zhuǎn)向功能:在循環(huán)語句中,用于終止本次循環(huán),轉(zhuǎn)向WHILE進(jìn)行下一次循環(huán)。進(jìn)行下一次循環(huán)。格式:格式:WHILE 表達(dá)式表達(dá)式1 DO BRGIN語句序列語句序列1IF 表達(dá)式表達(dá)式2 THEN BEGIN
9、語句序列語句序列2CONTINUEENDIF語句序列語句序列3ENDWHILE例例 計(jì)算并輸出計(jì)算并輸出2 + 4 + + 1000,設(shè)計(jì)程序如下:,設(shè)計(jì)程序如下:; SumEPRO SumEven1000sum = 0L & i = 1WHILE i LE 1000 DO BEGINIF i MOD 2 THEN BEGINi=i+1 & CONTINUEENDIFsum = sum + i & i=i+1ENDWHILEPRINT, 2+4+ +1000 =, sumEND格式:BREAK功能:用在循環(huán)語句中。用于無條件退出包含該BREAK語句
10、的最內(nèi)層循環(huán),轉(zhuǎn)向執(zhí)行該層循環(huán)語句ENDWHILE后面的語句。WHILE和BREAK的組合格式為:格式:WHILE 表達(dá)式1 DO BEGIN語句序列1IF 表達(dá)式2 THEN BEGIN語句序列2BREAKENDIF語句序列3ENDWHILE例 編程序Chapter04MS,要求從鍵盤任意輸入兩個(gè)數(shù),計(jì)算并輸出這兩個(gè)數(shù)的和;然后詢問是否重復(fù)執(zhí)行上述操作,直到不愿意執(zhí)行為止。; MSPRO MSumyn = WHILE 1 DO BEGIN READ,PROMPT=請(qǐng)輸入X=, x READ,PROMPT=請(qǐng)輸入Y=, y PRINT,x,+,y,=, x+y READ
11、,PROMPT=繼續(xù)嗎?(Y/N):, yn IF STRUPCASE(yn) EQ Y THEN BEGINCONTINUE ENDIF ELSE BEGINBREAK ENDELSEENDWHILEEND格式1:FOR 變量 = 初值,終值 ,步長 DO 語句格式2:FOR 變量 = 初值,終值 ,步長 DO BEGIN語句序列A ENDFOR功能:用變量來控制循環(huán)次數(shù),使序列A循環(huán)執(zhí)行指定的次數(shù)。例 編程序Chapter04G,用FORENDFOR語句輸出下面圖形,其中最底層為15個(gè)*。程序如下:; GPRO Graphics FOR i =
12、1, 15 DO BEGIN Ss=REPLICATE(*, i) PRINT, Ss ENDFOREND嵌套格式:WHILE 表達(dá)式表達(dá)式1 DO BEGIN語句序列語句序列1WHILE 表達(dá)式表達(dá)式2 DO BEGIN語句序列語句序列2WHILE 表達(dá)式表達(dá)式3 DO BEGIN語句序列語句序列3ENDWHILEENDWHILE ENDWHILEC、D錯(cuò)誤結(jié)構(gòu)例例 編程序編程序Chapter04T,輸出下列九九乘法表。程序如下:,輸出下列九九乘法表。程序如下:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=
13、161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81; TPRO Table99i = 1WHILE i LT 10 DO BEGINj = 1WHILE j
14、 LE i DO BEGINPRINT,j,*,i,=,i*j, FORMAT=(4X,I1,1X,A1,1X,I1,1X,A1,1X,I2,$)j = j +1ENDWHILEPRINT, FORMAT = ( / ) i = i +1ENDWHILEEND例例 編程序編程序Chapter04T,輸出九九乘法表。程序如下:,輸出九九乘法表。程序如下:; Chapter04Table993FPRO Chapter04Table993For FOR i=1, 9 DO BEGIN FOR j = 1, i DO BEGIN PRINT, j,*,i,=,i*j,
15、FORMAT=(4X,I1,1X,A1,1X,I1,1X,A1,1X,I2,$) ENDFOR PRINT, FORMAT=( / ) ENDFORENDGoto語句格式:goto,標(biāo)號(hào)標(biāo)號(hào)格式:label:pro mmmAAA:print,wygoto,AAAend標(biāo)號(hào)必須以字母開頭5. 自定義函數(shù)自定義函數(shù)5.1主程序主體:必須以end結(jié)束,有兩種表現(xiàn)形式: (1) end (2)pro test 程序體 end文件名為,沒有名稱的主程序必須放在程序最后面。運(yùn)行方式:以IDL.run 運(yùn)行5.2 過程主體:與主程序相似,但必須以pro proname開始,以
16、end結(jié)束。 pro 過程名稱,變量V1,V2, ,kn1=k1,kn2=k2 程序體 endkeyword起重要作用調(diào)用和運(yùn)行方式:以IDLproname方式運(yùn)行參數(shù)一般要有確定的參數(shù)一般要有確定的順序和確定的類型。順序和確定的類型。參數(shù)在使用時(shí),一般參數(shù)在使用時(shí),一般是必選項(xiàng)。是必選項(xiàng)。參數(shù)在使用時(shí),參數(shù)參數(shù)在使用時(shí),參數(shù)的個(gè)數(shù),類型和順序要的個(gè)數(shù),類型和順序要和定義時(shí)保持一致。和定義時(shí)保持一致。Kn1為關(guān)鍵字名,為關(guān)鍵字名,k1為關(guān)鍵為關(guān)鍵字變量字變量關(guān)鍵字一般要有確定的類型。關(guān)鍵字一般要有確定的類型。關(guān)鍵字在使用時(shí),一般是可關(guān)鍵字在使用時(shí),一般是可選項(xiàng)。選項(xiàng)。關(guān)鍵字在使用時(shí),其類型要關(guān)
17、鍵字在使用時(shí),其類型要和定義時(shí)保持一致。和定義時(shí)保持一致。關(guān)鍵字在使用時(shí),其個(gè)數(shù)可關(guān)鍵字在使用時(shí),其個(gè)數(shù)可以比定義時(shí)少。以比定義時(shí)少。關(guān)鍵字在使用時(shí),其順序可關(guān)鍵字在使用時(shí),其順序可以和定義時(shí)不一致,而且其順以和定義時(shí)不一致,而且其順序是可以任意的。序是可以任意的。5.3函數(shù)主體:與過程相似,但以function fnname開始,以end結(jié)束,并以return語句返回一個(gè)IDL變量。 Function test 變量V1,V2, , 關(guān)鍵字k1=k1,k2=k2 程序體 return, Value end 調(diào)用和運(yùn)行方式:以IDLret=fnname(para_list)方式運(yùn)行。例例 編寫
18、自定義函數(shù)編寫自定義函數(shù)Factorial(n)= n!,計(jì)算并輸出,計(jì)算并輸出0 n的階乘的階乘; FactorialFUNCTION Factorial, ny = 1LLIF n NE 0 THEN BEGINFOR i = 1, n DO BEGINy = y * iENDFORENDIFRETURN, yEND; FPRO FactorialNREAD, PROMPT=輸入一個(gè)整數(shù)輸入一個(gè)整數(shù):, nFOR i = 0, n DO BEGINPRINT, i , ! = , Factorial ( i )ENDFOREND引用格式:引用格式:Factorial(n)引用格式:引用格式:FactorialN程序的相互調(diào)用程序的相互調(diào)用MyFunctionFile( 實(shí)參實(shí)參1,實(shí)參,實(shí)參n ,實(shí)字,實(shí)字1,實(shí)字,實(shí)字n)MyProcedureFil
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 在線數(shù)學(xué)思維訓(xùn)練行業(yè)市場發(fā)展分析及兼并重組機(jī)會(huì)研究報(bào)告
- 區(qū)塊鏈社交網(wǎng)絡(luò)行業(yè)供需趨勢及投資風(fēng)險(xiǎn)研究報(bào)告
- 國際貨運(yùn)代理行業(yè)三年發(fā)展預(yù)測分析報(bào)告
- 農(nóng)業(yè)保險(xiǎn)行業(yè)分析報(bào)告及未來五年行業(yè)發(fā)展報(bào)告
- 云企業(yè)資源規(guī)劃(ERP)行業(yè)三年發(fā)展洞察報(bào)告
- 數(shù)字化學(xué)習(xí)平臺(tái)行業(yè)分析報(bào)告及未來三年行業(yè)發(fā)展報(bào)告
- 綠色供應(yīng)鏈行業(yè)發(fā)展趨勢及前景展望分析報(bào)告
- 建筑保險(xiǎn)行業(yè)營銷策略方案
- 虛擬現(xiàn)實(shí)(VR)行業(yè)發(fā)展全景調(diào)研與投資趨勢預(yù)測研究報(bào)告
- 個(gè)人貸款保險(xiǎn)行業(yè)相關(guān)項(xiàng)目診斷報(bào)告
- 2023年小學(xué)綜合實(shí)踐活動(dòng)基本功大賽理論測試卷
- 初中音樂八年級(jí)下冊(cè)(簡譜) 川江船夫號(hào)子(男聲合唱)
- 《蒙古族音樂》課件
- 女性乳腺健康知識(shí)講座
- 幼兒輪滑課件
- 《小初銜接講座》課件
- 初中音樂課的實(shí)踐教學(xué)經(jīng)驗(yàn)總結(jié)
- 腦梗死后吞咽功能障礙的治療及護(hù)理現(xiàn)狀
- 《全面質(zhì)量管理》課件
- 浙教版七年級(jí)上冊(cè)信息科技全冊(cè)教案教學(xué)設(shè)計(jì)
- 人體解剖學(xué)章節(jié)練習(xí)題及答案
評(píng)論
0/150
提交評(píng)論