二、FORTRAN的程序構成和基本規(guī)定
(一)程序構成
一個完整的FORTRAN程序由一個主程序或一個主程序和若干個子程序組成。主程序與每個子程序都是一個獨立的程序單位,稱為一個程序模塊。關于程序的構成,有如下一些基本規(guī)定。
1.程序由若干行組成。
2.在FORTRAN中,程序行分為語句行和注釋行。
(1)語句行由FORTRAN語句組成,包括執(zhí)行語句和非執(zhí)行語句。執(zhí)行語句使計算機在運行時產生某些操作,如賦值語句、輸入輸出語句等。非執(zhí)行語句為計算機在編譯或運行時提供某種信息,本身不產生操作,如說明語句、格式語句等。
(2)注釋行又稱為非語句行,在程序中起注釋作用,便于程序的編寫、修改和維護。
3.FORTRAN規(guī)定,每個語句行只能寫一個語句;但當語句長度超過規(guī)定的一行范圍、或者為表達清晰起見需要將一個語句分行書寫時,可以采用連續(xù)行。連續(xù)行的第一行稱為始行,以后各行稱為續(xù)行。 ·
4.FORTRAN語句可以有標號。標號作為一個語句被其他語句引用的標志。在同一個程序單位中,不能出現(xiàn)相同的語句標號。
5.程序單位的最后一行語句,必須是END語句。如果一個FORTRAN語句行與注釋行的集合,最末沒有END,可稱其為一個語句塊或程序段,但不能作為一個程序單位。
(二)書寫規(guī)則
1.FORTRAN77的字符集由26個英文字母、10個數(shù)字和其他13個專用字符組成。
2. 一個程序行有80列,每列寫一個字符。
3. 程序行的第1列如寫上C或x,表示該行為注釋行。注釋內容可寫在該行中除第1
列外的任意位置。
4.在語句行中,程序行的第1列至第5列為語句標號區(qū),標號區(qū)內是最多為5位的無符號整數(shù);程序行的第6列為續(xù)行區(qū),若某行為續(xù)行,則標號區(qū)必須空白,且第6列為非0的任一FORTRAN77字符(不能為空格);第7列至第72列為語句區(qū)。
例如,在邊長為B的正方形中挖一個半徑為R的圓,計算剩余的面積;若B<2R,
則給出相關信息。該問題的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行為帶標號的語句,第7—8行為連續(xù)行,符號$為續(xù)行標志。
(三)常量與變量
1.常量指程序中其值固定不變的一些量,包括以下6種類型。
(1) 整形常量,也稱整數(shù)。一個整數(shù)可采用正、負號和數(shù)字字符表示,正號可以省略。
(2) 實型常量,也稱實數(shù)??梢杂眯?shù)形式或指數(shù)形式表示。用指數(shù)形式表示的實數(shù)。如11.3E5,+11.3E+5,1.E-12,-.23E12等。
(3)雙精度實型常量,或稱雙精度實數(shù)。雙精度實數(shù)也是實數(shù)。但在一般的微型計算機中,實數(shù)的有效位數(shù)為7位,雙精度實數(shù)的有效位數(shù)可以達到15~17位。雙精度實數(shù)的表示方法,除在指數(shù)形式的表達中用字符D代替E以外,其余和實數(shù)相同。
(4)復型常量,簡稱復數(shù)。在FORTRAN中,用一對圓括弧括起來的兩個實數(shù)表示。如(12.0,-6.E2)表示復數(shù)12.0-600.0i
(5)邏輯型常量。FORTRAN中的邏輯型常量有兩個值:.TRUE.與.FALSE.
(6)字符型常量,也稱為字符串。計算機系統(tǒng)使用的若干個字符,用一對單引號括起來后就作為字符串。
2.變量指在程序運行期間可以改變的量。
(1)變量的類型與常量相對應,分為整型變量、實型變量、雙精度實型變量、復型變
量、邏輯型變量與字符串變量。
(2)變量名按一定的規(guī)則命名。在FORTRAN中,變量名采用1至6個字符(數(shù)字或字母),其中第一個字符必須是字母。FORTRAN 77規(guī)定,變量名書寫時不區(qū)別字母的
大寫與小寫,例如ABc與aBC都指同一個變量。
(3)變量類型的說明方法。
1)I-N隱含規(guī)則。在程序單位中沒有其他說明時,以字母I,J,K,L,M,N中的
任一個字母打頭命名的變量都是整型變量。
2)用類型說明語句規(guī)定變量類型。例如:
INTEGER A,COUNT
REAL ICOUNT
DOUBLEPRECISION XING
COMPLEX DUP
LOGICAL JUG
CHARACTER FILENM
分別表示變量A,COUNT為整型,ICOUNT為實型,XING為雙精度實型,DUP為復制,JUG為邏輯型,F(xiàn)ILENM為字符型變量,其長度為10個字符。
3)用隱含說明語句IMPLICIT語句,可以將程序單位中以某一字母開頭的所有變量
指定為所需類型。例如:
IMPLICIT INTEGER(A,C),REAL(1—K)
指定了以A與C字母開頭的所有變量都是整型變量,以字母I至K開頭的所有變量為實型變量。
類型說明語句和隱含說明語句只在本程序單位中有效;他們必須放在程序單位所有可執(zhí)行語句的前面,而IMPLICIT語句又必須在所有的類型說明語句的前面。確定變量類型的三種方法中,類型說明語句的優(yōu)先級,I-N規(guī)則的優(yōu)先級最低。
(一)程序構成
一個完整的FORTRAN程序由一個主程序或一個主程序和若干個子程序組成。主程序與每個子程序都是一個獨立的程序單位,稱為一個程序模塊。關于程序的構成,有如下一些基本規(guī)定。
1.程序由若干行組成。
2.在FORTRAN中,程序行分為語句行和注釋行。
(1)語句行由FORTRAN語句組成,包括執(zhí)行語句和非執(zhí)行語句。執(zhí)行語句使計算機在運行時產生某些操作,如賦值語句、輸入輸出語句等。非執(zhí)行語句為計算機在編譯或運行時提供某種信息,本身不產生操作,如說明語句、格式語句等。
(2)注釋行又稱為非語句行,在程序中起注釋作用,便于程序的編寫、修改和維護。
3.FORTRAN規(guī)定,每個語句行只能寫一個語句;但當語句長度超過規(guī)定的一行范圍、或者為表達清晰起見需要將一個語句分行書寫時,可以采用連續(xù)行。連續(xù)行的第一行稱為始行,以后各行稱為續(xù)行。 ·
4.FORTRAN語句可以有標號。標號作為一個語句被其他語句引用的標志。在同一個程序單位中,不能出現(xiàn)相同的語句標號。
5.程序單位的最后一行語句,必須是END語句。如果一個FORTRAN語句行與注釋行的集合,最末沒有END,可稱其為一個語句塊或程序段,但不能作為一個程序單位。
(二)書寫規(guī)則
1.FORTRAN77的字符集由26個英文字母、10個數(shù)字和其他13個專用字符組成。
2. 一個程序行有80列,每列寫一個字符。
3. 程序行的第1列如寫上C或x,表示該行為注釋行。注釋內容可寫在該行中除第1
列外的任意位置。
4.在語句行中,程序行的第1列至第5列為語句標號區(qū),標號區(qū)內是最多為5位的無符號整數(shù);程序行的第6列為續(xù)行區(qū),若某行為續(xù)行,則標號區(qū)必須空白,且第6列為非0的任一FORTRAN77字符(不能為空格);第7列至第72列為語句區(qū)。
例如,在邊長為B的正方形中挖一個半徑為R的圓,計算剩余的面積;若B<2R,
則給出相關信息。該問題的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行為帶標號的語句,第7—8行為連續(xù)行,符號$為續(xù)行標志。
(三)常量與變量
1.常量指程序中其值固定不變的一些量,包括以下6種類型。
(1) 整形常量,也稱整數(shù)。一個整數(shù)可采用正、負號和數(shù)字字符表示,正號可以省略。
(2) 實型常量,也稱實數(shù)??梢杂眯?shù)形式或指數(shù)形式表示。用指數(shù)形式表示的實數(shù)。如11.3E5,+11.3E+5,1.E-12,-.23E12等。
(3)雙精度實型常量,或稱雙精度實數(shù)。雙精度實數(shù)也是實數(shù)。但在一般的微型計算機中,實數(shù)的有效位數(shù)為7位,雙精度實數(shù)的有效位數(shù)可以達到15~17位。雙精度實數(shù)的表示方法,除在指數(shù)形式的表達中用字符D代替E以外,其余和實數(shù)相同。
(4)復型常量,簡稱復數(shù)。在FORTRAN中,用一對圓括弧括起來的兩個實數(shù)表示。如(12.0,-6.E2)表示復數(shù)12.0-600.0i
(5)邏輯型常量。FORTRAN中的邏輯型常量有兩個值:.TRUE.與.FALSE.
(6)字符型常量,也稱為字符串。計算機系統(tǒng)使用的若干個字符,用一對單引號括起來后就作為字符串。
2.變量指在程序運行期間可以改變的量。
(1)變量的類型與常量相對應,分為整型變量、實型變量、雙精度實型變量、復型變
量、邏輯型變量與字符串變量。
(2)變量名按一定的規(guī)則命名。在FORTRAN中,變量名采用1至6個字符(數(shù)字或字母),其中第一個字符必須是字母。FORTRAN 77規(guī)定,變量名書寫時不區(qū)別字母的
大寫與小寫,例如ABc與aBC都指同一個變量。
(3)變量類型的說明方法。
1)I-N隱含規(guī)則。在程序單位中沒有其他說明時,以字母I,J,K,L,M,N中的
任一個字母打頭命名的變量都是整型變量。
2)用類型說明語句規(guī)定變量類型。例如:
INTEGER A,COUNT
REAL ICOUNT
DOUBLEPRECISION XING
COMPLEX DUP
LOGICAL JUG
CHARACTER FILENM
分別表示變量A,COUNT為整型,ICOUNT為實型,XING為雙精度實型,DUP為復制,JUG為邏輯型,F(xiàn)ILENM為字符型變量,其長度為10個字符。
3)用隱含說明語句IMPLICIT語句,可以將程序單位中以某一字母開頭的所有變量
指定為所需類型。例如:
IMPLICIT INTEGER(A,C),REAL(1—K)
指定了以A與C字母開頭的所有變量都是整型變量,以字母I至K開頭的所有變量為實型變量。
類型說明語句和隱含說明語句只在本程序單位中有效;他們必須放在程序單位所有可執(zhí)行語句的前面,而IMPLICIT語句又必須在所有的類型說明語句的前面。確定變量類型的三種方法中,類型說明語句的優(yōu)先級,I-N規(guī)則的優(yōu)先級最低。