版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、FORTRAN結(jié)構(gòu)化程序設(shè)計(jì)和實(shí)例介紹本章內(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) 順序結(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定波閘
2、71.5208.5352.147.262.6肖山65.5200.0239.744.363.0表3-1 1998年主要站汛期雨量統(tǒng)計(jì)表1 PROGRAM ex06_022 IMPLICIT NONE3 REAL r11,r12,r13,r14,r15,total11,av114 REAL r21,r22,r23,r24,r25,total21,av215 REAL r31,r32,r33,r34,r35,total31,av316 REAL av1,av2,av3,av4,av57 WRITE(*,“(28X,5月 6月 7月 8月 9月)”)8 WRITE(*,“(1X,輸入江陰氣象站五個(gè)月的
3、雨:,)”)9 READ(*,*) r11,r12,r13,r14,r1510 WRITE(*,“(1X,輸入定波閘氣象站五個(gè)月的雨量:,)”)11 READ(*,*) r21,r22,r23,r24,r2512 WRITE(*,“(1X,輸入肖山氣象站五個(gè)月的雨量:,)”)13 READ(*,*) r31,r32,r33,r34,r3514 ! 100FORMAT(F5.1,F5.1,F5.1,F5.1,F5.1)15 total11=r11+r12+r13+r14+r1516 av11=total11/517 total21=r21+r22+r23+r24+r2518 av21=total
4、21/519 total31=r31+r32+r33+r34+r3520 av31=total31/521 av1=(r11+r21+r31)/322 av2=(r12+r22+r32)/3 23 av3=(r13+r23+r33)/324 av4=(r14+r24+r34)/325 av5=(r15+r25+r35)/326 WRITE(*,“(26X,5月 6月 7月 8月 9月 總雨量 平均雨量)”)27 WRITE(*,200)江陰氣象站五個(gè)月的雨量:, r11,r12,r13,r14,r15,total11,av1128 WRITE(*,200)定波閘氣象站五個(gè)月的雨量:, r21,
5、r22,r23,r24,r25,total21,av2129 WRITE(*,200)肖山氣象站五個(gè)月的雨量:, r31,r32,r33,r34,r35,total31,av3130 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月,av532 300 FORMAT(1X,A4,平均雨量:,F7.3)33 END運(yùn)行結(jié)果: 選擇結(jié)構(gòu) 選擇結(jié)構(gòu)簡(jiǎn)介 IF語(yǔ)句 SELECT CASE語(yǔ)句 選擇語(yǔ)句的嵌套 選擇結(jié)構(gòu)簡(jiǎn)介依據(jù)給定的條件做邏輯判斷,再根據(jù)判斷的結(jié)果決定應(yīng)執(zhí)行哪
6、種操作選擇結(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)多分支 IF語(yǔ)句 (1)單分支塊IF結(jié)構(gòu)一般形式為:IF(條件)THENIF塊END IF這種塊IF結(jié)構(gòu)包括:塊IF語(yǔ)句“IF(條件)THEN”。它是塊IF結(jié)構(gòu)的入口語(yǔ)句。IF塊。它是一個(gè)語(yǔ)句序列,
7、由若干條可執(zhí)行語(yǔ)句組成。END IF語(yǔ)句。它是塊IF結(jié)構(gòu)的出口語(yǔ)句。 【例3-2】從鍵盤(pán)輸入一個(gè)氣溫值,如果大于,則顯示在屏幕上。1PROGRAM ex04_022IMPLICIT NONE 3REAL T4READ *,T5IF(T35.0)THEN6PRINT *, 這是高溫7PRINT *, T=,T8END IF9END(2)雙分支塊IF結(jié)構(gòu)一般形式為:IF(條件)THENIF塊ELSEELSE塊END IF【例3-3】由于大氣受到污染,一些地區(qū)開(kāi)始形成酸雨區(qū),酸雨是指PH值小于的雨雪或其他形式的大氣降水。通過(guò)收集水樣測(cè)量其PH值,判斷它的酸堿性并打印出來(lái)。根據(jù)題意設(shè)計(jì)算法并畫(huà)出程序流
8、程圖,如圖所示。1PROGRAM ex07_032IMPLICIT NONE 3REAL ph4WRITE(*,*)Please enter PH value:5READ *,ph!定義變量ph來(lái)存放酸堿度值6IF(ph5.6) THEN!用分支語(yǔ)句來(lái)判斷7WRITE(*,100) ph8ELSE9WRITE(*,200) ph10END IF11100 FORMAT(1X,PH=,F4.2,is acid rain!)12200 FORMAT(1X,PH=,F4.2,is not acid rain!)13END(3)多分支塊IF結(jié)構(gòu)一般形式為:IF(條件1)THEN塊1ELSE IF(條件
9、2) THEN塊2ELSE IF(條件3) THEN塊3.ELSE IF(條件n) THEN塊nELSE塊n+1END IF【例3-4】在氣象部門(mén)發(fā)布的天氣預(yù)報(bào)中小雨、中雨、暴雨等專(zhuān)業(yè)術(shù)語(yǔ),它們之間的區(qū)別如表所示: 降雨強(qiáng)度降雨量(12小時(shí),單位:mm)降雨量(24小時(shí),單位:mm)小雨51402501PROGRAM ex07_042IMPLICIT NONE3REAL r!定義用來(lái)記錄降雨量的實(shí)型量r4WRITE(*,100)5READ *,r6IF(r5) THEN !用多分支IF語(yǔ)句進(jìn)行判斷7PRINT 2008ELSE IF(r15) THEN9PRINT 30010ELSE IF(r
10、30) THEN11PRINT 40012ELSE IF(r70) THEN13PRINT 50014ELSE IF(r0.0) THENx1=(-b+sqrt(d)/(2.0*a)x2=(-b-sqrt(d)/(2.0*a)PRINT *,兩個(gè)不等實(shí)根:PRINT *,x1=,x1PRINT *,x2=,x2 ELSE IF(d=0.0) THENPRINT *,兩個(gè)相等實(shí)根PRINT *,-b/(2.0*a) ELSEpr=-b/(2.0*a)pi=sqrt(-d)/(2.0*a)PRINT *,兩個(gè)復(fù)根PRINT *,x1=,pr,+,pi,iPRINT *,x2=,pr,-,pi,i
11、END IFEND IFEND【例3-8】已知U,V風(fēng)速,判斷風(fēng)向:U0;V0西南風(fēng)U0;V0西北風(fēng)U0東南風(fēng)U0;V0.0) then if (v0.0) then !u0,v0 print *, 西南風(fēng) else if (v0, v0,v=0 print *, 西風(fēng) end ifelse if (u0.0) then !u0 print *, 東南風(fēng) else if (v0.0) then ! u0, v0 print *, 東北風(fēng) else ! u0.0) then !u=0,v0 print *, 南風(fēng) else if (v0.0) then ! u=0, v=tmax) thentm
12、ax=tend ifend doprint *, tmax=, tmaxprint *, tave=, taveend(2) DO-WHILE控制的循環(huán)結(jié)構(gòu) DO-WHILE結(jié)構(gòu)格式一般形式為: 結(jié)構(gòu)名: DO WHILE (邏輯表達(dá)式) 循環(huán)體 END DO 結(jié)構(gòu)名例子【例3-11】循環(huán)輸入每六小時(shí)降水資料,如果發(fā)現(xiàn)數(shù)據(jù)小于0或者大于1000時(shí),終止循環(huán),并提示輸入數(shù)據(jù)異常。real precipprint *, 輸入每六小時(shí)降水量(mm):read *, precipdo while(precip.ge.0.and.precip.le.1000)print *, 降水量(mm):, pre
13、cipread *, precipenddoprint *, 輸入數(shù)據(jù)異常end程序運(yùn)行結(jié)果DO-WHILE循環(huán)流程圖 循環(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)”。(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ǔ)句EXIT語(yǔ)句的使用說(shuō)明:EXIT語(yǔ)句通常是作為邏輯IF語(yǔ)句的內(nèi)嵌語(yǔ)句來(lái)使用。其作用是有條件中斷。 形
14、式為: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)移?!纠?-12】輸入正整數(shù)n,求級(jí)數(shù)的前n項(xiàng)和,如果當(dāng)某項(xiàng)絕對(duì)值105時(shí),雖未滿(mǎn)n項(xiàng),也因滿(mǎn)足精度而不再加入下一項(xiàng)。1PROGRAM ex08_082IMPLICIT NONE3INTEGER : i,n4REAL : s=0,t5READ *, n6DO i=1,n7 t=1./(i*(i+1)!注意t要求是實(shí)型8 s=s+t9 IF(ABS(t)0計(jì)算內(nèi)層循環(huán)次數(shù)R2,J賦初值 R20 執(zhí)行內(nèi)層循環(huán)體J
15、=J內(nèi)層循環(huán)步長(zhǎng)R2 R21I=I外層循環(huán)步長(zhǎng)R1 R11循環(huán)嵌套循環(huán)的次數(shù):外層循環(huán)的次數(shù)為:R1內(nèi)層循環(huán)的次數(shù)為:R2整個(gè)循環(huán)的次數(shù)為:R R=R1*R2計(jì)算循環(huán)嵌套循環(huán)次數(shù):M=0DO I=1,3,4DO J=4,19,4 M=M+1 PRINT *, M ENDDOENDDOEND運(yùn)行結(jié)果嵌套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)的嵌套。計(jì)算循環(huán)嵌套循環(huán)次數(shù):M=0II: DO I=1,3,4JJ: DO J=4,19,4 M=M+1 if(M=3)EXIT II ENDDO JJENDD
16、O IIPRINT*,MEND運(yùn)行結(jié)果3.3.4 兩種循環(huán)形式的比較和關(guān)系(1)帶循環(huán)變量的DO循環(huán)用來(lái)處理已確定循環(huán)次數(shù)的問(wèn)題。DO WHILE循環(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)增值,不需用戶(hù)寫(xiě)邏輯表達(dá)式,只需寫(xiě)出循環(huán)變量的初值、終值和步長(zhǎng)即可,使用方便。因此帶變量的DO循環(huán)在氣象上使用最為頻繁。(3)由于帶循環(huán)變量的DO循環(huán)只能判斷處理一個(gè)條件(循環(huán)次數(shù)R),當(dāng)需要多個(gè)入口條件時(shí),應(yīng)考慮DO WHILE 循環(huán)結(jié)構(gòu)。(4)各類(lèi)循環(huán)可以相互轉(zhuǎn)換以及互相嵌套。嵌套時(shí),需要完整嵌套。離散化均勻經(jīng)緯度網(wǎng)格【例3-14】沿著某一經(jīng)度剪開(kāi)球體1,請(qǐng)求出11度均勻經(jīng)緯度網(wǎng)格上,不同緯線(xiàn)上位置相鄰格點(diǎn)的實(shí)際球面距離。部分運(yùn)行結(jié)果程序舉例1那么同一經(jīng)線(xiàn)上,相鄰格點(diǎn)的實(shí)際球面距離是多少?假設(shè)降水資料的存放路徑按照右圖有規(guī)律地存放,請(qǐng)利用循環(huán),將1979年1月-1990年12月的資料路徑,依次輸出至屏幕上?!纠?-14】程序難點(diǎn)如何將年文件夾名稱(chēng)表示出來(lái)?如何將長(zhǎng)度有變化的月文件夾名稱(chēng)表示出來(lái)?如何將年、月兩個(gè)文件夾名稱(chēng)合并至整個(gè)文件路徑中
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 出差人員成果管理制度(3篇)
- 圓通快遞操作管理制度范本(3篇)
- 交流幫扶活動(dòng)方案策劃(3篇)
- 2026江西師范大學(xué)高層次人才招聘84人備考考試試題及答案解析
- 2026年臨沂市榮軍優(yōu)撫醫(yī)院(臨沂市心理醫(yī)院)公開(kāi)招聘綜合類(lèi)崗位工作人員(2人)備考考試題庫(kù)及答案解析
- 2026福建廈門(mén)市海員培訓(xùn)中心教學(xué)人員選聘1人備考考試試題及答案解析
- 2026山東事業(yè)單位統(tǒng)考臨沂市郯城縣招聘綜合類(lèi)崗位29人筆試備考試題及答案解析
- 2026北京中智集團(tuán)崗位招聘4人備考考試題庫(kù)及答案解析
- 2026河北廊坊師范學(xué)院選聘26人備考考試題庫(kù)及答案解析
- 2025廣東廣州市云迅供應(yīng)鏈管理有限公司第二次招聘12人參考考試題庫(kù)及答案解析
- DB11∕T161-2024城市道路融雪技術(shù)規(guī)程
- 企業(yè)領(lǐng)導(dǎo)力與團(tuán)隊(duì)管理能力提升
- UL508標(biāo)準(zhǔn)中文版-2018工控產(chǎn)品UL中文版標(biāo)準(zhǔn)
- 礦山安全生產(chǎn)標(biāo)準(zhǔn)化
- 云南省建筑工程竣工報(bào)告表
- 房屋拆除工程投標(biāo)方案(技術(shù)方案)
- GB/T 41339.4-2023海洋生態(tài)修復(fù)技術(shù)指南第4部分:海草床生態(tài)修復(fù)
- 固定動(dòng)火區(qū)申請(qǐng)表、告知書(shū)、管理規(guī)定
- 二片罐行業(yè)現(xiàn)狀與發(fā)展趨勢(shì)分析
- LY/T 1694-2007松脂采集技術(shù)規(guī)程
- FZ/T 01137-2016紡織品熒光增白劑的測(cè)定
評(píng)論
0/150
提交評(píng)論