




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、2022-3-71uFORTRAN語(yǔ)言發(fā)展概況u簡(jiǎn)單的FORTRAN77程序分析uFORTRAN源程序的書(shū)寫(xiě)格式uFORTRAN源程序鍵盤(pán)、輸入u常 量u變 量lFORTRAN函數(shù)lFORTRAN算術(shù)表達(dá)式l賦值語(yǔ)句l簡(jiǎn)單的輸出與輸入l參數(shù)語(yǔ)句lEND、STOP、PAUSE語(yǔ)句http:/ 語(yǔ)言于 1954 年提出,1956 年正式使用,是世界上最早被推廣使用的高級(jí)語(yǔ)言,主要應(yīng)用于數(shù)值計(jì)算領(lǐng)域。FORTRANFORmula TRANslation 的縮寫(xiě)。FORTRAN 771980 年被接受為國(guó)際標(biāo)準(zhǔn),該標(biāo)準(zhǔn)分為全集和子集。在此之前FORTRAN 語(yǔ)言先后推出了不同的版本:如FORTRAN
2、II1958), FORTRAN IV1962)等。由于FORTRAN 77 中包含一些結(jié)構(gòu)化的語(yǔ)句(塊,DO 等),因而能用于編寫(xiě)結(jié)構(gòu)化程序。此外,F(xiàn)ORTRAN 77 還擴(kuò)充了字符處理功能,使其也能應(yīng)用于非數(shù)值計(jì)算領(lǐng)域。1991 年,ANSI(美國(guó)國(guó)家標(biāo)準(zhǔn)化協(xié)會(huì)) X3.198-1991 問(wèn)世 其國(guó)際標(biāo)準(zhǔn)文件號(hào)為 ISO/IEC 1539:1991, 我國(guó)國(guó)家標(biāo)準(zhǔn)是 GB/T 3057-1996, 人們俗稱(chēng) FORTRAN90。除保持了 FORTRAN77 的全部?jī)?yōu)點(diǎn),還加進(jìn)了許多具有現(xiàn)代特性的功能,為FORTRAN 語(yǔ)言注入了新的活力。Back2022-3-731引例:求三個(gè)數(shù)的平均數(shù)C
3、Calculate the average of three numbers X = 90.5 Y=87.0 Z=68.5 AVER = (X+Y+Z)/3.0 WRITE(*,*)The Three Numbers are :,X,Y,Z WRITE(*,*)AVERAGE = ,AVER END程序中第 1 行是注釋行,用于說(shuō)明本程序的作用;第24 行是賦值語(yǔ)句,將三個(gè)數(shù)值分別賦予三個(gè)變量;第 5 行是計(jì)算賦值語(yǔ)句,求出平均值并賦予變量 AVER,第 67 行是輸出語(yǔ)句,分別打印三個(gè)數(shù)及其平均值,最后一行是END 語(yǔ)句。2022-3-74引例 2:分別求 R=1,3,12,5 時(shí)的圓周長(zhǎng)
4、C Main Program C Program EX2 WRITE(*,*) R = , 1.0, C = , C(1.0) WRITE(*,*) R = , 3.0, C = , C(3.0) WRITE(*,*) R = , 12.0, C = , C(12.0) WRITE(*,*) R = , 5.0, C = , C(5.0) ENDC Sub Program FUNCTION C( R) PI = 3.1415926 C =2.*PI*R RETURN END2022-3-75子程序中第 1 行是注釋行,說(shuō)明本程序是子程序,第 2行是 FUNCTION語(yǔ)句,表明這是一個(gè)函數(shù)子程序
5、,函數(shù)名為 C ,并有一個(gè)自變量 R ,此函數(shù)子程序在主程序中被調(diào) 4次,分別求出不同半徑時(shí)的圓周長(zhǎng);第3 行是賦值語(yǔ)句,第 4 行是利用公式 rcp2=計(jì)算與自變量 R 對(duì)應(yīng)的圓周長(zhǎng)并賦于變量 C,第 5 行是 RETURN 語(yǔ)句,返回調(diào)用程序,最后一行是 END 語(yǔ)句。主程序中第 1 行是注釋行,說(shuō)明本程序是主程序,第 2行是 PROGRAM語(yǔ)句,為主程序起名為 EX2 ,以便識(shí)別,第 36 行為輸出語(yǔ)句,其中 C(1.0)、 C(3.0)、 C(12.0),C(5.0 )分別調(diào)用函數(shù)子程序,求出與半徑 1.0、3.0、12.0、5.0 相對(duì)應(yīng)的圓周長(zhǎng);最后一行是 END 語(yǔ)句。Back2
6、022-3-76 函數(shù)由以上引例可以看到:一個(gè) FORTRAN 程序由一個(gè)主程序或一個(gè)主程序與若干個(gè)子程序組成。主程序與各子程序都是獨(dú)立的程序單位,稱(chēng)為程序模塊。子程序是實(shí)現(xiàn)程序模塊化的一個(gè)有效途徑。FORTRAN 子程序有以下幾種:函數(shù)子程序,第一個(gè)語(yǔ)句是 FUNCTION 名 子例行程序,第一個(gè)語(yǔ)句是 SUBROUTINE 子程序名數(shù)據(jù)塊子程序, 第一個(gè)語(yǔ)句是 BLOCK DATA 子程序名2022-3-773、PROGRAM,FUNCTION,SUBROUTINE,BLOCK DATAIMPLICIT語(yǔ)句PARAMETER語(yǔ)句其它說(shuō)明語(yǔ)句語(yǔ)句函數(shù)語(yǔ)句FORMAT和 ENTRYDATA語(yǔ)句
7、可執(zhí)行語(yǔ)句注釋行END語(yǔ)句FORTRAN 77對(duì)每一個(gè)程序單位的結(jié)構(gòu)規(guī)定如下:(說(shuō)明語(yǔ)句,格式語(yǔ)句等)(賦值語(yǔ)句,輸出語(yǔ)句等)1、每一個(gè)程序單位必須有一個(gè)、也只能有一個(gè)END語(yǔ)句,且出現(xiàn) 在程序單位的最后。2、每一個(gè)程序單位包含若干行,分為兩類(lèi):(注釋行)非語(yǔ)句行語(yǔ)句行行非執(zhí)行語(yǔ)句可執(zhí)行語(yǔ)句使計(jì)算機(jī)運(yùn)行時(shí)產(chǎn)生操作為編譯系統(tǒng)提供信息 *,加入的文字說(shuō)明。為便于閱讀,或第一行為 CFORTRAN 語(yǔ)句的標(biāo)號(hào)視需要而定,為可選。其作用是標(biāo)志一個(gè)語(yǔ)句以便其它語(yǔ)句調(diào)用,標(biāo)號(hào)的大小與執(zhí)行順序無(wú)關(guān),同一程序單4、程序單位中各類(lèi)語(yǔ)句和注釋行的順序 位中的語(yǔ)句標(biāo)號(hào)不能相同。5、FORTRAN源程序必須按一定的格
8、式書(shū)寫(xiě)。2022-3-78一個(gè)程序單位由若干行所組成,一個(gè)FORTRAN程序行共分為4個(gè)區(qū):1.第1 5列為標(biāo)號(hào)區(qū)??梢詫?xiě)1至5位整數(shù)。也可以沒(méi)有標(biāo)號(hào)。標(biāo)號(hào)區(qū)中的空格不起作用。標(biāo)號(hào)應(yīng)是無(wú)符號(hào)整數(shù),標(biāo)號(hào)大小順序沒(méi)有任何要求。(標(biāo)號(hào)區(qū)內(nèi)不得出現(xiàn)標(biāo)號(hào)以外的內(nèi)容,但注釋行例外)2.第6列為“續(xù)行標(biāo)志區(qū)”,如果在一行的第6列上寫(xiě)一個(gè)非空格和非零的字符,則該行作為其上一行的續(xù)行。3.第772列為語(yǔ)句區(qū)。語(yǔ)句可以從第7列以后任何位置開(kāi)始書(shū)寫(xiě)。但一行只能寫(xiě)一個(gè)語(yǔ)句。語(yǔ)句區(qū)內(nèi)的空格(除引號(hào)內(nèi)的字符串內(nèi)空格)在編譯時(shí)被忽略。4.第7380列,注釋區(qū)。共八列,一般用前3位為頁(yè)數(shù),后5位表示行數(shù)。返回返回2022-3
9、-79l編輯程序l編譯程序l連接程序l運(yùn)行程序2022-3-710l編輯 用戶(hù)可以從鍵盤(pán)輸入自己的源程序,這時(shí)需要使用系統(tǒng)提供的“文本編輯程序”。l操作步驟2022-3-711l整型常量(Integer)l實(shí)型常量(Real)l雙精度常量(Double) 常量是指其值始終不變的一些量,在Fortran77中允許6種常量類(lèi)型:l復(fù)型常量(Complex)l邏輯常量(Logical)l字符常量(Character) 其中中屬于算術(shù)常量,又稱(chēng)常數(shù)。后兩種稱(chēng)為非數(shù)值型常量。2022-3-712l整型常量或稱(chēng)整型常數(shù)或整數(shù),它是一個(gè)正的或負(fù)的或零的數(shù):l1.整數(shù)不應(yīng)包括小數(shù)點(diǎn),正號(hào)可有可無(wú)(如:+10與
10、10等價(jià));l2.整數(shù)程序中的常數(shù)的各數(shù)字之間的空格不起作用(123與 1 2 3等價(jià));l3.整數(shù)中不允許加入逗號(hào),如123456不能寫(xiě)成123,456;l4. 由于計(jì)算機(jī)用有限的單元存儲(chǔ)一個(gè)數(shù),所以在存儲(chǔ)整數(shù)的范圍是有限的(P55 )。返返回回2022-3-713實(shí)型常量也稱(chēng)實(shí)數(shù),實(shí)數(shù)在FORTRAN中有兩種表示形式: 1.小數(shù)形式 它由一個(gè)或多個(gè)數(shù)字和一個(gè)小數(shù)點(diǎn)(只有一個(gè))組成,小數(shù)點(diǎn)前或小數(shù)點(diǎn)后可以不出現(xiàn)數(shù)字,但不能小數(shù)點(diǎn)前后都不出現(xiàn)數(shù)字,如 . 2.指數(shù)形式 指數(shù)表示形式也稱(chēng)科學(xué)計(jì)數(shù)法,一個(gè)指數(shù)形式表示的實(shí)數(shù)有兩部分組成:數(shù)字部分(含實(shí)數(shù)符號(hào))和指數(shù)部分(Exponent),如:12
11、.3E8,0.91E-30,用0.91*E-30是錯(cuò)誤的。 數(shù)字部分表示的是該常數(shù)的有效數(shù)字,指數(shù)部分表示小數(shù)點(diǎn)的實(shí)際位置,它的作用是使數(shù)字部分的小數(shù)點(diǎn)左右移動(dòng)。 數(shù)字部分可以是不帶小數(shù)點(diǎn)的整數(shù)形式,也可以是帶小數(shù)點(diǎn)的實(shí)數(shù),但指數(shù)不能為小數(shù)。一個(gè)實(shí)數(shù)可以寫(xiě)成小數(shù)或指數(shù)形式,用指數(shù)形式可以用不同的指數(shù)表示。2022-3-714 在計(jì)算機(jī)內(nèi)存中,一般用4個(gè)字節(jié)來(lái)存儲(chǔ)一個(gè)實(shí)數(shù),實(shí)數(shù)在內(nèi)存中一律以指數(shù)形式存放,它由三部分組成:數(shù)符;指數(shù)包括符號(hào);數(shù)字部分。數(shù)字部分最前面有一個(gè)隱含的小數(shù)點(diǎn)(見(jiàn)圖3.8) 一個(gè)實(shí)數(shù)的范圍也是有限的,這主要是由于存儲(chǔ)的實(shí)數(shù)的指數(shù)部分的位長(zhǎng)是有限的,如果一個(gè)數(shù)的絕對(duì)值的位長(zhǎng)超
12、過(guò)規(guī)定的范圍,就會(huì)出現(xiàn)“溢出”,比絕對(duì)值大的稱(chēng)為“上溢”,小的稱(chēng)為“下溢” 對(duì)不同的計(jì)算機(jī)系統(tǒng)實(shí)數(shù)的輸出常用標(biāo)準(zhǔn)化形式有兩種: 1、在小數(shù)點(diǎn)前的數(shù)字必須為“0”小數(shù)點(diǎn)后的第一個(gè)數(shù)字必須為一個(gè)非零的數(shù)字; 2、小數(shù)點(diǎn)前數(shù)字部分的值大于或等于1。Back2022-3-715、6,、變量是指在程序運(yùn)行期間其值可以變化的量。系統(tǒng)為程序中的每一個(gè)變量開(kāi)辟一個(gè)存儲(chǔ)單元,用于存放變量的值,變量的值在每一個(gè)瞬時(shí)應(yīng)該是確定的。一、變量名變量名是變量的標(biāo)識(shí)符。一個(gè)變量需用一個(gè)變量名來(lái)標(biāo)識(shí),因此在同一個(gè)程序單位中不能用同一個(gè)變量名代表兩個(gè)不同的變量。命名規(guī)則:變量名中最多允許個(gè)字符,字符只能是字母與數(shù)字,且第一個(gè)字
13、符必須為字母。 如 AX1CHINAAVERG861 等都是合法的變量名。注意事項(xiàng): 變量名中字母的大小寫(xiě)等價(jià); TOTALToTaLtotal 等價(jià) 變量名中字符間空格無(wú)效; AVERA_V_ER等價(jià)2022-3-716 FORTRAN77 無(wú)保留字,即可用內(nèi)部函數(shù)名和語(yǔ)句定義符作變量名,如 SIN,MOD分別是 FORTRAN 內(nèi)部函數(shù)名和語(yǔ)句定義符,若有以下語(yǔ)句:SIN=3.5READ (*,*)MODWRITE(*,*)SIN,MOD則 SIN,MOD被視為變量名,而不代表正弦函數(shù)和 求余函數(shù)操作。但在同一個(gè)程序單位中,變量名和函數(shù)名或語(yǔ)句定義符不得同名。如以下是錯(cuò)誤的:SIN=3.5
14、PRINT=SIN*SIN(2.0)WRITE(*,*) PRINT建議不要使用FORTRAN中已有特定含義的字作變量名。 變量名應(yīng)做到“見(jiàn)名知意”,使得程序便于閱讀和理解。2022-3-717二、變量類(lèi)型變量是用來(lái)存放常量的。不同類(lèi)型的常量應(yīng)放在不同的變量中,因此與常量相對(duì)應(yīng),變量也相應(yīng)區(qū)分為整型變量、實(shí)型變量、雙精度變量、復(fù)型變量、邏輯型變量、字符型變量 6 種。FORTRAN規(guī)定,在程序中用到的各種變量首先要說(shuō)明它們的類(lèi)型,并有以下 3 種說(shuō)明類(lèi)型的方法:1、隱含規(guī)則 (IN規(guī)則)FORTRAN規(guī)定,在程序中的變量名,在無(wú)專(zhuān)門(mén)的類(lèi)型說(shuō)明時(shí),凡是以字母I,J,K,L,M,N六個(gè)字母開(kāi)頭的則
15、認(rèn)為是整型變量,其它字母開(kāi)頭的為實(shí)型變量。2、用類(lèi)型說(shuō)明語(yǔ)句說(shuō)明變量類(lèi)型若想改變 “ IN 規(guī)則”對(duì)變量類(lèi)型的約束,可用類(lèi)型說(shuō)明語(yǔ)句指定變量類(lèi)型,與變量類(lèi)型相對(duì)應(yīng),類(lèi)型說(shuō)明語(yǔ)句有 6 個(gè):2022-3-718INTEGER 語(yǔ)句 (整型變量說(shuō)明語(yǔ)句)REAL 語(yǔ)句 (實(shí)型變量說(shuō)明語(yǔ)句)DOUBLE PRECISION 語(yǔ)句 (雙精度實(shí)型變量說(shuō)明語(yǔ)句)COMPLEX 語(yǔ)句 (復(fù)型變量說(shuō)明語(yǔ)句)LOGICAL 語(yǔ)句 (邏輯型變量說(shuō)明語(yǔ)句)CHARACTER 語(yǔ)句 (字符型變量說(shuō)明語(yǔ)句)說(shuō)明格式:類(lèi)型說(shuō)明語(yǔ)句 各變量間用逗號(hào)分隔3、用隱含說(shuō)明語(yǔ)句IMPLICIT說(shuō)明變量類(lèi)型可以用IMPLICIT語(yǔ)句
16、將某一字母開(kāi)頭的全部變量指定為所需類(lèi)型。一個(gè)IMPLICIT語(yǔ)句可以指定幾種類(lèi)型。如:2022-3-719IMPLICIT REAL(I,K),INTEGER(T-W)指定以 I,K 開(kāi)頭的所有變量為實(shí)型變量, T 到 W(T,U,V,W)開(kāi)頭的所有變量為整型變量。對(duì)于變量類(lèi)型的說(shuō)明應(yīng)當(dāng)注意: 類(lèi)型說(shuō)明只在本程序單位中有效; 類(lèi)型說(shuō)明語(yǔ)句和IMPLICIT 語(yǔ)句都是非執(zhí)行語(yǔ)句,其作用只在通知編譯系統(tǒng)按規(guī)定的類(lèi)型給變量分配內(nèi)存單元和確定數(shù)據(jù)的存放方式。 在確定變量類(lèi)型的3 種方法中,類(lèi)型說(shuō)明語(yǔ)句優(yōu)先級(jí)最高,IMPLICIT 語(yǔ)句次之, IN 規(guī)則優(yōu)先級(jí)最低。 類(lèi)型說(shuō)明語(yǔ)句和IMPLICIT 語(yǔ)句
17、應(yīng)出現(xiàn)在本程序單位中所有執(zhí)行語(yǔ)句之前,當(dāng)兩者同時(shí)存在時(shí),其順序?yàn)椋合菼MPLICIT語(yǔ)句,后類(lèi)型說(shuō)明語(yǔ)句。 Back2022-3-720FORTRAN提供了一些系統(tǒng)函數(shù)供某些專(zhuān)門(mén)運(yùn)算,如求三角函數(shù)的值, sinx,cosx,指數(shù)函數(shù)ex,對(duì)數(shù)lnx,logx等,程序設(shè)計(jì)者只需按規(guī)定的格式寫(xiě)出函數(shù)名及一個(gè)或若干個(gè)自變量,即可得到相應(yīng)的值。如:SIN(1.0)= =0.8414709LOG(3.0)=log3=1.098612 REAL(8)=8.0INT(8.6)=8SIGN(4.5,-0.5)=-4.5 MAX(8,6,7,-11)=8SIGN(-0.5, 4.5)= 0.5 等。2022-3
18、-721幾點(diǎn)說(shuō)明:幾點(diǎn)說(shuō)明: 一個(gè)內(nèi)部函數(shù)要求一個(gè)或多個(gè)自變量一個(gè)內(nèi)部函數(shù)要求一個(gè)或多個(gè)自變量。當(dāng)自變量個(gè)數(shù)規(guī)定為 2時(shí),自變量的順序不同,其值不同。MOD(8,3)=2,MOD(3,8)=3;當(dāng)自變量個(gè)數(shù)為 2 個(gè)以上時(shí),則函數(shù)值與自變量的順序無(wú)關(guān)。 MAX(3.,6.,-4.)=MAX(-4.,3.,6.)=6. 內(nèi)部函數(shù)的自變量和函數(shù)值均有類(lèi)型內(nèi)部函數(shù)的自變量和函數(shù)值均有類(lèi)型;有的函數(shù)值的類(lèi)型與自變量的類(lèi)型有關(guān),如ABS,MOD 等;有的函數(shù)值的類(lèi)型與自變量的類(lèi)型無(wú)關(guān),如INT,REAL 等;此外函數(shù)名分為“專(zhuān)用名”和“通用名”兩種,見(jiàn)附錄V。 三角函數(shù)中角度的單位是弧度 ( rad)
19、,而不是度。 自變量可以是類(lèi)型符合要求的常量、變量或表達(dá)式自變量可以是類(lèi)型符合要求的常量、變量或表達(dá)式。 例如SQRT(4.0), SQRT(A), SQRT(2.+2.)均合法,而 SQRT(I)為非法,因?yàn)?I 為整型變量,SQRT函數(shù)的自變量類(lèi)型為實(shí)型量。2022-3-722一、算術(shù)運(yùn)算符及優(yōu)先級(jí)一、算術(shù)運(yùn)算符及優(yōu)先級(jí)5 個(gè)算術(shù)運(yùn)算符號(hào):+ 算術(shù)加 (或正號(hào))- 算術(shù)減 (或負(fù)號(hào))* 乘法運(yùn)算/ 除法運(yùn)算* 乘方運(yùn)算3 個(gè)優(yōu)先級(jí)及次序:* 乘方運(yùn)算優(yōu)先級(jí)最高*,/ 乘、除運(yùn)算次之+,- 加、減運(yùn)算最低2022-3-723注意事項(xiàng): 兩個(gè)運(yùn)算符不能緊鄰,A 乘-B 不能寫(xiě)成 A*-B,而應(yīng)
20、寫(xiě)為A*(-B)或-B*A 同一優(yōu)先級(jí)遵循“先左后右”的原則,連續(xù)乘方按 “先 右后左”的原則,如:23)4(2*3*4=4096 ,而應(yīng)是)3(242*3*4=262144二、算術(shù)表達(dá)式的含義及表示方法二、算術(shù)表達(dá)式的含義及表示方法表達(dá)式是一個(gè)或多個(gè)運(yùn)算的組合。 FORTRAN 表達(dá)式是由FORTRAN 運(yùn)算符和括號(hào)將各運(yùn)算元素(常量、變量、函數(shù)等)連接起來(lái)的一個(gè)有值的式子。 FORTRAN中允許使用 4 種表達(dá)式:算術(shù)表達(dá)式、關(guān)系表達(dá)式、邏輯表達(dá)式和字符表達(dá)式。不同的表達(dá)式有不同的運(yùn)算符,其值的類(lèi)型也不同。2022-3-724算術(shù)表達(dá)式是由一個(gè)或多個(gè)算術(shù)運(yùn)算組合而成。如:數(shù)學(xué)表達(dá)式edcb
21、a+31的 FORTARN表達(dá)式可寫(xiě)為:(1+3*A)/(B+C/(D+E) , 算術(shù)表達(dá)式求值的優(yōu)先次序?yàn)?:括號(hào)函數(shù)*,/+,-三、表達(dá)式運(yùn)算中的類(lèi)型問(wèn)題三、表達(dá)式運(yùn)算中的類(lèi)型問(wèn)題FORTRAN 允許不同類(lèi)型的算術(shù)量 (整型、實(shí)型、雙精度型、復(fù)型 )之間進(jìn)行算術(shù)運(yùn)算,并遵循以下原則: 相同類(lèi)型的算術(shù)量之間運(yùn)算的結(jié)果仍保持原類(lèi)型;2*3 的值為整型數(shù)6;2.5*2.0的值為實(shí)型數(shù)5.0;2*3 的值為整型數(shù)8;5/2 的值為整型數(shù)2;1/2 的值為整型數(shù)0。 若參與運(yùn)算的兩個(gè)算術(shù)量類(lèi)型不同時(shí),則編譯系統(tǒng)會(huì)自動(dòng)將它們轉(zhuǎn)換成同一類(lèi)型,然后進(jìn)行運(yùn)算。轉(zhuǎn)換的規(guī)律是:將低級(jí)類(lèi)型轉(zhuǎn)換成高級(jí)類(lèi)型。整型 (
22、低)實(shí)型(高) 類(lèi)型的轉(zhuǎn)換是從左而右進(jìn)行的,在遇到不同類(lèi)型的算術(shù)量時(shí)才進(jìn)行轉(zhuǎn)換。如 1/4*20.0=0.0先計(jì)算1/4 得整型數(shù)0,遇實(shí)數(shù)20.0,將0 轉(zhuǎn)換為0.0 與20.0相乘,結(jié)果為0.0,若將表達(dá)式寫(xiě)成1*20.0/4則得表達(dá)式的值為5.0。2022-3-725四、運(yùn)算的誤差問(wèn)題四、運(yùn)算的誤差問(wèn)題一個(gè)整數(shù)(計(jì)算機(jī)規(guī)定的范圍內(nèi))用二進(jìn)制能夠準(zhǔn)確無(wú)誤地表示出來(lái),整型量的運(yùn)算是準(zhǔn)確的。而某些實(shí)數(shù)由于受存儲(chǔ)方式的影響,有效位數(shù)受到限制,只能得到近似表示。因此實(shí)數(shù)的運(yùn)算應(yīng)遵循以下規(guī)則: 盡量使每次運(yùn)算結(jié)果都在有效位數(shù)范圍之內(nèi),否則就會(huì)出現(xiàn)誤差,在運(yùn)算中應(yīng)盡量避免兩個(gè)相差很大的數(shù)進(jìn)行加、減運(yùn)算
23、,以防止“大數(shù)吃掉小數(shù)”。如: 0.001+1246825.0-1246820.0 的值是 5.0,而不是 5.001;若將運(yùn)算次序調(diào)換為 1246825.0-1246820.0+0.001,則能夠得到正確值 5.001。 實(shí)數(shù)的“相等”和“不等”的比較應(yīng)慎重。如:(1./3.)*3.1.0,這是因?yàn)?./3.的值為0.3333333,在乘以 3.得到的值為 0.9999999。實(shí)數(shù) A 與 B 的“相等”和“不等”的比較最好改為判斷“e- BA” (e為一個(gè)很小的數(shù),如 10-6),若不等式成立,則認(rèn)為 A=B,否則二者不等??傊?,在實(shí)數(shù)運(yùn)算中應(yīng)充分考慮到可能出現(xiàn)的誤差,并設(shè)法避免。 BAC
24、K2022-3-726一、賦值語(yǔ)句的性質(zhì)和作用賦值語(yǔ)句的作用是將一個(gè)確定的值賦給一個(gè)變量。一般格式為:V=eV 代表一個(gè)變量 (Varible 的第一個(gè)字母),e 代表一個(gè)表達(dá)式(Expession 的第一個(gè)字母),“=”應(yīng)理解為賦值號(hào),而不是等號(hào),如N=N+1 在數(shù)學(xué)上是不成立的,其作用是將N 的原值加 1 再送回到變量N 中,若N 的原值3,執(zhí)行上述賦值語(yǔ)句后N 的值變?yōu)?。幾點(diǎn)說(shuō)明: FORTRAN77 的賦值語(yǔ)句有三類(lèi):算術(shù)賦值語(yǔ)句、邏輯賦值語(yǔ)句、字符賦值語(yǔ)句。算術(shù)賦值語(yǔ)句的作用是將一個(gè)算術(shù)量 (算術(shù)表達(dá)式的值)賦予一個(gè)算術(shù)型 (數(shù)值型)變量。 算術(shù)賦值語(yǔ)句兼有計(jì)算和賦值雙重功能。FO
25、RTRAN 中的求值計(jì)算主要通過(guò)賦值語(yǔ)句來(lái)實(shí)現(xiàn)。2022-3-727 賦值號(hào)左邊只能是變量名 (或數(shù)組元素名),而不能是表達(dá)式,賦值號(hào)右邊可以是常量、變量或表達(dá)式。二、執(zhí)行賦值語(yǔ)句時(shí)的類(lèi)型轉(zhuǎn)換問(wèn)題算術(shù)賦值語(yǔ)句中被賦值變量 (V)和表達(dá)式(e)的類(lèi)型可以相同,也可以不同。 若 V 與 e 的類(lèi)型相同,則直接賦值。如 I=3 ,A=5.7*T 若 V 與 e 的類(lèi)型不同,則遵循“先求后化再賦”的原則。即: 求表達(dá)式的值 轉(zhuǎn)化為被賦值變量的類(lèi)型執(zhí)行賦值。如: I=3.5*2.1,表達(dá)式的值為7.35,由于 I 是整型變量,系統(tǒng)先將 7.35 轉(zhuǎn)化為整數(shù) 7,再賦給變量 I,I 的值為 7。Back2
26、022-3-728 在輸入*語(yǔ)句中的第一個(gè)/*對(duì)數(shù)據(jù)進(jìn)行輸入 輸出(I/O)時(shí),需要告知計(jì)算機(jī)系統(tǒng)以下信息:(輸出)哪些數(shù)據(jù);從哪個(gè)設(shè)備輸入或輸出到哪個(gè)設(shè)備;以何種格式進(jìn)行輸入輸出。FORTRAN的輸入輸出格式有以下三類(lèi):按用戶(hù)指定的格式輸入和輸出;按系統(tǒng)隱含的標(biāo)準(zhǔn)格式輸入和輸出;無(wú)格式輸入和輸出。即以二進(jìn)制形式進(jìn)行輸入和輸出。一、表控輸出語(yǔ)句表控輸出即按系統(tǒng)隱含的標(biāo)準(zhǔn)輸出格式。機(jī)型不同,格式可能不同。表控輸出語(yǔ)句的格式為:WRITE( , )輸出項(xiàng),輸出項(xiàng),(輸出表項(xiàng))WRITE表示在系統(tǒng)隱含指定的設(shè)備上輸出(屏幕), 第二個(gè)“*”號(hào)指的是“用表空格式輸出”2022-3-729 二、表控輸入
27、語(yǔ)句表控輸入語(yǔ)句的格式為:READ(*,*)輸入項(xiàng),輸入項(xiàng), (輸入表列)在READ語(yǔ)句中的第一個(gè)“*”表示“系統(tǒng)隱含指定的輸入設(shè)備”第二個(gè)“*”表示表控輸入表控輸入的幾點(diǎn)說(shuō)明: 輸入數(shù)據(jù)的個(gè)數(shù)、類(lèi)型應(yīng)與READ 語(yǔ)句中變量的個(gè)數(shù)、類(lèi)型一致。輸入數(shù)據(jù)不夠,系統(tǒng)等待繼續(xù)輸入;輸入多余數(shù)據(jù),多余部分無(wú)效;輸入數(shù)據(jù)的類(lèi)型不一致,一般按出錯(cuò)處理,但有的系統(tǒng)可為實(shí)型變量輸入整型數(shù),系統(tǒng)自動(dòng)轉(zhuǎn)換。2022-3-730 每一個(gè) READ 語(yǔ)句總是從新的輸入行開(kāi)始讀數(shù)。例如,下列是兩個(gè)連續(xù)的輸入語(yǔ)句:READ(*,*) I ,JREAD(*,*) X ,Y如果在鍵盤(pán)上輸入:4,18,3.5,-7.6則只將前兩個(gè)整型數(shù)輸入給第一個(gè) READ 語(yǔ)句的整型變量 I 和 J,而后兩個(gè)實(shí)型數(shù)為多余數(shù)據(jù),不起作用。因?yàn)榈诙€(gè) READ 語(yǔ)句要求從一個(gè)新行開(kāi)始輸入數(shù)據(jù)。輸入數(shù)據(jù)的正確格式為:4,183.5,-7.6
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 具有振震雙控功能的模塊化層并聯(lián)橡膠支座及組合隔振(震)層研究
- 管理與護(hù)理管理學(xué)
- 倉(cāng)庫(kù)人員安全意識(shí)提升方案
- 保護(hù)牙齒健康教案說(shuō)課
- 腎挫傷患者的常規(guī)護(hù)理
- 超聲波泵技術(shù)解析與應(yīng)用
- 師德警示教育案例解析與應(yīng)用
- 《智能網(wǎng)聯(lián)汽車(chē)技術(shù)》課件-智能網(wǎng)聯(lián)汽車(chē)發(fā)展目標(biāo)的認(rèn)知
- 預(yù)防職業(yè)病危害課件
- 小學(xué)教師常規(guī)培訓(xùn)
- 實(shí)驗(yàn)室培育鉆石行業(yè)技術(shù)發(fā)展趨勢(shì)報(bào)告
- 2025年領(lǐng)英大制造行業(yè)人才全球化報(bào)告-馬來(lái)西亞篇
- 專(zhuān)題:閱讀理解 30篇 中考英語(yǔ)高分提升之新題速遞第二輯【含答案+解析】
- 企業(yè)面試題目和答案大全
- 抖音房產(chǎn)直播課件
- 2025至2030中國(guó)近視眼治療儀市場(chǎng)競(jìng)爭(zhēng)力剖析及企業(yè)經(jīng)營(yíng)形勢(shì)分析報(bào)告
- 2025年高考化學(xué)試卷(廣東卷)(空白卷)
- 體育老師招聘試題及答案
- 自然生態(tài)探險(xiǎn)之旅行業(yè)跨境出海項(xiàng)目商業(yè)計(jì)劃書(shū)
- 2025年北京市高考英語(yǔ)試卷真題(含答案解析)
- 西藏自治區(qū)拉薩市達(dá)孜區(qū)孜縣2025年七下英語(yǔ)期中質(zhì)量檢測(cè)模擬試題含答案
評(píng)論
0/150
提交評(píng)論