|
沙发

楼主 |
发表于 2015-4-8 10:18:00
|
只看该作者
結構化Fortran有一些控制的結構,關係控制即是其中之一種,用以比較兩變數之間關係,
包含有:
.lt. 表示小於
.gt. 表示大於
.eq. 表示等於
.le. 表示小於或等於
.ge. 表示大於或等於
.ne. 表示不等於
另一種重要的控制為邏輯控制,包含有:
.not. .not. p => 若p為非真則為真
.and. p .and. q => p和q為真則為真
.or. p .or. q => p或q其一為真則為真
.eqv. p .eqv. q => p和q同為真或同為非真則為真
.neqv. p .neqv. q => p或q之中一為真一為非真則為真
------------------------------------------------------------------------------
--
e、輸入與輸出結構:
> Fortran 經常會有一些數值需要輸入或計算的值需要輸出,這時 Fortran 便提供了一些
格式碼好讓使用者將欲輸入或輸出的數值針對其變數的特性作較佳的安排設計,茲舉例如
下,其中輸出之資料格式完全相同:
a、write(*,10) i,j,k
10 format (1x,2I5,I3)
b、assign 10 to ifmt
10 format (1x,2I5,I3)
write (*,ifmt) i,j,k
c、write (*,'(1x,2I5,I3)') i,j,k
d、character*11 fmtch
fmtch='(1x,2I5,I3)'
write (*,fmtch) i,j,k
其中X表示空格之意,1x即是空一格, write為輸出的指令,若改為 read 則為輸入指令,
I為整數的格式碼, 2I5 表示輸出的總位數為五,而這樣的格式重複兩次,其餘尚有不同
之各種格式碼,常用的有:
F 格式碼,用於實數變數,其一般型態為 rFw.d ,其中F表實數,r為重複次數,w為總位
數,而d為小數位數。
E 格式碼,為指數格式的輸出,其一般型態為 rEw.d ,其中E表示輸出型態為指數,其餘
的r、w和d的定義則和F格式碼相同。
D 格式碼,用於倍準度實數的輸出入,基本型態為 rDw.d,使用規則與 E 格式碼則完全相
同。
G 格式碼,其型態與 E 或 F 格式碼相同,但其功用則不同,他是用在當我們無法預知實
數的大小值時,使用 G 格式碼後,電腦會自動視數值的大小將 G 格式碼轉為 E 格式碼或
F 格式碼。
------------------------------------------------------------------------------
--
f、選擇性結構:
當有兩組或更多組程式中之一組要跑但卻未能確定時,則必須有某種選擇性的控制程式執
行路線,這樣的語法為選擇性控制,在Fortran上為 If 語法,其架構大致如下:
If (logical-expression)then
statement-1
.
.
statement-n
else
statement-1'
.
.
statement-n'
endif
上述的意思是If中的邏輯為真時則執行1至n這一組程式,不然則執行1'至n'這一組程式。
若將一組程式簡稱為block,當上述的邏輯判斷較為複雜時,常無法在一個條件中表達完成
,故可有以下之另外兩種形式:第一種為
pS pi?z X
If (logical-expression)then
block-1
If (logical-expression)then
block-2
endif
block-3
endif
第二種為
If (logical-expression-1)then
block-1
elseIf (logical-expression-2)then
block-2
elseif (logical-expression-3)then
block-3
endif
------------------------------------------------------------------------------
--
循環性(回圈)結構: 在數值上常會有收斂值的問題或有同樣的程式需執行很多次的情形
,這時都需要用到回圈的結構,其基本的語法與結構如下:一、
do n1 n2=n3,n4,n5
block
n1 continue
二、
do n2=n3,n4,n5
block
enddo
其中n1表示回圈執行該循環重新跑的位址,n2為控制的主要變數,n3為n2的起始值,n4為
n2的極限值,也就是說當n2等於n4時回圈及停止,n5為每執行一次回圈n2所需做的增量,
其中n5可不設定而由Fortran內定為1,或在block中執行某程式將n2做一定量的修正。另有
一種融合選擇性結構和回圈結構的語法如下:
while (logical expression) do
statement 1
.
.
statement n
endwhile
或是
dowhile ( logical expression )
statement 1
.
.
statement n
enddo
|
|