一級(jí)基礎(chǔ)科目(一)輔導(dǎo)---FORTRAN的程序構(gòu)成和基本規(guī)定
二、FORTRAN的程序構(gòu)成和基本規(guī)定
(一)程序構(gòu)成
一個(gè)完整的FORTRAN程序由一個(gè)主程序或一個(gè)主程序和若干個(gè)子程序組成。主程序與每個(gè)子程序都是一個(gè)獨(dú)立的程序單位,稱為一個(gè)程序模塊。關(guān)于程序的構(gòu)成,有如下一些基本規(guī)定。
1.程序由若干行組成。
2.在FORTRAN中,程序行分為語句行和注釋行。
(1)語句行由FORTRAN語句組成,包括執(zhí)行語句和非執(zhí)行語句。執(zhí)行語句使計(jì)算機(jī)在運(yùn)行時(shí)產(chǎn)生某些操作,如賦值語句、輸入輸出語句等。非執(zhí)行語句為計(jì)算機(jī)在編譯或運(yùn)行時(shí)提供某種信息,本身不產(chǎn)生操作,如說明語句、格式語句等。
(2)注釋行又稱為非語句行,在程序中起注釋作用,便于程序的編寫、修改和維護(hù)。
3.FORTRAN規(guī)定,每個(gè)語句行只能寫一個(gè)語句;但當(dāng)語句長(zhǎng)度超過規(guī)定的一行范圍、或者為表達(dá)清晰起見需要將一個(gè)語句分行書寫時(shí),可以采用連續(xù)行。連續(xù)行的第一行稱為始行,以后各行稱為續(xù)行。 ?
4.FORTRAN語句可以有標(biāo)號(hào)。標(biāo)號(hào)作為一個(gè)語句被其他語句引用的標(biāo)志。在同一個(gè)程序單位中,不能出現(xiàn)相同的語句標(biāo)號(hào)。
5.程序單位的最后一行語句,必須是END語句。如果一個(gè)FORTRAN語句行與注釋行的集合,最末沒有END,可稱其為一個(gè)語句塊或程序段,但不能作為一個(gè)程序單位。
(二)書寫規(guī)則
1.FORTRAN77的字符集由26個(gè)英文字母、10個(gè)數(shù)字和其他13個(gè)專用字符組成。
2. 一個(gè)程序行有80列,每列寫一個(gè)字符。
3. 程序行的第1列如寫上C或x,表示該行為注釋行。注釋內(nèi)容可寫在該行中除第1
列外的任意位置。
4.在語句行中,程序行的第1列至第5列為語句標(biāo)號(hào)區(qū),標(biāo)號(hào)區(qū)內(nèi)是最多為5位的無符號(hào)整數(shù);程序行的第6列為續(xù)行區(qū),若某行為續(xù)行,則標(biāo)號(hào)區(qū)必須空白,且第6列為非0的任一FORTRAN77字符(不能為空格);第7列至第72列為語句區(qū)。
例如,在邊長(zhǎng)為B的正方形中挖一個(gè)半徑為R的圓,計(jì)算剩余的面積;若B<2R,
則給出相關(guān)信息。該問題的FORTRAN程序可編寫如下。
C Computation of area.
READ*,B,R
IF(B.LT.2.*R)THEN
WRITE(*,10)
10 FORMAT(‘Error message:B less than 2*R’)
ELSE
WRITE(*,’(”AREA:”,F(xiàn)10.2)’)
$ B*B―3.14159*R*R
ENDIF
END
本例中,第1行為注釋行,第5行為帶標(biāo)號(hào)的語句,第7―8行為連續(xù)行,符號(hào)$為續(xù)行標(biāo)志。
?08年考試規(guī)范、標(biāo)準(zhǔn): 2008年一級(jí)注冊(cè)結(jié)構(gòu)工程師考試成績(jī)查詢匯總
(三)常量與變量
1.常量指程序中其值固定不變的一些量,包括以下6種類型。
(1) 整形常量,也稱整數(shù)。一個(gè)整數(shù)可采用正、負(fù)號(hào)和數(shù)字字符表示,正號(hào)可以省略。
(2) 實(shí)型常量,也稱實(shí)數(shù)。可以用小數(shù)形式或指數(shù)形式表示。用指數(shù)形式表示的實(shí)數(shù)。如11.3E5,+11.3E+5,1.E-12,-.23E12等。
(3)雙精度實(shí)型常量,或稱雙精度實(shí)數(shù)。雙精度實(shí)數(shù)也是實(shí)數(shù)。但在一般的微型計(jì)算機(jī)中,實(shí)數(shù)的有效位數(shù)為7位,雙精度實(shí)數(shù)的有效位數(shù)可以達(dá)到15~17位。雙精度實(shí)數(shù)的表示方法,除在指數(shù)形式的表達(dá)中用字符D代替E以外,其余和實(shí)數(shù)相同。
(4)復(fù)型常量,簡(jiǎn)稱復(fù)數(shù)。在FORTRAN中,用一對(duì)圓括弧括起來的兩個(gè)實(shí)數(shù)表示。如(12.0,-6.E2)表示復(fù)數(shù)12.0-600.0i
(5)邏輯型常量。FORTRAN中的邏輯型常量有兩個(gè)值:.TRUE.與.FALSE.
(6)字符型常量,也稱為字符串。計(jì)算機(jī)系統(tǒng)使用的若干個(gè)字符,用一對(duì)單引號(hào)括起來后就作為字符串。
2.變量指在程序運(yùn)行期間可以改變的量。
(1)變量的類型與常量相對(duì)應(yīng),分為整型變量、實(shí)型變量、雙精度實(shí)型變量、復(fù)型變
量、邏輯型變量與字符串變量。
(2)變量名按一定的規(guī)則命名。在FORTRAN中,變量名采用1至6個(gè)字符(數(shù)字或字母),其中第一個(gè)字符必須是字母。FORTRAN 77規(guī)定,變量名書寫時(shí)不區(qū)別字母的
大寫與小寫,例如ABc與aBC都指同一個(gè)變量。
(3)變量類型的說明方法。
1)I-N隱含規(guī)則。在程序單位中沒有其他說明時(shí),以字母I,J,K,L,M,N中的
任一個(gè)字母打頭命名的變量都是整型變量。
2)用類型說明語句規(guī)定變量類型。例如:
INTEGER A,COUNT
REAL ICOUNT
DOUBLEPRECISION XING
COMPLEX DUP
LOGICAL JUG
CHARACTER FILENM
分別表示變量A,COUNT為整型,ICOUNT為實(shí)型,XING為雙精度實(shí)型,DUP為復(fù)制,JUG為邏輯型,F(xiàn)ILENM為字符型變量,其長(zhǎng)度為10個(gè)字符。
3)用隱含說明語句IMPLICIT語句,可以將程序單位中以某一字母開頭的所有變量指定為所需類型。例如:
IMPLICIT INTEGER(A,C),REAL(1―K)
指定了以A與C字母開頭的所有變量都是整型變量,以字母I至K開頭的所有變量為實(shí)型變量。
類型說明語句和隱含說明語句只在本程序單位中有效;他們必須放在程序單位所有可執(zhí)行語句的前面,而IMPLICIT語句又必須在所有的類型說明語句的前面。確定變量類型的三種方法中,類型說明語句的優(yōu)先級(jí)最高,I-N規(guī)則的優(yōu)先級(jí)最低。
(四)數(shù)組
1.數(shù)組的定義
有些互相關(guān)聯(lián)的數(shù)據(jù),作為單個(gè)變量處理并不方便。程序設(shè)計(jì)語言通常把這種相互關(guān)聯(lián)的數(shù)據(jù)按一定的順序關(guān)系組成一個(gè)集合,該集合稱為數(shù)組;組成數(shù)組的基本單元稱為數(shù)組元素,每一個(gè)數(shù)組元素對(duì)應(yīng)一個(gè)數(shù)據(jù).在FORTRAN中,使用數(shù)組前必須對(duì)數(shù)組進(jìn)行定義,包括對(duì)數(shù)組命名;確定數(shù)組的類型;確定數(shù)組的維數(shù)及大小;指出數(shù)組各維下標(biāo)的下限與上限。
數(shù)組的命名規(guī)則與變量的命名規(guī)則相同。
確定數(shù)組類型、維數(shù)及其大小的方法有以下兩種。
(1)用類型說明語句定義數(shù)組。例如:
INTEGER X(-2:30),XYZ(1:20,0:15)
定義了兩個(gè)整型數(shù)組。其中X稱為一維數(shù)組,下標(biāo)的下限與上限分別為-2與30,即這個(gè)一維數(shù)組共有30-(-2)+1=33個(gè)元素,它們分別為:X(-2),X(-1),X(0),X(1),…,X(30);XYZ稱為二維數(shù)組,第一個(gè)下標(biāo)的下限與上限分別為1與20,第二個(gè)下標(biāo)的下限與上限分別為0與15,即這個(gè)二維數(shù)組共有(20-1+1)×(15-0+1)=20×16=320個(gè)整型元素,它們分別為:
XYZ(1,0),XYZ(1,1),…,XYZ(1,15)
…………
XYZ(20,0),XYZ(20,1),…,XYZ(20,15)
字符型數(shù)組必須用類型說明語句定義。例如:
CHARACTER OUT(10)
數(shù)組OUT每個(gè)元素的長(zhǎng)度都是8,即每個(gè)元素都可以存放8個(gè)字符。
(2)用DIMENSION語句定義數(shù)組。這時(shí),數(shù)組的類型按隱含規(guī)則確定,或者可以用類型說明語句再次說明其類型。例如:
DIMENSION IM(-1:10),IA(0:100,-2:0),X(1:5)
REAL IA
INTEGER X
其中,IM為一維整型數(shù)組,IA為2維實(shí)型數(shù)組,X為一維整型數(shù)組。
當(dāng)數(shù)組的下標(biāo)下限為1時(shí),可以省略說明下標(biāo)下限。例如,下列數(shù)組說明
DIMENSIONA(100),B(5,5)等價(jià)于DIMENSIONA(1:100),B(1:5,1:5)
目前在許多微機(jī)上使用的FORTRAN 77子集中,數(shù)組的下標(biāo)下限只允許為1,并且也只允許用省略下限的數(shù)組說明。
數(shù)組說明語句必須放在所有可執(zhí)行語句與DATA語句之前。
2.數(shù)組在內(nèi)存中的存儲(chǔ)形式
在FORTRAN中,數(shù)組的各元素是按順序存儲(chǔ)在計(jì)算機(jī)內(nèi)存單元中的。特別需要注意的是2維和2維以上的多維數(shù)組中,各元素是以列為主存儲(chǔ)的。
例如,有一個(gè)二維數(shù)組I(1:2,1:3),該數(shù)組可以寫成數(shù)表的形式
I (1, 1) I (1, 2) I (1, 3) .
I (2, 1) I (2, 2) I (2, 3)
各元素的值為I(1,1)=1,I(1,2)=2,I(1,3)=-1,I(2,1)=20,I(2,2)=40,I(2,3)=50,在內(nèi)存中存放的順序是I(1,1),I(2,1),I(1,2),I(2,2),I(1,3),I(2,3),如果按內(nèi)存存放順序?qū)⑦@個(gè)數(shù)組的元素打印出來,數(shù)據(jù)的順序?qū)⑹牵?, 20, 2, 40, -1, 50
其他多維數(shù)組中的元素也是按同樣規(guī)則存儲(chǔ)的,即先存儲(chǔ)第1列,再存儲(chǔ)第2列,以此類推,最后存儲(chǔ)數(shù)組中的最后一列。
(五)各種運(yùn)算符及其運(yùn)算的優(yōu)先級(jí)
1.算術(shù)運(yùn)算符。FORTRAN有五個(gè)算術(shù)運(yùn)算符,它們是:
加法運(yùn)算符 +
減法運(yùn)算符 -
乘法運(yùn)算符 *
除法運(yùn)算符 /
乘冪運(yùn)算符 * *
這五個(gè)算術(shù)運(yùn)算符的運(yùn)算順序是:
(1)乘冪運(yùn)算符* *優(yōu)先級(jí)最高;
(2)乘法與除法運(yùn)算符*,/優(yōu)先級(jí)次之; ?
(3)加法與減法運(yùn)算符+,―優(yōu)先級(jí)最低。 ’
對(duì)于同一優(yōu)先級(jí)的兩個(gè)運(yùn)算符,按“先左后右”的原則進(jìn)行計(jì)算。
2.關(guān)系運(yùn)算符。FORTRAN有六個(gè)關(guān)系運(yùn)算符,用于比較兩個(gè)表達(dá)式相等或不等。它們是:
大于 .GT.
大于或等于 .GE.
小于 .LT.
小于或等于 .LE.
等于 .EQ.
不等于 .NE.
經(jīng)過關(guān)系運(yùn)算符比較后,得到一個(gè)邏輯型的值。例如,整型變量I的值為10,J的值為12,則I.LT.J的結(jié)果為“真”(.TRUE.),而I.EQ.J的結(jié)果為“假”(.FALSE.)。
3.邏輯運(yùn)算符。FORTRAN有五個(gè)邏輯運(yùn)算符,它們是: 。
邏輯與 .AND. 兩個(gè)邏輯型量都為“真”時(shí),其值為“真”,否則為“假”;
邏輯或 .OR. 兩個(gè)邏輯型量都為“假”時(shí),其值為“假”,否則為“真”;
邏輯非 .NOT. 一個(gè)邏輯型量為“真”時(shí),其值為“假”,否則為“真”;
邏輯等 .EQV. 兩個(gè)邏輯型量等值時(shí),其值為“真”,否則為“假”;
邏輯不等 .NEQV. 兩個(gè)邏輯型量不等值時(shí),其值為“真”,否則為“假”。
邏輯運(yùn)算符中,除了邏輯非運(yùn)算符.NOT.只有一個(gè)運(yùn)算對(duì)象外,其余四個(gè)邏輯運(yùn)算符均有兩個(gè)運(yùn)算對(duì)象。
邏輯運(yùn)算符的優(yōu)先級(jí)如下;
(1).NOT.
(2).AND.
(3). OR.
(4). EQV.與.NEQV. 這兩個(gè)運(yùn)算符按照先左后右的原則進(jìn)行運(yùn)算。
最新資訊
- 2024年度二級(jí)注冊(cè)結(jié)構(gòu)工程師專業(yè)考試資料:規(guī)范、標(biāo)準(zhǔn)、規(guī)程2024-08-13
- 2024年度一級(jí)注冊(cè)結(jié)構(gòu)工程師專業(yè)考試資料:規(guī)范、標(biāo)準(zhǔn)、規(guī)程2024-08-13
- 環(huán)球網(wǎng)校雙11預(yù)售開啟!定金百倍膨脹,直播再返現(xiàn)金2023-10-25
- 環(huán)球網(wǎng)校結(jié)構(gòu)工程師雙11活動(dòng)來啦,限時(shí)優(yōu)惠!2023-10-25
- 注冊(cè)結(jié)構(gòu)工程師考試大綱下載2023-05-16
- 2023年一級(jí)注冊(cè)結(jié)構(gòu)工程師考試大綱內(nèi)容2023-04-14
- 2023年結(jié)構(gòu)工程師教材內(nèi)容變動(dòng)對(duì)比2023-04-10
- 2023年注冊(cè)結(jié)構(gòu)工程師專業(yè)基礎(chǔ)教材變動(dòng)對(duì)比2023-04-03
- 2023年新版注冊(cè)結(jié)構(gòu)工程師基礎(chǔ)教材2023-03-29
- 2023一級(jí)結(jié)構(gòu)工程師基礎(chǔ)考試真題2023-01-29