Fortran學(xué)習(xí)筆記4

邏輯運(yùn)算

if命令需要和邏輯運(yùn)算表達(dá)式搭配才能起到很好的效果檩奠。下面分別列出Fortran90和Fortran77的邏輯運(yùn)算符约素。

Fortran90 Fortran77 符號描述
== .EQ. 判斷兩個表達(dá)式是否相等
/= .NE. 判斷兩個表達(dá)式是否不相等
> .GT. 判斷是否大于
>= .GE. 判斷是否大于或等于
< .LT. 判斷是否小于
<= .LE. 判斷是否小于或等于

集合運(yùn)算符

符號 符號說明
.AND. 交集,兩邊表達(dá)式都為真時(shí)為真(二元運(yùn)算符)
.OR. 并集笆凌,有一個表達(dá)式為假則為假(二元運(yùn)算符)
.NOT. 取非圣猎,真值于后面表達(dá)式相反(單目運(yùn)算符)
.EQV. 相等,兩邊邏輯運(yùn)算結(jié)果相同時(shí)為真(二元運(yùn)算符)
.NEQV. 不相等乞而,兩邊邏輯運(yùn)算結(jié)果不同時(shí)為真(二元運(yùn)算符)

邏輯運(yùn)算符的優(yōu)先級高于集合運(yùn)算符送悔。


循環(huán)

循環(huán)的主要功能是精簡代碼!Wδ!欠啤!有兩種格式,一種是固定循環(huán)n次屋灌,另一種是滿足條件時(shí)循環(huán)洁段。主要有兩條語句,Do語句和Do-While語句共郭。

請注意祠丝,循環(huán)并不一定要用循環(huán)語句才能實(shí)現(xiàn)疾呻。循環(huán)是一種將線狀程序濃縮塊狀化的思想。是一種編程思想P窗搿0段稀!叠蝇!不是語句或者其他璃岳。

Do語句

語法如下:

do counter=initial,endnumber,increment
    ...       !  counter計(jì)數(shù)器,從初始值開始悔捶,每循環(huán)一次加增量大小.
    ...       !  endnumber計(jì)數(shù)器的終止铃慷,當(dāng)計(jì)數(shù)器大于終止數(shù)時(shí),循環(huán)停止
    ...       ! increment  增量數(shù)蜕该,每次循環(huán)枚冗,給計(jì)數(shù)器加一個增量數(shù)
end do

在Fortran77中,會用行號來封裝循環(huán)蛇损。

do   100   counter=initial,endnumber,increment
    ...       !  counter計(jì)數(shù)器赁温,從初始值開始,每循環(huán)一次加增量大小.
    ...       !  endnumber計(jì)數(shù)器的終止淤齐,當(dāng)計(jì)數(shù)器大于終止數(shù)時(shí)股囊,循環(huán)停止
    ...       ! increment  增量數(shù),每次循環(huán)更啄,給計(jì)數(shù)器加一個增量數(shù)
100    continue

do循環(huán)可以嵌套稚疹。

do i=1,n
    do j=1,n
        do k=1,n
            ...
        end do
    end do
end do

Do-While循環(huán)

語法如下:

do while(rep)
    ......  !   檔rep為真時(shí),一直執(zhí)行循環(huán)體祭务。
    ......
end do

循環(huán)控制

循環(huán)控制語句主要有CYCLE和EXIT内狗。cycle命令可以略過循環(huán)程序模塊中,cycle命令后面的所有程序代碼义锥,直接跳到循環(huán)的開頭來進(jìn)行下一次循環(huán)柳沙。exit的功能是直接跳出當(dāng)前循環(huán),不論是do循環(huán)還是do-while循環(huán)拌倍。

循環(huán)還可以取“名字”赂鲤,這個用途是可以在編寫循環(huán)時(shí)能明白的知道END DO這個描述的位置是否正確,尤其是在多層循環(huán)中柱恤,署名的循環(huán)也可以配合CYCLE数初、EXIT來使用。


循環(huán)應(yīng)用實(shí)例

下面給出幾個循環(huán)的簡單實(shí)例:

實(shí)例1:計(jì)算Fibonacci sequences的前n項(xiàng)梗顺。)

program main
    implicit none 
    !  input  Fibonacci sequences

    real*8::f(100)
    integer::i,m
    print*,"Please input the number you love"
    read(*,*)m
    i=1
    ! 數(shù)組置零泡孩,利用EXIT跳出循環(huán)
   do while ( .true. )

    f(i)=0
    i=i+1
    if(i>100) exit
   end do

    f(1)=0
    f(2)=1
   xunhuan: Do i=3,m,1

        f(i)=f(i-1)+f(i-2)

    End Do xunhuan

    write(*,100)f(1:m)
100   format(T5,'The Fibonacci sequence are : ',/,5(F15.2))

end program

實(shí)例2:以循環(huán)來計(jì)算$ \frac{1}{1!}+\frac{1}{2!}+\frac{1}{3!}+\frac{1}{4!}+\cdots+\frac{1}{10!} $

program main
    implicit none
    real::sum=0
    integer::i,j
    real*8::temp=1

    outer: do i=1,10
         inner:do j=1,i
                 temp=temp*j
          end do  inner
         sum=sum+1.0/temp
         temp=1
    end do outer
    write(*,"(F6.3)")sum
end program

實(shí)例3:做一個加密、解密程序寺谤。

該程序摘自彭國倫《Fortran95程序設(shè)計(jì)》一書(p113仑鸥,程序EX0612)吮播,原程序在排版時(shí)出現(xiàn)了書寫錯誤。該程序作了修改锈候。

program main
    !  定義變量
    implicit none
    integer i
    integer strlen
    integer,parameter::key=2
    character(len=60)::string
    !  加密過程
    write(*,*)"string:"
    read(*,"(A60)") string
    strlen=len(trim(string)) ! 取得字符串長度

    do i=1,strlen
        string(i:i)=char(ichar(string(i:i))+key)
    end do

    write(*,"('encoded:',A60)")string
    !  解密過程
    do i=1,strlen
        string(i:i)=char(ichar(string(i:i))-key)
    end do
    write(*,"('string: ',A60)")string

    stop
end program
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市敞贡,隨后出現(xiàn)的幾起案子泵琳,更是在濱河造成了極大的恐慌,老刑警劉巖誊役,帶你破解...
    沈念sama閱讀 218,036評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件获列,死亡現(xiàn)場離奇詭異,居然都是意外死亡蛔垢,警方通過查閱死者的電腦和手機(jī)击孩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,046評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來鹏漆,“玉大人巩梢,你說我怎么就攤上這事∫樟幔” “怎么了括蝠?”我有些...
    開封第一講書人閱讀 164,411評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長饭聚。 經(jīng)常有香客問我忌警,道長,這世上最難降的妖魔是什么秒梳? 我笑而不...
    開封第一講書人閱讀 58,622評論 1 293
  • 正文 為了忘掉前任法绵,我火速辦了婚禮,結(jié)果婚禮上酪碘,老公的妹妹穿的比我還像新娘朋譬。我一直安慰自己,他們只是感情好兴垦,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,661評論 6 392
  • 文/花漫 我一把揭開白布此熬。 她就那樣靜靜地躺著,像睡著了一般滑进。 火紅的嫁衣襯著肌膚如雪犀忱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,521評論 1 304
  • 那天扶关,我揣著相機(jī)與錄音阴汇,去河邊找鬼。 笑死节槐,一個胖子當(dāng)著我的面吹牛搀庶,可吹牛的內(nèi)容都是我干的拐纱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,288評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼哥倔,長吁一口氣:“原來是場噩夢啊……” “哼秸架!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起咆蒿,我...
    開封第一講書人閱讀 39,200評論 0 276
  • 序言:老撾萬榮一對情侶失蹤东抹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后沃测,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體缭黔,經(jīng)...
    沈念sama閱讀 45,644評論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,837評論 3 336
  • 正文 我和宋清朗相戀三年蒂破,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了馏谨。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,953評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡附迷,死狀恐怖惧互,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情喇伯,我是刑警寧澤壹哺,帶...
    沈念sama閱讀 35,673評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站艘刚,受9級特大地震影響管宵,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜攀甚,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,281評論 3 329
  • 文/蒙蒙 一箩朴、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧秋度,春花似錦炸庞、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,889評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至事期,卻和暖如春滥壕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背兽泣。 一陣腳步聲響...
    開封第一講書人閱讀 33,011評論 1 269
  • 我被黑心中介騙來泰國打工绎橘, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人唠倦。 一個月前我還...
    沈念sama閱讀 48,119評論 3 370
  • 正文 我出身青樓称鳞,卻偏偏與公主長得像涮较,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子冈止,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,901評論 2 355

推薦閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實(shí)現(xiàn)進(jìn)入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程狂票,因...
    小菜c閱讀 6,419評論 0 17
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法熙暴,內(nèi)部類的語法闺属,繼承相關(guān)的語法,異常的語法怨咪,線程的語...
    子非魚_t_閱讀 31,631評論 18 399
  • 你與我雖不相識屋剑, 但你的面孔润匙, 卻那么熟悉诗眨。 我希望, 那是你孕讳, 宮寧…… 今天我有預(yù)感匠楚, 會與你相遇, 宮寧……...
    北京寂寞部屋閱讀 267評論 3 1
  • Is there a song that reminds you of your father? ——Think...
    妮蘭芝閱讀 589評論 0 1
  • 一、作用效果使用該關(guān)鍵字修飾的方法璃饱,在同一時(shí)刻最多只有一個線程可以進(jìn)入与斤。如果第一個線程獲取鎖進(jìn)入了synchron...
    MagicCoder閱讀 2,729評論 0 2