




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Fortran語(yǔ)言(Fortran77結(jié)構(gòu)化程序設(shè)計(jì)),普通高校計(jì)算機(jī)基礎(chǔ)教學(xué)課程,2020/8/10,2,說(shuō)明 第一章 算法(略) 第二章 計(jì)算機(jī)和計(jì)算機(jī)程序(略),2020/8/10,3,第三章 Fortran語(yǔ)言程序設(shè)計(jì)初步,2020/8/10,4,3.1 Fortran語(yǔ)言的發(fā)展概況,FORmula TRANslator 公式翻譯器 Fortran語(yǔ)言是一種適合于科學(xué)和工程計(jì)算問(wèn)題的程序設(shè)計(jì)語(yǔ)言;也是計(jì)算機(jī)高級(jí)語(yǔ)言發(fā)展史上使用最早的一種程序設(shè)計(jì)語(yǔ)言。,2020/8/10,5,3.1 Fortran語(yǔ)言的發(fā)展概況,Fortran語(yǔ)言的發(fā)展過(guò)程: 1951年由約翰貝克斯等人開(kāi)始研究Fort
2、ran語(yǔ)言; 1957年第一個(gè)Fortran程序在IBM704機(jī)上運(yùn)行; 1958和1962年先后推出Fortran和Fortran; 1966和1978年先后頒布Fortran66和Fortran77; 1991年頒布了Fortran90。 現(xiàn)在已經(jīng)有了Fortran 95, Fortran 2003,2020/8/10,6,Fortran語(yǔ)言的特征,Fortran語(yǔ)言的最大特性是接近數(shù)學(xué)公式的自然描述,在計(jì)算機(jī)里具有很高的執(zhí)行效率。 易學(xué),語(yǔ)法嚴(yán)謹(jǐn)。 可以直接對(duì)矩陣和復(fù)數(shù)進(jìn)行運(yùn)算。 自誕生以來(lái)廣泛地應(yīng)用于數(shù)值計(jì)算領(lǐng)域,積累了大量高效而可靠的源程序。 很多專(zhuān)用的大型數(shù)值運(yùn)算計(jì)算機(jī)針對(duì)Fort
3、ran做了優(yōu)化。 廣泛地應(yīng)用于并行計(jì)算和高性能計(jì)算領(lǐng)域。 Fortran 90,F(xiàn)ortran 95,F(xiàn)ortran 2003的相繼推出使Fortran語(yǔ)言具備了現(xiàn)代高級(jí)編程語(yǔ)言的一些特性。,2020/8/10,7,3.2 簡(jiǎn)單的Fortran程序分析,例1:求一元二次方程x2+3x-5.6=0的根,并打印結(jié)果。 利用公式: (這里,a=1,b=3,c=-5.6),2020/8/10,8,3.2 簡(jiǎn)單的Fortran程序分析,編程如下: c the roots of the quadratic equation a=1.0 b=3.0 c=-5.6 x1=(-b+sqrt(b*b-4.0*a*
4、c)/(2.0*a) x2=(-b-sqrt(b*b-4.0*a*c)/(2.0*a) write(*,100)x1,x2 100 format(1x,x1=,f6.2,x2=,f6.2) end,2020/8/10,9,3.2 簡(jiǎn)單的Fortran程序分析,執(zhí)行結(jié)果: x1= 1.30 x2=-4.30,例2:試求3!,6!,9!的值。 編程如下:,2020/8/10,10,3.2 簡(jiǎn)單的Fortran程序分析,主程序: 子程序: c main program c subprogram j=k(3) function k(n) l=k(6) k=1 m=k(9) i=2 write(*,*)
5、j,l,m 5 if (i.le.n) then end k=k*i i=i+1 執(zhí)行結(jié)果: goto 5 6 720 362880 endif return end,2020/8/10,11,3.2 簡(jiǎn)單的Fortran程序分析,Fortran程序的基本結(jié)構(gòu): 一個(gè)Fortran源程序由一個(gè)或多個(gè)程序單位組成,每個(gè)程序單位以“end”語(yǔ)句結(jié)束。 每個(gè)程序單位包括若干行 語(yǔ)句行(執(zhí)行語(yǔ)句和非執(zhí)行語(yǔ)句行) 非語(yǔ)句行(注釋行) 語(yǔ)句前可不設(shè)標(biāo)號(hào),也可根據(jù)需要設(shè)標(biāo)號(hào)。 各類(lèi)語(yǔ)句在程序單位中的位置有一定規(guī)則。 程序必須按規(guī)定格式書(shū)寫(xiě)。,2020/8/10,12,3.3 Fortran源程序的書(shū)寫(xiě)格式,
6、Fortran77源程序必須按以下格式書(shū)寫(xiě): 每行只能在80列內(nèi)書(shū)寫(xiě),并把80列分為4個(gè)區(qū)。 15列:標(biāo)號(hào)區(qū) ( 15 位無(wú)符號(hào)整數(shù);第1列為“*”或“c”時(shí),為注釋行) 第6列:續(xù)行標(biāo)志區(qū) (非空格或非零字符;最多19個(gè)續(xù)行) 772列:語(yǔ)句區(qū) (書(shū)寫(xiě)語(yǔ)句;一行只能寫(xiě)一條語(yǔ)句) 7380列:語(yǔ)句注釋區(qū) (一般作編號(hào)注釋?zhuān)?2020/8/10,13,3.4 Fortran程序的編輯與運(yùn)行,Fortran PowerStation 4.0集成開(kāi)發(fā)環(huán)境 簡(jiǎn) 介,2020/8/10,14,3.4 Fortran程序的編輯與運(yùn)行,一、Fortran PowerStation 4.0的啟動(dòng) 選“開(kāi)始”“
7、程序”“Fortran PowerStation 4.0”“Microsoft Developer Studio”。 二、創(chuàng)建項(xiàng)目工作間 選“File”“New”“Project Workspace”“Console Application”,并輸入項(xiàng)目工作間名稱(chēng)(如:aaa)和存放項(xiàng)目工作間的位置或路徑(如:c:for) Create。,2020/8/10,15,3.4 Fortran程序的編輯與運(yùn)行,三、給項(xiàng)目工作間添加和編輯文件 打開(kāi)指定的項(xiàng)目工作間選 “Insert” “File into Project”輸入要添加的文件名(如:st01.for)“Add”。然后按Fortran程序的
8、書(shū)寫(xiě)規(guī)則編輯程序。 四、編譯項(xiàng)目工作間中的文件 打開(kāi)指定的文件選 “Build” “Compile st01.for”。 五、連編項(xiàng)目文件 選 “Build” “Build aaa.exe”。 六、運(yùn)行項(xiàng)目文件 選 “Build” “Execute aaa.exe”。(顯示程序執(zhí)行結(jié)果),2020/8/10,16,3.4 Fortran程序的編輯與運(yùn)行,注:若Fortran程序是由一個(gè)主程序文件和若干個(gè)子程序文件組成,則應(yīng)將各文件添加到同一項(xiàng)目工作間,分別進(jìn)行編譯,然后連編和運(yùn)行項(xiàng)目文件。 七、打開(kāi)項(xiàng)目文件 選“File”“Open”在打開(kāi)對(duì)話框文件類(lèi)型下拉列表中選“Project Works
9、pace(*.mdp)”然后選項(xiàng)目工作間文件夾中的項(xiàng)目文件。,2020/8/10,17,3.5 常 量,常量在程序執(zhí)行期間其值固定不變的量。 Fortran處理六種類(lèi)型的常量: 整型常量(Integer) 實(shí)型常量(Real) 雙精度常量(Double precision) 復(fù)型常量(Complex) 邏輯型常量(Logical) 字符型常量(Character),2020/8/10,18,3.5 常 量,3.5.1 整型常量 包括正、負(fù)整數(shù)和零。 例:5,-13,0, 說(shuō)明: 在(16位)微機(jī)中,整數(shù)的取值范圍為: -215215-1(-3276832767) 在(32位)微機(jī)中,整數(shù)的取值
10、范圍為: -231231-1(-21474836482147483647 ),2020/8/10,19,3.5 常 量,3.5.2 實(shí)型常量 (有二種表示形式) 小數(shù)形式 例:15.8,-21.05,14.0 ,14.,.17,0.0 , 指數(shù)形式(通常表示較大或較小的數(shù)) 例:1000000001.0E+8 0.00001251.25E-05 數(shù)字部分 指數(shù)部分,2020/8/10,20,3.5 常 量,說(shuō)明: 一個(gè)數(shù)值用指數(shù)形式表示時(shí)有兩種表達(dá)方式: 一個(gè)基本實(shí)數(shù)后面跟指數(shù)部分。 例: 0.8768.76E-1 -2589.4-2.5894E+3 一個(gè)整數(shù)后面跟指數(shù)部分。 例: 0.876
11、876E-3 -2589.4-25894E-1,2020/8/10,21,3.5 常 量,同一個(gè)數(shù)值可用不同的指數(shù)形式表示。 例: 0.8768.76E-187.6E-2876E-3 計(jì)算機(jī)在輸出時(shí),按標(biāo)準(zhǔn)化指數(shù)形式輸出。 例:0.282.800000E-01 -59.58E+12-5.958000E+13 即數(shù)字部分大于1,且小數(shù)點(diǎn)前只有一位非零數(shù)字的指數(shù)輸出形式。 在微機(jī)中,一般用四個(gè)字節(jié)存放一個(gè)實(shí)數(shù),其取值范圍為:10-751075。超出此范圍時(shí)為“溢出”錯(cuò)誤。,2020/8/10,22,3.5 常 量,下列形式為不合法的指數(shù)形式: 單獨(dú)的小數(shù)點(diǎn)和單獨(dú)的指數(shù)部分。 例:.E5, E10
12、指數(shù)部分只能是整數(shù),不能帶小數(shù)點(diǎn)。 例:8E0.5, 12.3E1.5 ,2020/8/10,23,3.6 變 量,變量在程序執(zhí)行期間其值可以改變的量。 3.6.1 變量的概念 Fortran為每一個(gè)變量分配一個(gè)相應(yīng)的存儲(chǔ)單元;每個(gè)變量在每個(gè)時(shí)刻只能有一個(gè)確定的值。 例:x=4.5 x x=8.0 x 注:在程序中用到的變量都必須要有確定的值。,4.5,8.0,2020/8/10,24,3.6 變 量,3.6.2 變量名 變量名標(biāo)識(shí)一個(gè)變量所用的名字。 命名規(guī)則: 變量名的第一個(gè)字符必須是字母; 在第一個(gè)字符后可跟15個(gè)字母或數(shù)字。 例: x,m1,total,k123,,2020/8/10,
13、25,3.6 變 量,注意幾點(diǎn): 變量名不區(qū)分大小寫(xiě)字母。 例:TOTAL,Total,total 代表同一變量 變量名中的空格不起作用。 例:abc,a bc,ab c,a b c 代表同一變量 變量名盡量做到“見(jiàn)名知義” AVER、SUM、Imax 允許變量名與語(yǔ)言中具有特定含義的字(“保留字”)同名。 例:sin,read,open,end, 建議不要使用fortran中具有特定含義的字作變量名,2020/8/10,26,3.6 變 量,3.6.3 變量的類(lèi)型 Fortran能處理各種類(lèi)型的變量。不同類(lèi)型的變量用來(lái)存放不同類(lèi)型的數(shù)據(jù)。 變量類(lèi)型的說(shuō)明(三種方式) 隱含說(shuō)明 即以I、j、k
14、、l、m、n開(kāi)頭的變量為整型變量,以其它字母開(kāi)頭的變量為實(shí)型變量。(“IN規(guī)則”) 例:imax,m5,number, 為整型變量 v,h2,aver, 為實(shí)型變量,2020/8/10,27,3.6 變 量,顯式說(shuō)明 即用類(lèi)型說(shuō)明語(yǔ)句指定變量的類(lèi)型。 如: Integer說(shuō)明變量為整型變量 Real說(shuō)明變量為實(shí)型變量 Double precision說(shuō)明變量為雙精度變量 Complex說(shuō)明變量為復(fù)型變量 Logical說(shuō)明變量為邏輯型變量 Character說(shuō)明變量為字符型變量,2020/8/10,28,3.6 變 量,如: Integer abc,xyz real imax,k3 logic
15、al a1,kpz 用implicit語(yǔ)句說(shuō)明 即說(shuō)明用某一字母開(kāi)頭的變量為指定的類(lèi)型。 例: implicit integer(a,b),real(k) implicit integer(x-z),2020/8/10,29,3.6 變 量,三種類(lèi)型說(shuō)明的優(yōu)先級(jí): 高 類(lèi)型說(shuō)明語(yǔ)句(顯式說(shuō)明) implicit語(yǔ)句說(shuō)明 低 “IN規(guī)則”,2020/8/10,30,3.7 Fortran內(nèi)部函數(shù),在編制Fortran程序時(shí),經(jīng)常要用到一些基本的數(shù)學(xué)函數(shù),如三角函數(shù)、指數(shù)函數(shù)、對(duì)數(shù)函數(shù)等。為方便用戶(hù),F(xiàn)ortran編譯系統(tǒng)已提供了這些函數(shù)的計(jì)算程序,需要時(shí)即可調(diào)用。 Fortran內(nèi)部函數(shù)調(diào)用格式
16、: 函數(shù)名(自變量),2020/8/10,31,3.7 Fortran內(nèi)部函數(shù),如: sin(90*3.14159/180) 1.0 sqrt(9.0) 3.0 abs(-5.6) 5.6 int(6.75) 6 exp(3.0) 20.085540 Fortran77全部?jī)?nèi)部函數(shù)見(jiàn)附錄,2020/8/10,32,3.7 Fortran內(nèi)部函數(shù),注意幾點(diǎn): 函數(shù)自變量(參數(shù))必須用括號(hào)括起來(lái)。 例:sinx+cosx sin(x)+cos(x) 函數(shù)自變量可以是常量、變量或表達(dá)式。 例: exp(3.0) sin (x+cos(x) 有些函數(shù)的類(lèi)型是由自變量的類(lèi)型確定的。 例:mod(8.0,
17、3.0) 2.0 mod(8,3) 2 三角函數(shù)的角度單位是“弧度”而不是“度”。 函數(shù)名分為“通用名”和“專(zhuān)用名”內(nèi)部函數(shù)名一般用“通用名”。,2020/8/10,33,3.8 Fortran算術(shù)表達(dá)式,Fortran77提供了四種表達(dá)式: 算術(shù)表達(dá)式 關(guān)系表達(dá)式 邏輯表達(dá)式 字符表達(dá)式 算術(shù)表達(dá)式將各運(yùn)算元素(常量、變量、函數(shù)和數(shù)組等)用算術(shù)運(yùn)算符連接起來(lái)的一個(gè)有值的式子。,2020/8/10,34,3.8 Fortran算術(shù)表達(dá)式,一、算術(shù)運(yùn)算符及其優(yōu)先級(jí) 算術(shù)運(yùn)算符(五種) 加(+) 減(-) 乘(*) 除(/) 乘方(*) 算術(shù)運(yùn)算符的優(yōu)先級(jí) 括號(hào)函數(shù)乘方乘、除加、減 注:同級(jí)運(yùn)算“
18、先左后右”,連續(xù)乘方時(shí)“先右后左”。,2020/8/10,35,3.8 Fortran算術(shù)表達(dá)式,例: 3+5-6.0*8.5/4*2+sin(x) 3+5-6.08.542sinx x*y*z、x*(y*z) xyz (x*y)*z (xy)z 有了算術(shù)表達(dá)式概念之后,我們就可以將:數(shù)學(xué)運(yùn)算式Fortran算術(shù)表達(dá)式,2020/8/10,36,3.8 Fortran算術(shù)表達(dá)式,二、算術(shù)表達(dá)式書(shū)寫(xiě)規(guī)則 表達(dá)式中的各運(yùn)算元素之間必須用運(yùn)算符分隔。 例:xyzx*y*z 2(x+y) 2*(x+y) 作任何運(yùn)算的表達(dá)式只能寫(xiě)在一行。 例: (a+b)/(c+d) a+b/c+d ,2020/8/1
19、0,37,3.8 Fortran算術(shù)表達(dá)式,兩個(gè)運(yùn)算符不能緊鄰。 例: a/(-b)-a/b a/-b 表達(dá)式一律用小括號(hào)。 例: ax+b(y+c) a*(x+b*(y+c),2020/8/10,38,3.8 Fortran算術(shù)表達(dá)式,三、表達(dá)式求值中的類(lèi)型問(wèn)題 同類(lèi)型量運(yùn)算的結(jié)果,仍為原類(lèi)型。 例:4*5=20,4.0*5.0=20.0 6.0/4.0=1.5,6/4=1(1.5) 不同類(lèi)型量運(yùn)算時(shí),先將低級(jí)類(lèi)型(整型)轉(zhuǎn)換為高級(jí)類(lèi)型(實(shí)型),然后再按同類(lèi)型量進(jìn)行運(yùn)算。 例:2.5*4=10.0( 10) 2.0*3=2.0*2.0*2.0=8.0(屬同類(lèi)量運(yùn)算),2020/8/10,39
20、,3.8 Fortran算術(shù)表達(dá)式,四、運(yùn)算中的誤差問(wèn)題 整數(shù)量運(yùn)算沒(méi)有誤差 實(shí)型量由于有效位數(shù)的限制,運(yùn)算時(shí)會(huì)出現(xiàn)誤差 例1:(1.0/3.0)*3.0=0.9999999 (1.0) 1.0/3.0=0.3333333 例2: X=1E30 Y=-1E30 Z=1.0 (X+Y)+Z=? X+(Y+Z)=?,2020/8/10,40,3.9 賦值語(yǔ)句,Fortran提供三類(lèi)賦值語(yǔ)句: 算術(shù)賦值語(yǔ)句 邏輯賦值語(yǔ)句 字符賦值語(yǔ)句 一、算術(shù)賦值語(yǔ)句一般格式 V=e 功能:把賦值號(hào)右邊表達(dá)式的值,賦給賦值號(hào)左邊的變量或數(shù)組元素。 例: S=3.14159*r*2,2020/8/10,41,3.9
21、賦值語(yǔ)句,二、算術(shù)賦值語(yǔ)句中的類(lèi)型轉(zhuǎn)換問(wèn)題 賦值號(hào)兩邊類(lèi)型一致時(shí),直接賦值。 例: k=355 賦值號(hào)兩邊類(lèi)型不一致時(shí),先計(jì)算,再轉(zhuǎn)換,最后賦值。 例:y1=6*2 (y1的值為12.0) Imax=3.6*2 (imax的值為7(7.27),2020/8/10,42,3.9 賦值語(yǔ)句,注意幾點(diǎn): 賦值號(hào)左邊只能是變量或數(shù)組元素,不能為帶運(yùn)算符的表達(dá)式。 例:3*a=6*x+sin(x) 一個(gè)賦值語(yǔ)句只能給一個(gè)變量或數(shù)組元素賦值。 例:a=b=c=d=3.5 一個(gè)賦值語(yǔ)句執(zhí)行后,賦值號(hào)左邊變量的原值被右邊表達(dá)式的值取代。 例:x=1.0 x=x+1.0 (x的值為2.0),2020/8/10,
22、43,3.10 簡(jiǎn)單的輸出語(yǔ)句,用戶(hù)編制的程序必須要有輸出語(yǔ)句,把結(jié)果顯示或打印出來(lái)。 Fortran提供了三種輸出方式: 表控格式輸出(標(biāo)準(zhǔn)或固定格式輸出) 指定格式輸出 無(wú)格式輸出(二進(jìn)制形式,適應(yīng)磁盤(pán)文件) 一、表控格式輸出 按Fortran編譯系統(tǒng)隱含規(guī)定的格式輸出。(即系統(tǒng)根據(jù)輸出數(shù)據(jù)的不同類(lèi)型,自動(dòng)給出相應(yīng)的輸出格式。),2020/8/10,44,3.10 簡(jiǎn)單的輸出語(yǔ)句,二、表控格式輸出語(yǔ)句 一般格式: print ,輸出表列 write (,)輸出表列 例1: print ,56.8,125 或 write (,) 56.8,125 例2: print ,a, b, c 或 w
23、rite (,) a, b, c,2020/8/10,45,3.10 簡(jiǎn)單的輸出語(yǔ)句,例3: x=12.5 y=90.5 z=x+y print *, x, y print *, z=, z end 運(yùn)行結(jié)果: 12.500000 90.500000 Z= 103.000000,2020/8/10,46,3.10 簡(jiǎn)單的輸出語(yǔ)句,整數(shù)的表控格式輸出 規(guī)定:每個(gè)整數(shù)占12列,數(shù)據(jù)打印在右端,左補(bǔ)空格。 例:print *,123,-1128 輸出結(jié)果: 123-1128,2020/8/10,47,3.10 簡(jiǎn)單的輸出語(yǔ)句,實(shí)數(shù)的表控格式輸出 規(guī)定:每個(gè)實(shí)數(shù)占16列,數(shù)據(jù)打印在右端,左補(bǔ)空格。 例
24、:print *,15.4,-321.45 輸出結(jié)果: 15.400000-321.450000,2020/8/10,48,3.10 簡(jiǎn)單的輸出語(yǔ)句,當(dāng)實(shí)數(shù)值的絕對(duì)值107或1時(shí),按標(biāo)準(zhǔn)的指數(shù)形式輸出。 例:print *,-10000000.,0.98 輸出結(jié)果: -1.000000E+079.800000E-01,2020/8/10,49,3.11 簡(jiǎn)單的輸入語(yǔ)句,Fortran提供了三種輸入方式: 表控格式輸入(自由格式輸入) 指定格式輸入 無(wú)格式輸入 一、表控格式輸入 表控格式輸入根據(jù)變量的數(shù)據(jù)類(lèi)型輸入相應(yīng)的數(shù)據(jù)形式,數(shù)據(jù)間以逗號(hào)或空格分隔的輸入方式。,2020/8/10,50,3.1
25、1 簡(jiǎn)單的輸入語(yǔ)句,二、表控格式輸入語(yǔ)句 一般格式: read ,輸入表列 read (,)輸入表列 例1: read ,a, b (若a=14.7, b=30.0) 鍵盤(pán)輸入: 14.7,30.0,2020/8/10,51,3.11 簡(jiǎn)單的輸入語(yǔ)句,例2: read ,x,k (若x=4.5,k=200) 鍵盤(pán)輸入: 4.5,200 例3: read ,x,y,z (若x=1.5,y=2.5,z=3.5) read ,i,j (若i=5,j=10) 鍵盤(pán)輸入: 1.5,2.5,3.5 5,10,2020/8/10,52,3.11 簡(jiǎn)單的輸入語(yǔ)句,注意幾點(diǎn): 輸入數(shù)據(jù)的個(gè)數(shù)不得少于read語(yǔ)句
26、中變量的個(gè)數(shù),但多余的數(shù)據(jù)也不起作用。 例: read ,x,y,z (若x=1.5,y=2.5,z=3.5) 鍵盤(pán)輸入: 1.5,2.5,3.5 1.5,2.5,3.5,5.2,6.0(最后兩個(gè)數(shù)被忽略) 1.5,2.5(計(jì)算機(jī)將等待用戶(hù)繼續(xù)輸入數(shù)據(jù)),2020/8/10,53,3.11 簡(jiǎn)單的輸入語(yǔ)句,注意幾點(diǎn): 一個(gè)read語(yǔ)句可以分多行輸入,但每一個(gè)read語(yǔ)句必須從新的一行輸入。 例: read ,x,y,z (若x=1.5,y=2.5,z=3.5) read ,i,j (若i=5,j=10) 鍵盤(pán)輸入: 1.5 2.5 3.5 5,10 若鍵盤(pán)輸入: 1.5,2.5,3.5,5,1
27、0 (錯(cuò)),2020/8/10,54,3.11 簡(jiǎn)單的輸入語(yǔ)句,在輸入數(shù)據(jù)時(shí)若出現(xiàn)“/”,則終止對(duì)此read語(yǔ)句的輸入。 例: read ,x,y,z 鍵盤(pán)輸入: 1.5,2.5/ (變量z的值為原值或?yàn)榱?。?2020/8/10,55,3.12 參數(shù)語(yǔ)句(parameter語(yǔ)句),一、parameter語(yǔ)句的功能 為常量命名,即用一個(gè)符號(hào)代表一個(gè)常量。 二、parameter語(yǔ)句一般形式 Parameter(p1=c1,p2=c2,pn=cn) 其中: pn符號(hào)常量; cn常量。,2020/8/10,56,3.12 參數(shù)語(yǔ)句(parameter語(yǔ)句),例:求半徑為0.5m的圓面積和圓周長(zhǎng)。
28、編程如下: parameter (r=0.5,pi=3.14159) s=pi*r*2 h=2.0*pi*r print*,s,h end,2020/8/10,57,3.12 參數(shù)語(yǔ)句(parameter語(yǔ)句),注意幾點(diǎn): 參數(shù)語(yǔ)句必須寫(xiě)在所有可執(zhí)行語(yǔ)句之前; 符號(hào)常量的命名規(guī)則及類(lèi)型與變量相同,并遵循“IN規(guī)則”; 程序中不能給符號(hào)常量再賦值。,2020/8/10,58,3.13 pause語(yǔ)句, stop語(yǔ)句, end語(yǔ)句,一、pause語(yǔ)句 一般形式 Pause n 注:n為15位正整數(shù)或字符常量。 功能 暫停程序的執(zhí)行。 (一個(gè)程序單位可以有多個(gè)pause語(yǔ)句),2020/8/10,5
29、9,3.13 pause語(yǔ)句, stop語(yǔ)句, end語(yǔ)句,例: parameter (r=0.5,pi=3.14159) s=pi*r*2 h=2.0*pi*r pause 打印面積和周長(zhǎng) print*,s,h end,2020/8/10,60,3.13 pause語(yǔ)句, stop語(yǔ)句, end語(yǔ)句,二、stop語(yǔ)句 一般形式 stop n 注:n為15位正整數(shù)或字符常量。 功能 終止程序的執(zhí)行。 (一個(gè)程序單位可以有多個(gè)stop語(yǔ)句),2020/8/10,61,3.13 pause語(yǔ)句, stop語(yǔ)句, end語(yǔ)句,三、end語(yǔ)句 一般形式 end 功能 對(duì)主程序:終止程序的執(zhí)行和作為程序
30、單位的結(jié)束標(biāo)志; 對(duì)子程序:返回調(diào)用程序和作為程序單位的結(jié)束標(biāo)志。 (一個(gè)程序單位只能有一個(gè)end語(yǔ)句),2020/8/10,62,課后練習(xí)題,P7576:第五、八、十一題,2020/8/10,63,第四章 邏輯運(yùn)算和選擇結(jié)構(gòu),2020/8/10,64,計(jì)算機(jī)程序,程序設(shè)計(jì)的基本方法,計(jì)算機(jī)解決問(wèn)題所需要的一系列代碼化指令序列計(jì)算機(jī)程序。 程序=數(shù)據(jù)結(jié)構(gòu)+算法 即“程序就是在數(shù)據(jù)的某些特定的表示方式和結(jié)構(gòu)的基礎(chǔ)上,對(duì)抽象算法的具體描述?!?上述公式可擴(kuò)充為: 程序=數(shù)據(jù)結(jié)構(gòu)+算法+程序設(shè)計(jì)方法+語(yǔ)言工具,2020/8/10,65,所謂面向過(guò)程的程序設(shè)計(jì),是指利用面向過(guò)程的語(yǔ)言工具(如Basic
31、、Pascal、Fortran和C等)進(jìn)行程序開(kāi)發(fā)的各項(xiàng)活動(dòng)。,程序設(shè)計(jì)的基本方法,面向過(guò)程的程序設(shè)計(jì),優(yōu)點(diǎn):編程簡(jiǎn)單、結(jié)構(gòu)性強(qiáng)、可讀性好,程序執(zhí)行時(shí)序特征明顯;遵循這種結(jié)構(gòu)的程序只有一個(gè)入口和一個(gè)出口。 缺點(diǎn):存在數(shù)據(jù)與程序模塊的分離和程序的可重用性差等問(wèn)題。,2020/8/10,66,程序設(shè)計(jì)的基本方法,結(jié)構(gòu)化程序設(shè)計(jì)方法:,結(jié)構(gòu)化編碼 在結(jié)構(gòu)化程序設(shè)計(jì)中,任何復(fù)雜的算法,都可以由三種基本結(jié)構(gòu)組成。 在構(gòu)造算法時(shí),也僅以三種基本結(jié)構(gòu)作為基本單元。 遵循這種結(jié)構(gòu)的程序只有一個(gè)輸入口和一個(gè)輸出口。,模塊化設(shè)計(jì) 將一個(gè)復(fù)雜問(wèn)題的程序分為若干個(gè)程序模塊,每個(gè)模塊完成一項(xiàng)特定功能;其中有一個(gè)主模塊和
32、若干個(gè)子模塊,主模塊控制各個(gè)子模塊來(lái)實(shí)現(xiàn)整個(gè)程序的功能。,自頂向下,逐步細(xì)化,2020/8/10,67,程序設(shè)計(jì)的基本方法,面向?qū)ο蟮某绦蛟O(shè)計(jì),面向?qū)ο蟮某绦蛟O(shè)計(jì)是一種新的程序設(shè)計(jì)范型。它將一些新的理念和結(jié)構(gòu)化程序設(shè)計(jì)中好的思想相融合,提供了一種全新的程序設(shè)計(jì)方法。,2020/8/10,68,4.1 算法及其表示方法,一、算法的概念 算法解決某一問(wèn)題所采取的方法和步驟。 計(jì)算機(jī)算法計(jì)算機(jī)能夠執(zhí)行的算法。 計(jì)算機(jī)算法的特征: 有窮性操作步驟是有限的。 確定性方法步驟是明確的。 有效性方法是正確的,步驟是完整的。 必須有輸入和輸出。(取得必要的信息,給出正確的結(jié)果。),2020/8/10,69,4
33、.1 算法及其表示方法,Fortran是結(jié)構(gòu)化程序設(shè)計(jì)語(yǔ)言,每個(gè)程序單位可由三種基本結(jié)構(gòu)組成: 順序結(jié)構(gòu) 分支選擇結(jié)構(gòu) 循環(huán)結(jié)構(gòu) 實(shí)踐證明,任何復(fù)雜的問(wèn)題都可以用這三種基本結(jié)構(gòu)來(lái)描述。,2020/8/10,70,4.1 算法及其表示方法,二、算法的表示 用NS流程圖表示。(由幾種功能框組合而成) 矩形框用于表示順序結(jié)構(gòu)。 如:若先執(zhí)行語(yǔ)句A,再執(zhí)行語(yǔ)句B。,A,B,2020/8/10,71,4.1 算法及其表示方法,例:若a=1.5,b=4.5,求a+b的平方。 畫(huà)NS圖: 編程: A=1.5 B=4.5 C=(a+b)*2 Print *, c end,1.5a,4.5b,(a+b)2c,打
34、印 c,結(jié)束,2020/8/10,72,4.1 算法及其表示方法,三角框用于表示分支選擇結(jié)構(gòu)。 如:若P為條件,當(dāng)P成立執(zhí)行語(yǔ)句A,否則執(zhí)行語(yǔ)句B。,2020/8/10,73,4.1 算法及其表示方法,L形框用于表示循環(huán)結(jié)構(gòu)。 當(dāng)型循環(huán)(P為條件,A循環(huán)體) 如:若條件P成立,則執(zhí)行循環(huán)體A,否則跳出循環(huán)體。,2020/8/10,74,4.1 算法及其表示方法,直到型循環(huán)(P為條件,A循環(huán)體) 如:首先執(zhí)行循環(huán)體A,若條件P不成立繼續(xù)執(zhí)行循環(huán)體A,直到條件P成立為止。,2020/8/10,75,4.2 關(guān)系表達(dá)式,關(guān)系表達(dá)式是構(gòu)成選擇結(jié)構(gòu)判斷條件的基本式子。它也是一種最簡(jiǎn)單的邏輯表達(dá)式。 一、
35、關(guān)系運(yùn)算符(P80 表4-1) .gt. (大于) .ge. (大于等于) .eq. (等于) .lt. (小于) .le. (小于等于) .ne. (不等于),2020/8/10,76,4.2 關(guān)系表達(dá)式,二、關(guān)系表達(dá)式的一般形式 算術(shù)量關(guān)系運(yùn)算符算術(shù)量 即: 關(guān)系表達(dá)式是由關(guān)系運(yùn)算符將兩個(gè)算術(shù)量連接起來(lái)的式子。 關(guān)系表達(dá)式的運(yùn)算元素是算術(shù)量,結(jié)果是邏輯量:真(.True.)或假(.False.)。,2020/8/10,77,4.2 關(guān)系表達(dá)式,有了關(guān)系表達(dá)式,我們就可以將: 數(shù)學(xué)關(guān)系式 Fortran關(guān)系表達(dá)式 例: x+y15.4 x+y.gt.15.4 a+ba-b a+b.ne.a-
36、b ex2.17 exp(x).ge.2.17,2020/8/10,78,4.2 關(guān)系表達(dá)式,注意: 算術(shù)運(yùn)算優(yōu)先于關(guān)系運(yùn)算。 如:a+b.ne.a-b等同于(a+b).ne.(a-b) 實(shí)數(shù)運(yùn)算誤差對(duì)關(guān)系表達(dá)式的影響 如:1.0/3.0*3.0.EQ.1.0 值為.false. 1.0/3.0*3.0=0.9999999 對(duì)于 a.eq.b abs(a-b).lt.1E-6 c.ne.d abs(c-d).gt.1E-6,2020/8/10,79,4.3 邏輯表達(dá)式,關(guān)系表達(dá)式只能表達(dá)簡(jiǎn)單的關(guān)系,如: 5x10 就不能用關(guān)系表達(dá)式表達(dá),此時(shí)要用邏輯表達(dá)式。,2020/8/10,80,4.3
37、邏輯表達(dá)式,一、邏輯表達(dá)式的一般形式 邏輯量邏輯運(yùn)算符邏輯量 即: 邏輯表達(dá)式是由邏輯運(yùn)算符將兩個(gè)邏輯量連接起來(lái)的式子。 邏輯表達(dá)式的運(yùn)算元素是邏輯量,結(jié)果也是邏輯量:真(.True.)或假(.False.)。 邏輯量包括邏輯常量、邏輯變量和關(guān)系表達(dá)式。,2020/8/10,81,4.3 邏輯表達(dá)式,二、邏輯常量 兩個(gè):.true.(真).false.(假) 三、邏輯變量 用于存放邏輯常量的變量。 邏輯變量可以通過(guò)賦值語(yǔ)句來(lái)接受邏輯常量的值,但在使用前,要進(jìn)行類(lèi)型說(shuō)明。 例: logical a, b a=.true. b=.false.,2020/8/10,82,4.3 邏輯表達(dá)式,四、邏輯
38、運(yùn)算符 .and. (邏輯與) .or. (邏輯或) .not. (邏輯非) .eqv. (邏輯等(同或) .neqv.(邏輯不等(異或),2020/8/10,83,4.3 邏輯表達(dá)式,五、邏輯運(yùn)算符的運(yùn)算規(guī)則(P83 表4.3) 若a,b為兩個(gè)邏輯量,則: a.and.b(當(dāng)a、b同時(shí)為真時(shí),為真。) a.or.b (當(dāng)a、b中任意一個(gè)為真或同時(shí)為真時(shí),為真。) .not.a (當(dāng)a為真,其值為假;當(dāng)a為假,其值真。) a.eqv.b(當(dāng)a、b為同一邏輯常量時(shí),為真。) a.neqv.b(當(dāng)a、b不為同一邏輯常量時(shí),為真。),2020/8/10,84,4.3 邏輯表達(dá)式,六、邏輯表達(dá)式的運(yùn)算
39、次序(P84 表4.5) 運(yùn)算次序?yàn)椋?括號(hào)算術(shù)運(yùn)算關(guān)系運(yùn)算邏輯運(yùn)算 而邏輯運(yùn)算: .not.and.or.eqv.,.neqv.,2020/8/10,85,4.3 邏輯表達(dá)式,例1:寫(xiě)出下列條件的邏輯表達(dá)式。 5k10 k.ge.5.and.k.le.10 f3g或f5t abs(f).le.3*g.or.abs(f).eq.5*t 1a8并且1b8 (a.ge.1.and.a.le.8).and.(b.ge.1.and.b.le.8),2020/8/10,86,4.3 邏輯表達(dá)式,例2:若a=2.5,b=7.5,c=5.0,d=6.0,求下列邏輯表達(dá)式的值。 (a.lt.b).and.(b
40、.lt.c) t f f,2020/8/10,87,4.3 邏輯表達(dá)式,例2:若a=2.5,b=7.5,c=5.0,d=6.0,求下列邏輯表達(dá)式的值。 c/2.0+d.lt.a.and.not.true.or.c.le.d 8.5 F T F . F . T,2020/8/10,88,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),有以下三種典型的塊if選擇結(jié)構(gòu): if (條件) then (塊if語(yǔ)句) 塊 (then塊) endif (endif語(yǔ)句),2020/8/10,89,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu), if (條件) then 塊1 (then塊) else 塊2 (else塊) endif
41、,2020/8/10,90,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),例: 2X3 (X2) Y X5 (X2) 編程如下: read(*,*) x if (x.le.2) then y=2*x+3 else y=x+5 endif write(*,*)x=,x,y=,y end,2020/8/10,91,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu), if (條件1) then 塊1 else if (條件2) then 塊2 (else if塊) else if (條件n) then 塊n else 塊(n+1) endif,2020/8/10,92,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),說(shuō)明: 每個(gè)塊if中可以
42、完整地包含一個(gè)(或多個(gè))塊if結(jié)構(gòu),即構(gòu)成塊if 的嵌套結(jié)構(gòu)。如: if (條件1) then if (條件1) then 塊1 if (條件2) then else 塊2 if (條件2) then endif 塊2 else endif 塊1 endif endif,2020/8/10,93,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),一個(gè)塊if 語(yǔ)句必須和一個(gè)endif語(yǔ)句相對(duì)應(yīng)。 塊if 中的“then塊”、“else塊”和“else if塊”可為空塊。,2020/8/10,94,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),例1:求一元二次方程ax2+bx+c=0的根。 (當(dāng)b2-4ac0時(shí)有兩個(gè)實(shí)根,b
43、2-4ac0時(shí)有兩個(gè)復(fù)根。),2020/8/10,95,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),print*,input a,b,c: read*,a,b,c f=-b/(2.0*a) d=b*2-4.0*a*c g=sqrt(-d)/(2.0*a) if (d.ge.0.0) then print*,x1=,f,+i,g e=sqrt(d) print*,x2=,f,-i,g x1=(-b+e)/(2.0*a) endif x2=(-b-e)/(2.0*a) end print*,x1=,x1 print*,x2=,x2 else,2020/8/10,96,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),例2:
44、求下列函數(shù)值。 0 (x-10) 2x+20 (-10 x0) y= 20 (0 x20) 30-0.5x (20 x40) 50-x (40 x50) 0 (x50),2020/8/10,97,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),輸入x,true x-10 false,true x0 false,true x20 false,true x40 false,true x50 false,y=50-x y=0,打印y,y0,y=20,y=30-0.5x,y=2x+20,2020/8/10,98,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),源程序一: read*,x if (x.lt.50.0) then i
45、f (x.lt.-10.0) then y=50.0-x y=0.0 else else y=0.0 if (x.lt.0.0) then endif y=2.0*x+20.0 endif else endif if (x.lt.20.0) then endif y=20.0 endif else print*,y=,y if (x.lt.40.0) then end y=30.0-0.5*x else,2020/8/10,99,4.4 用塊 if 實(shí)現(xiàn)選擇結(jié)構(gòu),源程序二: read*,x print*,y=,y if (x.lt.-10.0) then end y=0.0 else if (
46、x.lt.0.0) then y=2.0*x+20.0 else if (x.lt.20.0) then y=20.0 else if (x.lt.40.0) then y=30.0-0.5*x else if (x.lt.50.0) then y=50.0-x else y=0.0 endif,2020/8/10,100,4.5 邏輯 if 語(yǔ)句,邏輯if語(yǔ)句也是一種選擇結(jié)構(gòu),但與塊if 不同,主要表現(xiàn)在: 只用一行表示一個(gè)選擇結(jié)構(gòu); 僅當(dāng)條件成立時(shí)執(zhí)行,并且只執(zhí)行一條語(yǔ)句。 邏輯if語(yǔ)句的一般形式: If條件語(yǔ)句 例:if (n.le.100) n=n+1,2020/8/10,101,4.
47、5 邏輯 if 語(yǔ)句,例: 2X3 (X2) Y X5 (X2) 編程如下: read(*,*) x read(*,*)x if (x.le.2) then if(x.le.2) y=2*x+3 y=2*x+3 if(x.gt.2) y=x+5 else write(*,*)y=,y y=x+5 end endif write(*,*)y=,y end,2020/8/10,102,課后練習(xí)題,P96: 第一三題;第四、五、七題,2020/8/10,103,第五章 循環(huán)結(jié)構(gòu)的實(shí)現(xiàn),2020/8/10,104,第五章 循環(huán)結(jié)構(gòu)的實(shí)現(xiàn),所謂循環(huán),是指在程序執(zhí)行過(guò)程中需要重復(fù)執(zhí)行的程序段。 在實(shí)際問(wèn)題
48、中,我們經(jīng)常遇到循環(huán),如: 求 n,n!, 無(wú)條件循環(huán) GOTO 循環(huán)結(jié)構(gòu) 直到型循環(huán) 條件循環(huán) 當(dāng)型循環(huán) 計(jì)數(shù)型循環(huán),2020/8/10,105,5.1 用goto語(yǔ)句實(shí)現(xiàn)循環(huán),goto語(yǔ)句的一般形式: goto 其中:s1語(yǔ)句標(biāo)號(hào)。 功能:程序執(zhí)行到此語(yǔ)句時(shí),無(wú)條件的轉(zhuǎn)向標(biāo)號(hào)為s1的語(yǔ)句去執(zhí)行。,例:求110的累加和。 編寫(xiě)程序段: integer x,sum x=0.0 sum=0.0 10 x=x+1 sum=sum+x goto 10,2020/8/10,106,5.1 用goto語(yǔ)句實(shí)現(xiàn)循環(huán),如果我們把以上goto語(yǔ)句作為邏輯if語(yǔ)句中的執(zhí)行語(yǔ)句,則就可以實(shí)現(xiàn)有條件的循環(huán)。即: i
49、nteger x,sum 求110的累加和 x=0.0 sum=0.0 10 x=x+1 sum=sum+x if(x.lt.10)goto 10 print*,sum end,2020/8/10,107,5.2 當(dāng)型循環(huán)的實(shí)現(xiàn),一、用塊if和goto語(yǔ)句實(shí)現(xiàn)循環(huán) 一般形式: s1 if (條件) then 標(biāo)號(hào) 塊 goto s1 endif,所謂當(dāng)型循環(huán),是指執(zhí)行循環(huán)體要依據(jù)事先給定的條件。當(dāng)條件成立時(shí)執(zhí)行循環(huán),否則就不執(zhí)行循環(huán)。,2020/8/10,108,5.2 當(dāng)型循環(huán)的實(shí)現(xiàn),編程如下: read*,n m=1 i=1 10 if (i.le.n) then m=m*i i=i+1
50、goto 10 endif print*,m end,例:求n!。,2020/8/10,109,5.2 當(dāng)型循環(huán)的實(shí)現(xiàn),二、用do while語(yǔ)句實(shí)現(xiàn)當(dāng)型循環(huán) 一般形式 do s1, while (條件) 循環(huán)體 s1 ,2020/8/10,110,5.2 當(dāng)型循環(huán)的實(shí)現(xiàn),例:求n!。 編程如下: read*,n m=1 i=1 do 10 while (i.le.n) m=m*i i=i+1 10 continue print*,m end,2020/8/10,111,5.3 直到型循環(huán)的實(shí)現(xiàn),一、用邏輯if語(yǔ)句實(shí)現(xiàn)直到型循環(huán) 一般形式 s1 循環(huán)體 if (條件) goto s1,所謂直到
51、型循環(huán),是指先執(zhí)行循環(huán)體,再判斷條件。如果條件為“假”(真),繼續(xù)執(zhí)行循環(huán),直到條件為“真”(假)時(shí)終止循環(huán)。,2020/8/10,112,5.3 直到型循環(huán)的實(shí)現(xiàn),例1:求n!。 編程如下: read*,n m=1 i=1 10 continue m=m*i i=i+1 if (i.le.n) goto 10 print*,m end,2020/8/10,113,5.3 直到型循環(huán)的實(shí)現(xiàn),編程如下: integer sign s=1.0 d=2.0 sign=1 10 sign=(-1)*sign t=sign/d s=s+t d=d+1 if (d.le.100.0) goto 10 pr
52、int*, s end,例2:求 的值。,2020/8/10,114,當(dāng)型與直到型循環(huán)的比較,當(dāng)型循環(huán) 直到型循環(huán) 不同:先判斷條件 先執(zhí)行循環(huán)體 再執(zhí)行循環(huán)體 再判斷條件 (循環(huán)體至少被 執(zhí)行一次),循環(huán)結(jié)構(gòu)關(guān)鍵:條件判斷 改變條件的語(yǔ)句,2020/8/10,115,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),當(dāng)循環(huán)的初值、終值和循環(huán)次數(shù)都已知時(shí),可用do語(yǔ)句實(shí)現(xiàn)循環(huán)。 用do語(yǔ)句實(shí)現(xiàn)的循環(huán)稱(chēng)為“do循環(huán)”。do循環(huán)是由一個(gè)do語(yǔ)句和循環(huán)體組成。,2020/8/10,116,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),一、一般形式 do s, v=e1, e2 ,e3 循環(huán)體 s 說(shuō)明: s循環(huán)體終端語(yǔ)句的標(biāo)號(hào) v循環(huán)控制
53、變量(do變量),可為整型、實(shí)型或雙精度,2020/8/10,117,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),一、一般形式 do s, v=e1, e2 ,e3 循環(huán)體 s 說(shuō)明: e1,e2,e3是整型、實(shí)型或雙精度表達(dá)式 e1循環(huán)變量初值 e2循環(huán)變量終值 e3循環(huán)變量增量(步長(zhǎng),默認(rèn)值:1) 當(dāng)v為整型變量,e3=1時(shí),e3可忽略,例:DO 10,I=1,10,2 DO 100,N=1,5,2020/8/10,118,do循環(huán)執(zhí)行過(guò)程 P103 圖5.8,2020/8/10,119,r=MAX(INT(e2-e1+e3)/e3),0),v v+e3,執(zhí)行過(guò)程 P103 圖5.7,并將其轉(zhuǎn)換為循環(huán)變量
54、的類(lèi)型,2020/8/10,120,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),例如:求110的累加和。 integer x,sum sum=0 DO 10,x=1,10 sum=sum+x x=x+1 10 continue print*,sum end,integer x,sum x=0.0 sum=0 10 if(x.le.10) then x=x+1 sum=sum+x goto 10 endif print*,sum end,2020/8/10,121,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),二、執(zhí)行過(guò)程(分四種情形) 當(dāng)e2e1且e30 : 當(dāng)e2e1且e30 :,2020/8/10,122,5.4 用do語(yǔ)
55、句實(shí)現(xiàn)循環(huán),當(dāng)e20 : 當(dāng)e2e1且e30 :,2020/8/10,123,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),編程如下: do 10 i=1, 30 read*, x 10 if (x.ge.60) print*, i, x end,循環(huán)體,例1:從鍵盤(pán)輸入30個(gè)學(xué)生的單科成績(jī),并將其中及格以上的學(xué)生序號(hào)和成績(jī)打印出來(lái)。,2020/8/10,124,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),例2:打印正弦sinx的值。(間隔0.1o,從0o360o) 編程如下: do 100 i=0, 3600 x=i/10.0 y=sin(x*3.14159/180) 100 print*, x=,x, y=, y end,2020/8/10,125,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),說(shuō)明: DO循環(huán)是當(dāng)型循環(huán) 可用e1, e2, e3的值求出循環(huán)次數(shù)。 計(jì)算公式:r=max(int(e2-e1+e3)/e3),0) e30 則運(yùn)行時(shí)出錯(cuò)(被零除) 例:do 10,i1.2,6.6,0.2 r=max(int(6-1+0/0),0)(因?yàn)檠h(huán)變量I是整型) e1e2且e30,則循環(huán)次數(shù)為0 由于實(shí)數(shù)在內(nèi)存中存儲(chǔ)的誤差,v, e1, e2, e3盡可能用整型量。,2020/8/10,126,5.4 用do語(yǔ)句實(shí)現(xiàn)循環(huán),說(shuō)明: e1,e2,e3的值在do循環(huán)體內(nèi)不會(huì)改變,即使給表達(dá)式e1,e2,e3中的變量賦值
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 吉林省延邊朝鮮族自治州汪清縣第六中學(xué)2025年高三高考模擬沖刺卷(提優(yōu)卷)(四)化學(xué)試題含解析
- 上海市浦東新區(qū)上海民辦張江集團(tuán)校2025屆初三畢業(yè)班教學(xué)質(zhì)量檢測(cè)試題數(shù)學(xué)試題含解析
- 江蘇省鹽城市濱海縣蔡橋初級(jí)中學(xué)2025年高三下學(xué)期質(zhì)量調(diào)查(一)物理試題含解析
- 山西省長(zhǎng)治二中2024-2025學(xué)年全國(guó)高三模擬考(二)全國(guó)卷英語(yǔ)試題試卷含解析
- 瀝青路面施工方案培訓(xùn)
- 湛江市大成中學(xué)高二上學(xué)期第四次月考物理試題
- 2025水產(chǎn)養(yǎng)殖承包合同范本
- 2025建筑材料購(gòu)銷(xiāo)合同模板下載
- 2025建筑材料采購(gòu)銷(xiāo)售合同模板
- 2025維修承包合同2
- (高清版)TDT 1036-2013 土地復(fù)墾質(zhì)量控制標(biāo)準(zhǔn)
- 人際交往與溝通課件第六章 人際交往禮儀
- 社會(huì)穩(wěn)定風(fēng)險(xiǎn)評(píng)估 投標(biāo)方案(技術(shù)標(biāo))
- 銷(xiāo)售銷(xiāo)售數(shù)據(jù)分析培訓(xùn)講義
- 超密集組網(wǎng)技術(shù)及其應(yīng)用
- 兩位數(shù)除以一位數(shù)(有余數(shù))計(jì)算題200道
- 產(chǎn)后早開(kāi)奶好處健康宣教
- 人效分析報(bào)告
- 2024屆江蘇省期無(wú)錫市天一實(shí)驗(yàn)校中考聯(lián)考英語(yǔ)試題含答案
- 內(nèi)鏡室院感培訓(xùn)知識(shí)
- 北師大版數(shù)學(xué)三年級(jí)下冊(cè)《長(zhǎng)方形的面積》
評(píng)論
0/150
提交評(píng)論