




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章
FORTRAN結(jié)構(gòu)化程序設(shè)計(jì)本章內(nèi)容順序結(jié)構(gòu)程序設(shè)計(jì)選擇結(jié)構(gòu)程序設(shè)計(jì)循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
結(jié)構(gòu)化程序設(shè)計(jì):按照一定的結(jié)構(gòu)形式來(lái)設(shè)計(jì)和編寫(xiě)程序,以便閱讀與檢查。順序結(jié)構(gòu)選擇結(jié)構(gòu)循環(huán)結(jié)構(gòu)
當(dāng)型循環(huán)
直到型循環(huán)
3.1順序結(jié)構(gòu)程序設(shè)計(jì)先上后下,先左后右;即先執(zhí)行A,再執(zhí)行B順序結(jié)構(gòu)【例3-1】輸入3個(gè)氣象站5個(gè)月(汛期)雨量數(shù)據(jù),統(tǒng)計(jì)每個(gè)氣象站的總雨量和平均雨量,計(jì)算3個(gè)站五月、六月、七月、八月、九月的平均雨量,輸出每個(gè)氣象站每個(gè)月的雨量、總雨量和平均雨量,以及五月、六月、七月、八月、九月的平均雨量。站名汛期各月雨量(毫米)5月6月7月8月9月江陰76.8176.5308.141.069.6定波閘71.5208.5352.147.262.6肖山65.5200.0239.744.363.0表3-11998年主要站汛期雨量統(tǒng)計(jì)表1
PROGRAMex06_02
2
IMPLICITNONE
3
REALr11,r12,r13,r14,r15,total11,av11
4
REALr21,r22,r23,r24,r25,total21,av21
5
REALr31,r32,r33,r34,r35,total31,av31
6
REALav1,av2,av3,av4,av5
7
WRITE(*,“(28X,‘5月6月7月8月9月’)”)
8
WRITE(*,“(1X,‘輸入江陰氣象站五個(gè)月的雨:’,\)”)
9
READ(*,*)r11,r12,r13,r14,r15
10
WRITE(*,“(1X,‘輸入定波閘氣象站五個(gè)月的雨量:’,\)”)
11
READ(*,*)r21,r22,r23,r24,r25
12
WRITE(*,“(1X,‘輸入肖山氣象站五個(gè)月的雨量:’,\)”)
13
READ(*,*)r31,r32,r33,r34,r35
14
!100 FORMAT(F5.1,F5.1,F5.1,F5.1,F5.1)
15
total11=r11+r12+r13+r14+r15
16
av11=total11/5
17
total21=r21+r22+r23+r24+r25
18
av21=total21/5
19
total31=r31+r32+r33+r34+r35
20
av31=total31/5
21
av1=(r11+r21+r31)/3
22
av2=(r12+r22+r32)/3
23
av3=(r13+r23+r33)/3
24
av4=(r14+r24+r34)/3
25
av5=(r15+r25+r35)/3
26
WRITE(*,“(26X,‘5月6月7月8月9月總雨量平均雨量’)”)
27
WRITE(*,200)‘江陰氣象站五個(gè)月的雨量:’,r11,r12,r13,r14,r15,total11,av11
28
WRITE(*,200)‘定波閘氣象站五個(gè)月的雨量:’,r21,r22,r23,r24,r25,total21,av21
29
WRITE(*,200)‘肖山氣象站五個(gè)月的雨量:’,r31,r32,r33,r34,r35,total31,av31
30
200
FORMAT(1X,A22,5(F5.1,2X),F6.1,2X,F7.3)
31
WRITE(*,300)‘5月’,av1,‘6月’,av2,‘7月’,av3,‘8月’,av4,‘9月’,av5
32
300
FORMAT(1X,A4,‘平均雨量:’,F7.3)
33
END運(yùn)行結(jié)果:3.2選擇結(jié)構(gòu)3.2.1選擇結(jié)構(gòu)簡(jiǎn)介3.2.2
IF語(yǔ)句3.2.3
SELECTCASE語(yǔ)句3.2.4選擇語(yǔ)句的嵌套3.2.1選擇結(jié)構(gòu)簡(jiǎn)介
依據(jù)給定的條件做邏輯判斷,再根據(jù)判斷的結(jié)果決定應(yīng)執(zhí)行哪種操作——選擇結(jié)構(gòu)。如:1輸入學(xué)生成績(jī),判定合格與否,輸出判定結(jié)果。2已知三個(gè)整數(shù)A,B,C,輸入其值并打印三個(gè)數(shù)中最大值。
3暴雨預(yù)警信號(hào)分三級(jí),分別以黃色、橙色、紅色表示。
(1)暴雨黃色預(yù)警信號(hào)(2)暴雨橙色預(yù)警信號(hào)(3)暴雨紅色預(yù)警信號(hào)根據(jù)降雨量評(píng)判當(dāng)前預(yù)警信號(hào),從而做出不同防御指南。必須使用選擇結(jié)構(gòu)程序來(lái)解決這類(lèi)問(wèn)題FORTRAN提供了3種典型的塊IF結(jié)構(gòu):
(1)單分支
(2)雙分支
(3)多分支3.2.2
IF語(yǔ)句(1)單分支塊IF結(jié)構(gòu)
一般形式為:
IF(條件) THEN IF塊
ENDIF這種塊IF結(jié)構(gòu)包括:塊IF語(yǔ)句“IF(條件)THEN”。它是塊IF結(jié)構(gòu)的入口語(yǔ)句。IF塊。它是一個(gè)語(yǔ)句序列,由若干條可執(zhí)行語(yǔ)句組成。ENDIF語(yǔ)句。它是塊IF結(jié)構(gòu)的出口語(yǔ)句。
【例3-2】從鍵盤(pán)輸入一個(gè)氣溫值,如果大于35.0,則顯示在屏幕上。1PROGRAMex04_022IMPLICITNONE3REALT4 READ*,T5 IF(T>35.0) THEN6 PRINT*,'這是高溫'7 PRINT*,'T=',T8 ENDIF9END(2)雙分支塊IF結(jié)構(gòu)
一般形式為:
IF(條件) THEN IF塊
ELSE ELSE塊
ENDIF【例3-3】由于大氣受到污染,一些地區(qū)開(kāi)始形成酸雨區(qū),酸雨是指PH值小于5.6的雨雪或其他形式的大氣降水。通過(guò)收集水樣測(cè)量其PH值,判斷它的酸堿性并打印出來(lái)。根據(jù)題意設(shè)計(jì)算法并畫(huà)出程序流程圖,如圖所示。1PROGRAMex07_032IMPLICITNONE3 REALph4 WRITE(*,*)'PleaseenterPHvalue:'5 READ*,ph!定義變量ph來(lái)存放酸堿度值6 IF(ph<5.6)THEN!用分支語(yǔ)句來(lái)判斷7 WRITE(*,100)ph8 ELSE9 WRITE(*,200)ph10 ENDIF11100FORMAT(1X,'PH=',F4.2,',isacidrain!')12200FORMAT(1X,'PH=',F4.2,',isnotacidrain!')13END(3)多分支塊IF結(jié)構(gòu)
一般形式為:
IF(條件1) THEN
塊1 ELSEIF(條件2)THEN
塊2 ELSEIF(條件3)THEN
塊3 . . ELSEIF(條件n)THEN
塊n [ELSE
塊n+1] ENDIF【例3-4】在氣象部門(mén)發(fā)布的天氣預(yù)報(bào)中小雨、中雨、暴雨等專(zhuān)業(yè)術(shù)語(yǔ),它們之間的區(qū)別如表所示:降雨強(qiáng)度降雨量(12小時(shí),單位:mm)降雨量(24小時(shí),單位:mm)小雨<5<10中雨5~1510~25大雨15~3025~50暴雨30~7050~100大暴雨70~140100~250特大暴雨>140>2501PROGRAMex07_042IMPLICITNONE3 REALr!定義用來(lái)記錄降雨量的實(shí)型量r4 WRITE(*,100)5 READ*,r6 IF(r<5)THEN!用多分支IF語(yǔ)句進(jìn)行判斷7 PRINT2008 ELSEIF(r<15)THEN9 PRINT30010 ELSEIF(r<30)THEN11 PRINT40012 ELSEIF(r<70)THEN13 PRINT50014 ELSEIF(r<140)THEN15 PRINT60016 ELSE17 PRINT70018 ENDIF19100FORMAT(1X,'請(qǐng)輸入12小時(shí)降雨量:')20200FORMAT(1X,'小雨')21300FORMAT(1X,'中雨')22400FORMAT(1X,'大雨')23500FORMAT(1X,'暴雨')24600FORMAT(1X,'大暴雨')25700FORMAT(1X,'特大暴雨')26END(4)邏輯IF結(jié)構(gòu)
邏輯IF語(yǔ)句的一般形式:
IF(條件)語(yǔ)句其中“條件”可以是一個(gè)合法的邏輯表達(dá)式或關(guān)系表達(dá)式,“語(yǔ)句”是一個(gè)合法的可執(zhí)行語(yǔ)句,且只有一條語(yǔ)句。【例3-5】根據(jù)層結(jié)參數(shù)N2的大小可以判斷大氣層結(jié)狀態(tài):N2要求從鍵盤(pán)輸入。1PROGRAMex07_052IMPLICITNONE3 REALN24 WRITE(*,100)5 READ(*,*)N26 IF(N2.EQ.0.0)PRINT*,‘中性層結(jié)’7 IF(N2.GT.0.0)PRINT*,‘穩(wěn)定層結(jié)’8 IF(N2.LT.0.0)PRINT*,‘不穩(wěn)定層結(jié)’9100 FORMAT(1X,'PLEASEINPUTN2:')10END
CASE結(jié)構(gòu)是一種多路分支選擇結(jié)構(gòu),可有多個(gè)分支可供選擇。
CASE結(jié)構(gòu)的一般形式為:
SELECTCASE(選擇表達(dá)式)
CASE(控制表達(dá)式1) 塊1 CASE(控制表達(dá)式2) 塊2 . . CASE(控制表達(dá)式n) 塊n [CASEDEFAULT
默認(rèn)塊] ENDSELECT3.2.3SELECTCASE語(yǔ)句
實(shí)質(zhì):判斷選擇表達(dá)式的值是否與某一控制表達(dá)式的值相匹配。說(shuō)明:選擇表達(dá)式和控制表達(dá)式可以為整型、邏輯型或字符型??刂票磉_(dá)式可以是一個(gè)不重復(fù)的值或一組同類(lèi)值的列表,如:(1)用逗號(hào)分隔的單個(gè)值列表。如:CASE(‘a(chǎn)’,‘b’,‘c’,‘x’,‘y’,‘z’),當(dāng)選擇表達(dá)式的值為a,b,c,x,y,z之一時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊。CASE(3,6,9),當(dāng)選擇表達(dá)式的值為3,6或9時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊。(2)用冒號(hào)分隔的值的范圍。如:CASE(‘a(chǎn)’:‘g’),當(dāng)選擇表達(dá)式的值落入a~g范圍內(nèi)時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊。CASE(5:10),當(dāng)選擇表達(dá)式的值落入5~10范圍內(nèi)時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊。CASE(10:),當(dāng)選擇表達(dá)式的值大于或等于10時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊。CASE(:10),當(dāng)選擇表達(dá)式的值小于或等于10時(shí),執(zhí)行相應(yīng)的語(yǔ)句塊?!纠?-6】根據(jù)風(fēng)對(duì)地上物體所引起的現(xiàn)象將風(fēng)的大小分為13個(gè)等級(jí),稱(chēng)為風(fēng)力等級(jí),以0~12等級(jí)數(shù)字記載,如下表所示:等級(jí)名稱(chēng)風(fēng)速陸地物象海面波浪浪高0無(wú)風(fēng)0.0~0.2煙直上平靜0.01軟風(fēng)0.3~1.5煙示風(fēng)向微波峰無(wú)飛沫0.12輕風(fēng)1.6~3.3感覺(jué)有風(fēng)小波峰未破碎0.23微風(fēng)3.4~5.4旌旗展開(kāi)小波峰頂破裂0.64和風(fēng)5.5~7.9吹起塵土小浪白沫波峰1.05勁風(fēng)8.0~10.7小數(shù)搖擺中浪折沫峰群2.06強(qiáng)風(fēng)10.8~13.8電線有聲大浪到個(gè)飛沫3.07疾風(fēng)13.9~17.1步行困難破峰白沫成條4.08大風(fēng)17.2~20.7折毀樹(shù)枝浪長(zhǎng)高有浪花5.59烈風(fēng)20.8~24.4小損房屋浪峰倒卷7.010狂風(fēng)24.5~28.4拔起樹(shù)木海浪翻滾咆哮9.011暴風(fēng)28.5~32.6損毀普遍波峰全呈飛沫11.512臺(tái)風(fēng)/颶風(fēng)32.7以上摧毀巨大海浪滔天14.0現(xiàn)對(duì)所輸入的風(fēng)速進(jìn)行分類(lèi)并輸出。
1PROGRAMex07_062IMPLICITNONE3REALwind_velocity4PRINT*,'請(qǐng)輸入風(fēng)速:'5READ*,wind_velocity6SELECTCASE(INT(wind_velocity*10))7 CASE(0:2)8 PRINT*,'0級(jí)'9 PRINT*,'無(wú)風(fēng)'10 CASE(3:15)11 PRINT*,'1級(jí)'12 PRINT*,'軟風(fēng)'13 CASE(16:33)14 PRINT*,'2級(jí)'15 PRINT*,'輕風(fēng)'。
。。。。
。。。40 CASE(285:326)41 PRINT*,'11級(jí)'42 PRINT*,'暴風(fēng)'43 CASE(327:)44 PRINT*,'12級(jí)'45 PRINT*,'臺(tái)風(fēng)/颶風(fēng)'46 CASEDEFAULT47 PRINT*,'非法數(shù)據(jù)'48ENDSELECT49END
在一個(gè)塊IF結(jié)構(gòu)中都可以完整地包含一個(gè)(或多個(gè))塊IF結(jié)構(gòu),即構(gòu)成塊IF的嵌套結(jié)構(gòu)。它的結(jié)構(gòu)為:
3.2.4選擇語(yǔ)句的嵌套
當(dāng)嵌套層次過(guò)多時(shí),往往一時(shí)難以找到同一層的塊IF中的各語(yǔ)句,一般可按以下方法確定:
(1)從最內(nèi)層的塊IF語(yǔ)句開(kāi)始,向下找到離它最近的ENDIF語(yǔ)句,將它們用線括起來(lái),這就是同一層次的塊IF。(2)由內(nèi)向外重復(fù)這一個(gè)過(guò)程,直到遇見(jiàn)最外層塊IF語(yǔ)句和ENDIF語(yǔ)句為止。(3)在書(shū)寫(xiě)嵌套分支結(jié)構(gòu)時(shí)采取縮進(jìn)方式進(jìn)行程序書(shū)寫(xiě),程序的嵌套層次就容易確定?!纠?-7】求解當(dāng)系數(shù)a,b,c為不同情況下的一元二次方程根。N-S圖如下:
READ*,a,b,cd=b**2-4.0*a*cIF(a==0.0)THENIF(b==0.0)THENIF(c==0.0)THEN PRINT*,'平凡解'ELSEPRINT*,'無(wú)解'ENDIFELSEPRINT*,'一個(gè)實(shí)根'PRINT*,-c/dENDIFELSEIF(d>0.0)THEN x1=(-b+sqrt(d))/(2.0*a) x2=(-b-sqrt(d))/(2.0*a) PRINT*,'兩個(gè)不等實(shí)根:' PRINT*,'x1=',x1 PRINT*,'x2=',x2ELSEIF(d==0.0)THEN PRINT*,'兩個(gè)相等實(shí)根' PRINT*,-b/(2.0*a)ELSE pr=-b/(2.0*a) pi=sqrt(-d)/(2.0*a) PRINT*,'兩個(gè)復(fù)根' PRINT*,'x1=',pr,'+',pi,'i' PRINT*,'x2=',pr,'-',pi,'i'ENDIFENDIFEND【例3-8】已知U,V風(fēng)速,判斷風(fēng)向:U>0;V>0西南風(fēng)U>0;V<0西北風(fēng)U<0;V>0東南風(fēng)U<0;V<0東北風(fēng)programex0308realu,vread*,u,vif(u>0.0)then
if(v>0.0)then!u>0,v>0print*,'西南風(fēng)'
elseif(v<0.0)then!u>0,v<0print*,'西北風(fēng)‘
else!u>0,v=0print*,'西風(fēng)'
endifelseif(u<0.0)then
if(v>0.0)then!u<0,v>0print*,'東南風(fēng)'
elseif(v<0.0)then!u<0,v<0print*,'東北風(fēng)'
else!u<0,v=0print*,'東風(fēng)‘
endifelse
if(v>0.0)then!u=0,v>0print*,'南風(fēng)'
elseif(v<0.0)then!u=0,v<0print*,'北風(fēng)'
else!u=0,v=0print*,'無(wú)風(fēng)'
endifendifend3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
3.3.1循環(huán)語(yǔ)句的形式3.3.2循環(huán)控制語(yǔ)句3.3.3循環(huán)語(yǔ)句的嵌套3.3.4兩種循環(huán)形式的比較和關(guān)系3.3.1循環(huán)語(yǔ)句的形式
(1)有循環(huán)變量的DO循環(huán)結(jié)構(gòu)
格式有循環(huán)變量DO結(jié)構(gòu)的一般形式為:[結(jié)構(gòu)名:]DO循環(huán)變量=E1,E2,E3
循環(huán)體ENDDO[結(jié)構(gòu)名]DO循環(huán)結(jié)構(gòu)的程序舉例【例3-9】了解循環(huán)執(zhí)行的過(guò)程和計(jì)算循環(huán)次數(shù)DOI=1,3,2M=I*IPRINT*,I,MENDDOEND運(yùn)行結(jié)果DO循環(huán)結(jié)構(gòu)循環(huán)的次數(shù):R=MAX(INT((E2-E1+E3)/E3),0)REAL::IDOI=0.6,6.6,1.4INTEGER::IDOI=0.6,6.6,1.4DOR=0.6,6.6,-1.4DOR=6.6,0.6,1.45次,0.6,2.0,3.4,4.8,6.27次,0,1,2,3,4,5,60次0次先計(jì)算E1、E2、E3的值,然后轉(zhuǎn)換為與循環(huán)控制變量相同的類(lèi)型;給循環(huán)控制變量賦初值
v=E1;計(jì)算循環(huán)次數(shù),計(jì)算公式為:
R=MAX(INT((E2-E1+E3)/E3),0)檢查循環(huán)次數(shù),當(dāng)R0時(shí),執(zhí)行循環(huán)體,繼續(xù)做第(4-6)步;當(dāng)
R≤0時(shí),轉(zhuǎn)向(7);當(dāng)執(zhí)行到循環(huán)終端語(yǔ)句時(shí),循環(huán)變量按步長(zhǎng)增值,即:循環(huán)變量
=循環(huán)變量
+E3;循環(huán)次數(shù)減1:R=R–1;返回
(4)繼續(xù)執(zhí)行。
循環(huán)結(jié)束。執(zhí)行過(guò)程注意事項(xiàng)循環(huán)變量在循環(huán)體中可以引用不能重新賦值E1、E2、E3的類(lèi)型應(yīng)與循環(huán)變量相同。E3的缺省意味著循環(huán)步長(zhǎng)為1??梢圆唤?jīng)過(guò)ENDDO語(yǔ)句退出循環(huán)DO循環(huán)和其它結(jié)構(gòu)(如塊IF結(jié)構(gòu)、CASE結(jié)構(gòu))可以相互嵌套使用退出循環(huán)后,循環(huán)變量仍然存在?!纠?-10】循環(huán)輸入一周日最高氣溫,判斷最高氣溫,并計(jì)算一周平均最高氣溫。2014年3月23日-29日南京日最高氣溫如下:16.017.017.018.016.022.024.0(單位:℃)。programex0309realt,tmax,sum,taveIntegeritmax=0.0sum=0.0doi=1,7read*,tsum=t+sumif(t>=tmax)thentmax=tendifenddotave=sum/7.0print*,'tmax=',tmaxprint*,'tave=',taveend43(2)DO-WHILE控制的循環(huán)結(jié)構(gòu)
DO-WHILE結(jié)構(gòu)格式一般形式為:[結(jié)構(gòu)名:]DOWHILE(邏輯表達(dá)式)
循環(huán)體
ENDDO[結(jié)構(gòu)名]例子【例3-11】循環(huán)輸入每六小時(shí)降水資料,如果發(fā)現(xiàn)數(shù)據(jù)小于0或者大于1000時(shí),終止循環(huán),并提示輸入數(shù)據(jù)異常。realprecipprint*,'輸入每六小時(shí)降水量(mm):'read*,precipdowhile(precip.ge.0.and.precip.le.1000) print*,'降水量(mm):',precip read*,precipenddoprint*,'輸入數(shù)據(jù)異常'end程序運(yùn)行結(jié)果45DO-WHILE循環(huán)流程圖
46循環(huán)結(jié)構(gòu)的選擇:如果已知循環(huán)的次數(shù),或者知道循環(huán)的初值和終值,那么用有循環(huán)變量的DO循環(huán)結(jié)構(gòu)。知道循環(huán)的條件時(shí),選用DO_WHILE循環(huán)結(jié)構(gòu),或者是重復(fù)DO循環(huán)結(jié)構(gòu)。其中在使用這兩種結(jié)構(gòu)時(shí),注意循環(huán)條件的變化,以避免“死循環(huán)”。47(1)EXIT語(yǔ)句EXIT語(yǔ)句用于強(qiáng)制退出循環(huán),將執(zhí)行控制轉(zhuǎn)移到當(dāng)前循環(huán)或結(jié)構(gòu)之外。
一般格式為:
EXIT[DO循環(huán)結(jié)構(gòu)名]
3.3.2循環(huán)流程控制語(yǔ)句48EXIT語(yǔ)句的使用說(shuō)明:EXIT語(yǔ)句通常是作為邏輯IF語(yǔ)句的內(nèi)嵌語(yǔ)句來(lái)使用。其作用是有條件中斷。
形式為:IF(邏輯表達(dá)式)EXIT[結(jié)構(gòu)名]
執(zhí)行過(guò)程為:當(dāng)邏輯表達(dá)式為真時(shí),中止正在執(zhí)行的循環(huán),將控制轉(zhuǎn)到EXIT語(yǔ)句指定的結(jié)構(gòu)之后;當(dāng)邏輯表達(dá)式為假時(shí),繼續(xù)正在執(zhí)行的循環(huán),不進(jìn)行任何轉(zhuǎn)移。49【例3-12】輸入正整數(shù)n,求級(jí)數(shù)的前n項(xiàng)和,如果當(dāng)某項(xiàng)絕對(duì)值≤10-5時(shí),雖未滿n項(xiàng),也因滿足精度而不再加入下一項(xiàng)。1PROGRAMex08_08
2IMPLICITNONE
3INTEGER::i,n
4REAL::s=0,t
5READ*,n
6DOi=1,n
7t=1./(i*(i+1))!注意t要求是實(shí)型8s=s+t
9IF(ABS(t)<=1.E-5)EXIT!循環(huán)的非正常出口時(shí),I的值為當(dāng)前值10ENDDO
11IF(i==n+1)i=i-1!循環(huán)正常出口時(shí),I的值為終值+步長(zhǎng)12PRINT*,'SUM=',s,'TERM=',i
13END
51(2)CYCLE語(yǔ)句
CYCLE語(yǔ)句用于中止執(zhí)行循環(huán)體中剩余的語(yǔ)句,重新執(zhí)行下一輪循環(huán)。
一般格式為:
CYCLE[DO循環(huán)結(jié)構(gòu)名]52CYCLE語(yǔ)句的使用說(shuō)明:CYCLE語(yǔ)句與EXIT語(yǔ)句不同,它不中止循環(huán)的執(zhí)行,而是將循環(huán)變量增加一個(gè)步長(zhǎng),從下一個(gè)循環(huán)開(kāi)始執(zhí)行。CYCLE語(yǔ)句通常是作為邏輯IF語(yǔ)句的內(nèi)嵌語(yǔ)句來(lái)使用。形式為: IF(邏輯表達(dá)式)CYCLE[DO循環(huán)結(jié)構(gòu)名]
53執(zhí)行過(guò)程:當(dāng)邏輯表達(dá)式為真時(shí),中止正在執(zhí)行的循環(huán)體的剩余語(yǔ)句,將控制轉(zhuǎn)到循環(huán)體的開(kāi)始重新循環(huán);當(dāng)邏輯表達(dá)式為假時(shí),繼續(xù)正在執(zhí)行的循環(huán),不進(jìn)行任何轉(zhuǎn)移?!纠?-13】順序輸出1-10序列中除了9以外的其它數(shù)字doi=1,10 if(i==9)cycle print*,ienddoend運(yùn)行結(jié)果【練習(xí)】輸入3月份氣溫,缺測(cè)記錄為999,請(qǐng)統(tǒng)計(jì)3月份平均氣溫。programmainimplicitnonerealt,tsum,taveintegeri,numtsum=0.0num=0doi=1,31read*,tif(t==999.0)cycletsum=tsum+tnum=num+1enddotave=tsum/numprint*,taveendprogrammainimplicitnonerealt,tsum,taveintegeri,numtsum=0.0num=0doi=1,31read*,tif(t/=999.0)thentsum=tsum+tnum=num+1endifenddotave=tsum/numprint*,taveend563.3.3循環(huán)語(yǔ)句的嵌套
DO循環(huán)結(jié)構(gòu)嵌套的一般格式為:
[結(jié)構(gòu)名1:]DOV1=E11,E12,E13[其它循環(huán)體][結(jié)構(gòu)名2:]DOV2=E21,E22,E23
內(nèi)部循環(huán)體
ENDDO[結(jié)構(gòu)名2][其它循環(huán)體]ENDDO[結(jié)構(gòu)名1]【例3-13】doj=1,2 print*,'第',j,'次外循環(huán)開(kāi)始' print*,'****' doi=1,3 print*,'第',(j-1)*3+i,'次內(nèi)循環(huán)' enddo print*,'第',j,'次外循環(huán)結(jié)束' print*,'****'enddoend運(yùn)行結(jié)果58循環(huán)嵌套執(zhí)行的過(guò)程
計(jì)算外層循環(huán)次數(shù)R1,I賦初值R1>0計(jì)算內(nèi)層循環(huán)次數(shù)R2,J賦初值R2>0執(zhí)行內(nèi)層循環(huán)體J=J+內(nèi)層循環(huán)步長(zhǎng)R2=R2-1I=I+外層循環(huán)步長(zhǎng)R1=R1-159循環(huán)嵌套循環(huán)的次數(shù):外層循環(huán)的次數(shù)為:R1內(nèi)層循環(huán)的次數(shù)為:R2整個(gè)循環(huán)的次數(shù)為:RR=R1*R260計(jì)算循環(huán)嵌套循環(huán)次數(shù):M=0DOI=1,3,4
DOJ=4,19,4 M=M+1
PRINT*,M
ENDDOENDDOEND運(yùn)行結(jié)果61嵌套DO循環(huán)的說(shuō)明
三種DO循環(huán)結(jié)構(gòu)必須是完整的嵌套。循環(huán)嵌套時(shí),內(nèi)、外層不能使用相同的循環(huán)變量。循環(huán)轉(zhuǎn)移的問(wèn)題。DO循環(huán)結(jié)構(gòu)可以與選擇結(jié)構(gòu)的嵌套。62計(jì)算循環(huán)嵌套循環(huán)次數(shù):M=0II:DOI=1,3,4 JJ:DOJ=4,19,4 M=M+1 if(M>=3)EXITII ENDDOJJENDDOIIPRINT*,MEND運(yùn)行結(jié)果3.3.4兩種循環(huán)形式的比較和關(guān)系
(1)帶循環(huán)變量的DO循環(huán)用來(lái)處理已確定循環(huán)次數(shù)的問(wèn)題。DOWHILE循環(huán)既可以用來(lái)處理已知循環(huán)次數(shù)的循環(huán)問(wèn)題,也可用來(lái)處理不確定循環(huán)次數(shù)的問(wèn)題。(2)對(duì)事先已確定循環(huán)次數(shù)的問(wèn)題,用帶循環(huán)變量的DO循環(huán)比較方便,它能使循環(huán)變量自動(dòng)增值,不需用戶寫(xiě)邏輯表達(dá)式,只需寫(xiě)出循環(huán)變量的初值、終值和步長(zhǎng)即可,使用方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中國(guó)地質(zhì)調(diào)查局呼和浩特自然資源綜合調(diào)查中心招聘筆試真題2024
- 松原市繁榮社區(qū)衛(wèi)生服務(wù)中心招用人員筆試真題2024
- 2024年麗水市蓮都區(qū)人才引進(jìn)招聘考試真題
- 南安市龍泉中學(xué)招聘筆試真題2024
- 嘉峪關(guān)市市場(chǎng)監(jiān)督管理局公益性崗位招聘筆試真題2024
- 四年級(jí)美術(shù)下冊(cè)教學(xué)反思與改進(jìn)計(jì)劃
- 幼兒園食堂衛(wèi)生安全工作計(jì)劃
- 2025年幼兒園學(xué)期課程安排計(jì)劃
- 方程與不等式的應(yīng)用大題專(zhuān)練(真題6道模擬30道)-中考數(shù)學(xué)重難題型押題培優(yōu)導(dǎo)練案(專(zhuān)用)【原卷版】
- 2025年職工安全培訓(xùn)考試試題a4版
- 渠道施工課件
- 預(yù)防艾滋病宣傳教育主題班會(huì)
- Part1-2 Unit1 Travel 教案-【中職專(zhuān)用】高一英語(yǔ)精研課堂(高教版2021·基礎(chǔ)模塊2)
- 城市普通中小學(xué)校校舍建設(shè)標(biāo)準(zhǔn)
- 數(shù)字化時(shí)代的金融監(jiān)管
- 《瘋狂動(dòng)物城》全本臺(tái)詞中英文對(duì)照
- 金融風(fēng)險(xiǎn)傳染性研究
- 小學(xué)科學(xué)實(shí)驗(yàn)?zāi)夸?-6年級(jí)新教科版
- 成人體外心肺復(fù)蘇專(zhuān)家共識(shí)(2023版)解讀
- 光伏電站事故處理規(guī)程
- 寵物共同撫養(yǎng)協(xié)議書(shū)范本
評(píng)論
0/150
提交評(píng)論