版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第三章
FORTRAN語言程序設計初步1第三章FORTRANFORTRAN語言程序設計初步任何一種程序設計語言都有自己的一套語法規(guī)則以及由基本符號按語法規(guī)則構(gòu)成的各種語法成分:如常量、變量、表達式、語句、函數(shù)等.FORTRAN語言程序設計初步就是要求我們熟練地掌握這些語法成分。2FORTRAN語言程序設計初步任何一種程序設計語言都有自己的fortran程序設計初步課件fortran程序設計初步課件3.1FORTRAN語言發(fā)展概況FORTRAN90的推出,是FORTRAN語言發(fā)展史上的一個里程碑,它挽救了FORTRAN語言面臨淘汰的局面,使傳統(tǒng)的FORTRAN語言煥發(fā)了青春,以其強大的功能和嚴謹?shù)娘L格受到人們的歡迎和認可,并展現(xiàn)出良好的應用前景FORTRAN95是FORTRAN90的修訂版,增加了許多新功能,加強了多處理機并行計算能力。發(fā)達國家已開始重新認識FORTRAN語言,對FORTRAN90/95語言的研究、開發(fā)和應用給予了高度重視,FORTRAN語言正在發(fā)揮越來越大的作用。我國從90年代末開始引進FORTRA90/95有關(guān)資料和相關(guān)軟件,并在許多高校開設FORTRAN90/95課程。53.1FORTRAN語言發(fā)展概況FORTRAN90的推3.1FORTRAN語言發(fā)展概況Fortran90的程序結(jié)構(gòu)圖簡介主程序A1USEModuleA
CallBCallC
……
Contains
SubroutineC
……
EndSubroutine
…….
End主程序A1內(nèi)部子程序SubroutineB
……
EndSubroutineModuleA
……
Contains
…….
EndModuleA模塊子程序63.1FORTRAN語言發(fā)展概況Fortran90的程序3.1FORTRAN語言發(fā)展概況Fortran90的主要改進:書寫格式;數(shù)據(jù)聲明與賦初值;添加二進制、八進制、十六進制運算;新的DO循環(huán);數(shù)據(jù)的自定義類型;多重選擇(selectcase);動態(tài)數(shù)組;內(nèi)部子程序和遞歸子程序的功能;添加了許多新的內(nèi)在子程序(內(nèi)在函數(shù))指針;模塊;接口…下一節(jié):程序分析73.1FORTRAN語言發(fā)展概況Fortran90的主要3.2簡單程序分析102030405060708001234567890123456789012345678901234567890123456789012345678901234567890123456789CCALCULATETHEAVERAGEOFTHREENUMBERS x=90.5 y=87.0 z=68.5 AVER=(x+y+z)/3.0 print*,‘thethreenumbersare’,x,y,z prnt*,‘a(chǎn)verage=‘,aver end#include<stdio.h>
voidmain()
{floatx,y,z,Aver;
x=90.5;
y=87.0;
z=68.5;
Aver=(x+y+z)/3;
printf(“%f%f%f\n”,x,y,z);
printf(”%f\n”,Aver);
}83.2簡單程序分析102源程序的建立9源程序的建立9C語言源程序及運行結(jié)果10C語言源程序及運行結(jié)果10語法著色:綠色:注釋文本;藍色:關(guān)鍵字;黑色:代碼。注意源程序字符與單詞顏色11語法著色:注意源程序字符與單詞顏色113.2簡單程序分析102030405060708001234567890123456789012345678901234567890123456789012345678901234567890123456789CMAINPROGRAM
PROGRAMEX2 print*,’R’,1.0,‘C=’,C(1.0)
print*,‘R’,1.5,‘C=’,C(1.5) print*,‘R’,3.0,‘C=’,C(3.0) print*,‘R’,12.5,‘C=’,C(12.5) end01234567890123456789012345678901234567890123456789012345678901234567890123456789CSUBPROGRAM
FUNCTIONC(R) pi=3.1415926 C=2*pi*R return end例如:將此文件保存為:
li3.for如保存此文件:li3_1.for分別將兩個文件編譯再buildli3.EXE即可運行123.2簡單程序分析10#include<stdio.h>voidmain(){floatx,y,z,w;floatc(float);x=c(1.0);y=c(1.5);z=c(3.0);w=c(12.5);printf("%15f%15f%15f%15f\n",x,y,z,w);}floatc(floatr){floatpi=3.14159,cc;cc=pi*r*r;returncc;}對比C語言分析該程序13#include<stdio.h>對比C語言分析該程序13從上例可以看出計算機程序的組成:單位定義部分(主、子程序)說明部分輸入部分計算或處理部分輸出部分END結(jié)束14從上例可以看出計算機程序的組成:單位定義部分(主、子程序)1從上例可以看出計算機程序的組成:程序單位:具有以上各部分組成(或部分)的程序稱為一個程序單位,可以單獨編譯,也可以一起編譯。
(主程序、子程序、數(shù)據(jù)塊子程序、模塊)(我們已經(jīng)知道,在C語言中,程序的組成是由若干個函數(shù)組成的。)15從上例可以看出計算機程序的組成:程序單位:具有以上各部分組成FORTRAN的程序單位FORTRAN90程序主程序單元外部子程序單元模塊單元數(shù)據(jù)塊單元CONTAINS外部子程序1類型說明部分CONTAINSCONTAINS內(nèi)部子程序組內(nèi)部子程序組外部子程序2內(nèi)部子程序組數(shù)據(jù)塊說明CONTAINS內(nèi)部子程序組
FORTRAN各程序單元主程序單元
外部子程序單元
模塊單元
數(shù)據(jù)塊單元
CONTAINS外部子程序1
類型說明CONTAINSCONTAINS內(nèi)部子程序組內(nèi)部子程序組外部子程序2內(nèi)部子程序組數(shù)據(jù)塊說明CONTAINS內(nèi)部子程序組(1)(2)(3)(4)16FORTRAN的程序單位FORTRAN90程序使用CompaqVisualFortran6(或MicrosoftFortranPowerstation4.0)建立程序與執(zhí)行過程如下(八步):1)首先在工作盤中建立文件夾,如:For_test2)啟動Fortran集成開發(fā)環(huán)境(DeveloperStudio);
3)“文件”“新建”“項目”確定位置,填寫項目名4)“文件”“新建”“FILE”選擇程序格式:“FortranFixedFormatSourceFile”
在Location:For_testOK5)進入編輯狀態(tài)輸入源文件保存該文件6)需要時需重復步驟4建立新的文件;7)分別打開源文件編譯;8)Build*.Exe文件運行!Fixed
Free17使用CompaqVisualFortran6(或M對于編譯連接后的*.EXE文件,還可以單獨運行:1)運行CMDD:2)可以刪除原文件以及目標文件等;3)直接鍵入文件名,運行*.EXE程序.18對于編譯連接后的*.EXE文件,還可以單獨運行:1)運行CFORTRAN語言的基本特點1)一個程序由一個或若干個程序單位組成;2)每一個程序單位都是以“END”語句作為結(jié)束;3)一個程序單位包括若干行:
(1)語句行
執(zhí)行語句(使計算機在運行時產(chǎn)生某些操作)
非執(zhí)行語句(如類型說明語句、數(shù)據(jù)語句)
(2)非語句行(如注釋行)
盡管不執(zhí)行,但在打印清單時被打印出來;4)FORTRAN語句可以沒有標號,也可以有標號;5)一個程序單位中各類語句位置是有一定規(guī)定的;6)FORTRAN源程序必須按一定的格式書寫。!19FORTRAN語言的基本特點1)一個程序由一個或若干個程序FORTRAN編譯系統(tǒng)目前使用的編譯系統(tǒng):MicrosoftFortranPowerstation4.0
(微軟賣給了Digital,Digital繼續(xù)開發(fā))DigitalVisualFortran5.0
(Digital被Compaq并購)CompaqVisualFortran6.06.5
(Compaq與Intel合并)IntelVisualFortran9.0…11.020FORTRAN編譯系統(tǒng)目前使用的編譯系統(tǒng):20FORTRAN編譯系統(tǒng)的安裝21FORTRAN編譯系統(tǒng)的安裝21FORTRAN編譯系統(tǒng)的安裝運行安裝程序22FORTRAN編譯系統(tǒng)的安裝運行安裝程序22FORTRAN編譯系統(tǒng)的安裝選擇安裝23FORTRAN編譯系統(tǒng)的安裝選擇安裝23FORTRAN編譯系統(tǒng)的安裝建議在安裝本系統(tǒng)之前關(guān)閉其它應用程序24FORTRAN編譯系統(tǒng)的安裝建議在安裝本系統(tǒng)之前關(guān)閉其它應用FORTRAN編譯系統(tǒng)的安裝3320605000107430000725FORTRAN編譯系統(tǒng)的安裝332060500010FORTRAN編譯系統(tǒng)的安裝建議改為自己定義的盤符和文件夾26FORTRAN編譯系統(tǒng)的安裝建議改為自己定義的盤符和文件夾2FORTRAN編譯系統(tǒng)的安裝27FORTRAN編譯系統(tǒng)的安裝27FORTRAN編譯系統(tǒng)的安裝28FORTRAN編譯系統(tǒng)的安裝28FORTRAN編譯系統(tǒng)的安裝建議選擇更新環(huán)境29FORTRAN編譯系統(tǒng)的安裝建議選擇更新環(huán)境29FORTRAN編譯系統(tǒng)的安裝30FORTRAN編譯系統(tǒng)的安裝30FORTRAN編譯系統(tǒng)的安裝31FORTRAN編譯系統(tǒng)的安裝31FORTRAN編譯系統(tǒng)—開始運行32FORTRAN編譯系統(tǒng)—開始運行32FORTRAN編譯系統(tǒng)—開始運行CompaqVirsualFortran6.533FORTRAN編譯系統(tǒng)—開始運行CompaqVirsualFORTRAN編譯系統(tǒng)—開始運行
文件新建項目FortranConsoleApp自動創(chuàng)建文件夾34FORTRAN編譯系統(tǒng)—開始運行
文件新建項目FortFORTRAN編譯系統(tǒng)—開始運行在6.5版本中,Workspace里可以包含多個Projects,但每一個Projects里只能包含一個主文件(*.EXE)。而在PS4.0中,只有項目空間ProjectsWorkspace,所以在此只有一個主文件,該文件名就是項目空間名。工作空間、項目、
文件之關(guān)系
Go……35FORTRAN編譯系統(tǒng)—開始運行在6.5版本中,WorkspFORTRAN編譯系統(tǒng)—開始運行
文件新建File選擇格式填寫文件名CompaqVirsualFortran6.536FORTRAN編譯系統(tǒng)—開始運行
文件新建File選擇POWERSTATION4.037POWERSTATION4.037POWERSTATION4.038POWERSTATION4.038FORTRAN編譯系統(tǒng)—開始運行CompaqVirsualFortran6.539FORTRAN編譯系統(tǒng)—開始運行CompaqVirsualFORTRAN編譯系統(tǒng)—建立源文件CompaqVirsualFortran6.540FORTRAN編譯系統(tǒng)—建立源文件CompaqVirsuaFORTRAN編譯系統(tǒng)—保存源文件41FORTRAN編譯系統(tǒng)—保存源文件41FORTRAN編譯系統(tǒng)—開始編譯42FORTRAN編譯系統(tǒng)—開始編譯42FORTRAN編譯系統(tǒng)—編譯43FORTRAN編譯系統(tǒng)—編譯43FORTRAN編譯系統(tǒng)—連接裝配44FORTRAN編譯系統(tǒng)—連接裝配44FORTRAN編譯系統(tǒng)—連接裝配45FORTRAN編譯系統(tǒng)—連接裝配45FORTRAN編譯系統(tǒng)—開始運行46FORTRAN編譯系統(tǒng)—開始運行46FORTRAN編譯系統(tǒng)—顯示結(jié)果47FORTRAN編譯系統(tǒng)—顯示結(jié)果47總結(jié)上機步驟:建立一個新的Project(File/New,選擇Project卡,選擇Fortranconsoleprogram格式,給出Project名),Project會自動保存*.dsw文件.生成一個新的程序文件(File/New,選擇File卡,選擇兩種格式之一,并給出文件名),或者是插入一個已有的文件(Project/addtoproject/Files)。單擊File/SaveWorkspace,就保存Project所包含的程序文件。在Builds菜單上直接選擇Execute就會自動完成編譯到執(zhí)行全過程,也可以選擇Build只做編譯。要編寫新的程序就要另建一個Project,也可更換Project中的文件。注意不要把兩個獨立的程序文件放在同一個Project里(否則編譯時出錯)。下次要修改程序時,直接File/Workspace打開*.dsw中的Project工程文件。48總結(jié)上機步驟:建立一個新的Project(File/New,FortranPowerStation4.0其它編譯環(huán)境:GOCVF6.5DOS環(huán)境GOPS4.0環(huán)境49FortranPowerStation4.0其它編譯環(huán)境FORTRAN程序舉例Exa3_1.for(P46)Exa3_2main.for(P47)Exa3_2sub.for(P47)
(實例演示)50FORTRAN程序舉例Exa3_1.for(P46)5關(guān)于Debug格式與Release格式debug格式:在開發(fā)過程中便于程序調(diào)試的環(huán)境;Release格式:經(jīng)過優(yōu)化后的環(huán)境,執(zhí)行效率高(高于debug很多倍)??稍谶@兩項中設置:
1)Configuration2)SetActiveConfiguration51關(guān)于Debug格式與Release格式debug格式:在開發(fā)3.3FORTRAN書寫格式FORTRAN程序代碼的編寫格式有兩種:FixedFormat(固定格式)本教材采用
擴展名:.F或.FORFreeFormat(自由格式…4.0版本以上)
擴展名:.F90523.3FORTRAN書寫格式FORTRAN程序代碼的3.3FORTRAN77書寫格式(固定)Fortran一行80列,分為四個區(qū)域:
1)標號區(qū)(1~5列):1~5位無符號的整數(shù),中間空格不起作用(100、100、100是相同的)沒有大小順序。標號區(qū)第一列必須是空格、數(shù)字、C、*、!【F90:數(shù)字之間不能有空格;以!作為行注釋】;2)續(xù)行標志區(qū)(第6列)非空格或非0的字符:作為上一行的繼續(xù)行的標志。看圖示533.3FORTRAN77書寫格式(固定)Fortra3.3FORTRAN77書寫格式(固定)Fortran一行80列,分為四個區(qū)域:3)語句區(qū)(第7~72列)通常一行只寫一條語句。當多條語句寫在一行時,中間用分號隔開。
空格是被忽略的,如sin(x)是有效的。4)注釋區(qū)(第73~80列):不是語句的部分,除打印清單外,編譯系統(tǒng)不予處理(輸入的內(nèi)容為紅色)。543.3FORTRAN77書寫格式(固定)Fortra3.3FORTRAN書寫格式
FixedFormat(固定格式)第1個字符當為字母c、C或*,這一行文本會當成說明或批注,不會被編譯。第1~5個字符當為數(shù)字,就是用來給這一行程序代碼取個代號,不然只能是空格。第6個字符如果是非0非空的任何字符,表示這一行程序會接續(xù)上一行。第7~72個字符Fortran程序代碼的編寫區(qū)域。第73~80個字符以后不使用這些列,語句超過該列的部分會被忽略,有的編譯器會發(fā)出錯誤信息。553.3FORTRAN書寫格式
Fi3.3FORTRAN書寫格式(ForFORTRAN90)FreeFormat(自由格式—PASCAL、C使用的格式)基本上允許非常自由的編寫格式,它沒有規(guī)定每一行的第幾個字符有什么作用,但要注意:1.!感嘆號后面的文本都是注釋(行內(nèi)也一樣)。2.每行可以編寫132個字符。3.行號放在每行語句的最前面。4.某一行程序代碼的最后是符號&,則下一行和這一行連接;如果某一行程序代碼的開頭是&,則它會和上一行連接(表明是拆分關(guān)鍵字,在CVF6可以不用)。5.程序命令之間的空格是無意義的。
563.3FORTRAN書寫格式(ForFORTRAN3.3Fortran書寫格式(ForFORTRAN90)!FreeFormatprogrammainwrite(*,*)”Hello”!這也是注釋write(*,*)&”Hello”wri&&te(*,*)”Hello”!CVF6中可以不要這個&end573.3Fortran書寫格式(ForFORTRAN!FreeFormatprogrammainwrite(*,*)”Hello”write(*,*)&”Hello”wri&&te(*,*)”Hello”end58!FreeFormat58FORTRAN77字符集:編寫Fortran77程序時,所能使用的所有字符及符號就是F77的字符集:⑴A~Z(a~z)程序中不區(qū)分大小寫26個⑵0~910個
⑶空格=+-*/(),:.$‘22個
⑷_(下劃線)、!、”、%、&、;、>、<、?注意:
1、在FOR源程序中,只能使用以上字符2、字符型數(shù)據(jù)內(nèi)可以出現(xiàn)任意字符(包括漢字)next59FORTRAN77字符集:編寫Fortran77程序時,所能3.4FORTRAN源程序輸入方式早期卡片輸入或數(shù)據(jù)盤(早已淘汰)鍵盤輸入:
1)各種編輯環(huán)境
2)在編譯系統(tǒng)提供的編輯器輸入其它媒體輸入操作過程:
1)輸入源程序2)編譯3)連接4)運行603.4FORTRAN源程序輸入方式早期卡片輸入或數(shù)據(jù)盤源程序*.FOR*.F90
編譯連接運行目標程序
*.OBJ可執(zhí)行的
目標程序
*.exe以Fortran.for為例解釋Next-常量61源程序編譯連接運行目標程序
*.OBJ可執(zhí)行的
目標程序
*3.5常量在程序運行中,其值始終不變的量。常量整型常量實型常量雙精度常量復型常量邏輯型常量字符型常量前4種屬于算術(shù)型常量-常數(shù),后兩種為非數(shù)值型常量。C語言中的常量:
1:普通常量;
2:符號常量;
3:枚舉常量。623.5常量在程序運行中,其值始終不變的量。常量整先看看C語言的數(shù)據(jù)類型基本型:整型(長、基本、短以及是否帶符號,有8種之多)字符型(字符、字符串)實數(shù)型—單精度、雙精度枚舉型enum(erate):一個變量只有幾種可能的值構(gòu)造型:數(shù)組型結(jié)構(gòu)體型聯(lián)合體型union:(類似Common語句)指針型:空類型:C語言中的數(shù)據(jù)類型比FORTRAN77要多,但FORTRAN90基本上都有和C對應的數(shù)據(jù)類型.63先看看C語言的數(shù)據(jù)類型基本型:C語言中的數(shù)據(jù)類型比FORTR3.5.1整型常量整型常量(也稱整型常數(shù)、整數(shù))--Integer:它
為一個正的或負的或零的數(shù)。在程序中的常數(shù)的各數(shù)字之間的空格不起作用:132和132等價,也不能將12000寫成:12,000;在早期微機中,一般使用兩個字節(jié)(16BIT)存儲一個整型數(shù)(子集);而現(xiàn)在高版本的編譯系統(tǒng),則為:(-231~231-1)
0111111111111111符號位
0---正1---負數(shù)值215–1=32767(正整數(shù))
-215=-32768(負整數(shù))存儲整型數(shù)由計算機的字長而定.在固定格式可以,自由格式則出錯(此處鏈接見例)643.5.1整型常量整型常量(也稱整型常數(shù)、整數(shù))--附:在FORTRAN90中的定義種別:整型數(shù)據(jù):微機支持3種kind_Value:1,2,4[1]范圍:-128~127[2]范圍:-32768~32767[4]-2147483648~2147483647(-231~231-1)Integer默認kind_Value的值為4注:在Fortran77中整型數(shù)只是十進制的.而在C中,整型數(shù)除了十進制外,還分為8進制和16進制:01238進制數(shù)0x12316進制數(shù),而且還有:
(F90中與C相似)
基本整型、短整型、長整型之分。65附:在FORTRAN90中的定義種別:整型數(shù)據(jù):微機支持3種在FORTRAN90中的定義種別:Integer(kind=2)a,b,c,d,e
!或Integer(2)::a,b,c,d,e
!而F77是:Integer*2a,b,c,d,e Read(*,*)a,b,c,d,e Print*,a,b,c,d,e End程序中將變量a-e定義為16位整型量,則輸入的范圍在-32768~32767以內(nèi).66在FORTRAN90中的定義種別:Integer整型量溢出溢出:
上溢-出錯處理;
下溢-按0處理67整型量溢出溢出:
上溢-出錯處理;
下溢-按0處理673.5.2實型常量實型常量也稱實數(shù)(Real):有兩種表示形式1)小數(shù)形式:+1.8,-1.8,0.0,
10.,.36,.0均為合法2)指數(shù)形式:用E來表示10為底的指數(shù):
13.7×108
13.7E8
0.91×10-300.91E-30不合法:3E5.68.6E-3.7E12
3)指數(shù)形式在計算機中的表示方法:一般是
使用4個字節(jié)來表示一個實數(shù)的。
實數(shù)在
計算機內(nèi)存中一律以指數(shù)形式存放。683.5.2實型常量實型常量也稱實數(shù)(Real)3.5.2實型常量實數(shù)的表示中要注意點:可以無整數(shù)部分,但不能全無(整數(shù)和小數(shù));可以無小數(shù)部分或指數(shù)部分,但不能全無;如:123450.0(無指數(shù)部分)0.(無小數(shù)部分)
12345E+01(無小數(shù)點)3.(無小數(shù)部分)
.12345E+6(無整數(shù)部分).5(無整數(shù)部分)
12345.E+1(無小數(shù)部分)非法:-E+1(無整數(shù)部分也無小數(shù)部分)
0.1E-0.5
(階碼不是整數(shù))
0.1E+K
(階碼應該是常量)693.5.2實型常量實數(shù)的表示中要注意點:693.5.2實型常量理解實型常量在內(nèi)存中的存放形式:指數(shù)數(shù)符數(shù)字部分(小數(shù)部分)表示一個數(shù):0.1357821E-05-05
+1357821隱含小數(shù)點703.5.2實型常量理解實型常量在內(nèi)存中的存放形式:3.5.2實型常量具體對于4字節(jié)存放(0.111)2×25第一字節(jié)表示數(shù)的符號位、指數(shù)的符號位、指數(shù);后面的三個字節(jié)表示該數(shù)的數(shù)字部分;
+0000101111000000000000000000000第一個字節(jié)后三個字節(jié)我們可以通過Bitview查看713.5.2實型常量具體對于4字節(jié)存放(0.111)2×23.5.2實型常量實數(shù)在計算機中可以有多種形式表示:
1234.512345×10-1
1234.5123450×10-2
在數(shù)據(jù)輸入(或變量賦值)時系統(tǒng)認為都是有效的.但在計算機輸出時,通常采用以下兩種輸出形式:
(稱之為“格式化”、“規(guī)格化”后輸出)
(1)數(shù)字部分的值小于1。小數(shù)點后第一位是非
零的數(shù)字;
(2)數(shù)字部分的值大于1(小于等于9)。小數(shù)點
前是一位非零的數(shù)字;723.5.2實型常量實數(shù)在計算機中可以有多種形式表示:
1Next變量在PS4中,實數(shù)的范圍:
1.18*10-38至3.40*10+3873Next變量在PS4中,實數(shù)的范圍:
1.18*10-383.6變量3.6.1概念
變量是指在程序運行期間其值是可以變化的量。
X=123.4…
X=456.73.6.2變量名每一個變量需要一個名字來標識。***命名規(guī)則(對于F77):1)第一個字符是字母;(F90添加了$)2)在一個字母后面可以跟1~5位數(shù)字或字母3)有效變量名長度為6個字符(在現(xiàn)在的系統(tǒng)
中是不超過31個字符F90)程序運行的每個瞬間,一個變量只能有一個確定的值。在同一個程序單位里不能用同一個變量名來表示兩個不同的變量。743.6變量3.6.1概念程序運行的每個瞬間,一個變3.6變量合法的變量:
AX1ABCDCHINARATETOTAL
S123MYNAME$AB$_12etc.不合法的變量:
3XX+YZHU-SY-6TU.S.ADoc.Li由于變量的有效長度為6個字符,則:
SHANGHAI=6.5
SHANGHONG=8.8
實際上是一個變量:SHANGH在PS之后的版本就沒有這個限制使用下劃線是可以的753.6變量合法的變量:
AX1ABCD***使用變量名的注意事項:1)變量名字母不區(qū)分大、小寫;2)在變量名中有否空格是等效的(只對固定格式);3)取名時要便于理解和記憶;4)FORTRAN函數(shù)名和語句定義符均可以作為變量名.但在同一程序單位里的變量名、函數(shù)名、語句定義符不能為同名(下面是錯誤的):
如:sin=3.5
sum=sin*
sin(2.0)
print*,printNext注:在C中,變量名如果不定義就不能算是變量。而且還有大、小寫之分。
(Go…)這樣是可以:
SIN=3.5
SUM=SIN*SIN
PRINT*,SUM
END76***使用變量名的注意事項:Next注:在C中,變量名如果不3.6變量3.6.3變量類型
變量和常量一樣,也有類型之分(變量就是用來存放數(shù)據(jù)的)。
變量整型變量實型變量雙精度變量復型變量邏輯型變量字符型變量在程序中應當說明變量的類型,便于程序確定所占字節(jié)數(shù)和數(shù)據(jù)存儲形式(為準備存儲空間)。773.6變量3.6.3變量類型
變量和常量一樣,也有3.6變量3.6.3變量類型
在程序中規(guī)定變量類型的方法有以下三種:
隱含
約定類型說
明語句IMPLICIT
指定783.6變量3.6.3變量類型隱含
約定類型說
明語3.6變量3.6.3變量類型
在程序中的變量名,凡是以字母I、J、K、L、M、N開頭的,就認為該變量是整型變量:
I、J、IMAX、NUMBER、LINE、JOB、K1都是整型變量。同時也表明,除了上面I-N之外就都是實型的類型(尚未用類型說明語句時).隱含約定I-N規(guī)則793.6變量3.6.3變量類型隱含約定I-N規(guī)則793.6變量3.6.3變量類型
為了改變I-N規(guī)則的約束,可以使用類型說明語句:
Integera,sum,total
本來按I-N規(guī)則a,sum,total是實型變量,經(jīng)過Integer后就變成了整型變量。同樣使用:
RealIMAX,NUM,JOB就變成了實型變量。Fortran中的六個類型說明語句(基本):類型說明語句Double
precisionRealIntegerCharacterLogicalComplex803.6變量3.6.3變量類型類型說明語句Doubl3.6變量3.6.3變量類型
使用隱含指定語句可以將某一個字母開頭的全部變量指定為所需的類型(類似歸類法)。如:Implicitinteger(A,C,T-V)
ImplicitReal(I,J)還可以:
ImplicitInteger(a,b),Real(I,K),Integer(X-Z)IMPLICIT指定813.6變量3.6.3變量類型IMPLICIT指定83.6變量3.6.3變量類型
五點說明(很重要!必須掌握):1)三種方法的優(yōu)先級:
如:ImplicitReal(I,J)
IntegerImax
在程序中的結(jié)果是,Imax是整型(盡管語句1指明I開頭的變量名為實型,但級別沒有語句2高)類型說明ImplicitI-N規(guī)則高中低!823.6變量3.6.3變量類型類型說明Implici3.6變量2)類型說明和Implicit語句都是非執(zhí)行語
句,作用是通知編譯系統(tǒng)按規(guī)定的類型分
配內(nèi)存單元和數(shù)據(jù)的存放方式;3)類型說明只在本程序單位內(nèi)有效(同名的
變量名在主程序和子程序中是兩個變量)4)Implicit語句和類型說明語句應在本程序
單位中所有執(zhí)行語句之前,Implicit語
句又應在類型說明語句的前面(在Implicit
歸類后,使用類型說明選出一部分).5)如果使用了ImplicitNone則取消I-N規(guī)則,
但所有變量都必須用類型說明語句說明。
ImplicitNone
RealMax,Good
IntegerImin,Work833.6變量2)類型說明和Implicit語句都是非執(zhí)行由于使用:
implicitnone
而沒有指明數(shù)據(jù)類型,所以出錯.為什么編譯出錯?84由于使用:
implicitnone
而沒有指明數(shù)據(jù)類型,IMPLICIT
應在類型說
明語句之前!85IMPLICIT
應在類型說
明語句之前!85特別說明:I-N規(guī)則盡管是FORTRAN獨有的特點,但一個良好編程習慣的人,應該養(yǎng)成對任何變量都進行類型說明,以免造成數(shù)據(jù)類型混亂而產(chǎn)生不正確的計算結(jié)果。86特別說明:I-N規(guī)則盡管是FORTRAN獨有的特點,但一個良對FORTRAN90中變量的說明:1.在變量說明的同時,可以給變量賦初值;
INTEGER::I=5,J=126REAL::X=7.2,Z,W=774.22.在說明變量的同時也可說明其種別;
Integer(kind=2)a,b,c
!如果同時賦初值則應:Integer(2)::a=1,b=2,c3.在說明變量的同時,還可說明變量的屬性
INTEGER,PARAMETER::I=5,J=123REAL,DIMENSION(1:10)::A函數(shù)注意:類型說明后不要用括號,如:real(max1,max2)
在編譯時會出錯!87對FORTRAN90中變量的說明:1.在變量說明的同時,可以3.7FORTRAN函數(shù)(內(nèi)在函數(shù))由FORTRAN77系統(tǒng)為用戶提供的、為解決某一特定計算任務的程序段或特殊的子程序。(35個)這些函數(shù)都存放在磁盤上,編譯時將這些函數(shù)的二進制指令代碼插入到目標程序中;用戶只要按該函數(shù)的調(diào)用要求填寫函數(shù)表達式就能獲得計算結(jié)果;函數(shù)具有一個或多個自變量,當要求多個自變量時,變量位置的順序不能隨便改變;函數(shù)的自變量是有類型的,函數(shù)值也是有類型的.883.7FORTRAN函數(shù)(內(nèi)在函數(shù))由FORTRAN773.7FORTRAN函數(shù)(內(nèi)在函數(shù))自變量可以是常數(shù)、變量、表達式:
SQRT(4.0)SQRT(A)SQRT(3.0+3.0)
注意函數(shù)的自變量類型,如:SQRT(I)不合法,因為SQRT()函數(shù)的自變量不能為整型變量三角函數(shù)中的度數(shù)指的是“弧度”INT函數(shù)就是簡單地截除小數(shù)部分SIGN函數(shù):SIGN(A,B)就是將B的符號傳送給A,通常用于檢查A與B是不是相同的符號:如果如下的等式SIGN(A,B)=A成立,則A與B是同符號在FORTRAN中,函數(shù)名分為“通用名”和“專用名”(見函數(shù)表).一般我們在編程時多數(shù)用通用名。GO不是四舍五入角度=弧度*180/893.7FORTRAN函數(shù)(內(nèi)在函數(shù))自變量可以是常數(shù)、變FORTRAN內(nèi)在函數(shù)的分類:基本算式函數(shù);類型查詢函數(shù);基本字符操函數(shù);其它字符操作函數(shù);位操作函數(shù);向量和矩陣操作函數(shù);數(shù)組運算、查詢函數(shù);數(shù)組構(gòu)造與處理函數(shù)。90FORTRAN內(nèi)在函數(shù)的分類:基本算式函數(shù);90MOD():函數(shù)值—整型
它的專用名有:
AMOD():函數(shù)值—實型
DMOD():函數(shù)值—雙精度型A=5.5
B=5.12
N=5.0
I=6.6
C1=Amod(A,B)
C2=Mod(I,N)
NC1=Mod(I,N)
Print*,C1,C2,NC1
End91MOD():函數(shù)值—整型
它的專用名有:
AMOD():函數(shù)函數(shù)名含義例ABSABS(A)EXPEXP(A)SINSIN(X)COSCOS(X)ASIN反正弦ASIN(X)ACOS反余弦ACOS(X)TANTAN(X)ATANATAN(X)SQRTSQRT(A)函數(shù)名含義例LOGLOG(A)LOG10LOG10(A)INTINT(A)MODMOD(A,B)*SIGN求符號SIGN(A,B)REALREAL(I)MAXMAX(A,B,C,D,E)MINMIN(A,B,C,D,E)自然對數(shù)常用對數(shù)CMPLX(a)CMPLX(a1,a2)常用數(shù)學內(nèi)在函數(shù)92函數(shù)名含義例ABSABS(A)EXPEXP(A)SINSIN3.7FORTRAN函數(shù)(內(nèi)在函數(shù))比較說明:對于I=Mod(m,n),余數(shù)送I中;
而在C語言中,I=M%N,其中M和N不能為實數(shù),也就是說實數(shù)不能求余運算.
在FORTRAN中沒有這個限制:
如:A=10.29
B=15.55
C=Mod(A,B)=>10.29
如:A=10.29
B=5.54
C=Mod(A,B)=>4.75933.7FORTRAN函數(shù)(內(nèi)在函數(shù))比較說明:93關(guān)于Fortran90位操作函數(shù)舉例integer(1)::A,B,C! (必須定義為整型數(shù))A=b'10101100'B=b'11101101'write(*,“(1x,B8)”)Iand(A,B)!按位“與”write(*,“(1x,B8)”)IOR(A,B)!按位“或”write(*,“(1x,B8)”)IEOR(A,B)!按位“異或”write(*,“(1x,B8)”)Not(A)!按位“非”write(*,*)Bit_size(A),Bit_size(Not(A))!A的位數(shù)write(*,*)Btest(A,4)!判斷A的第四位是否為1write(*,“(1x,B8)”)IBCLR(A,2)!將A的第二位置零write(*,“(1x,B8)”)IBSET(A,0)!將A的最低位置1write(*,“(1x,B8)”)Ishft(A,1),Ishft(A,-1)!A左移、A右移write(*,“(1x,B8)”)IshftC(A,1,4),IshftC(A,-1,4)!A的第四位End!左移,A的第四位右移94關(guān)于Fortran90位操作函數(shù)舉例integer(1)::算術(shù)表達式95算術(shù)表達式953.8算術(shù)表達式3.8.1算術(shù)運算符和運算優(yōu)先級可以使用五種算術(shù)運算符號:
加(+)、減(-)、乘(*)、除(/)、乘方(**)注意:A*-B是不合法的,應該寫成(A*(-B));
兩個運算符不能相鄰(但在CVF6中作了修改)。優(yōu)先級次序:
高**乘方
中*/乘除
低+-加減當冪為小數(shù)時也可以用于求平方根。4**0.5=sqrt(4.0)963.8算術(shù)表達式3.8.1算術(shù)運算符和運算優(yōu)先級3.8算術(shù)表達式3.8.2算術(shù)表達式的含義和表示方法
表達式是運算符和運算元素(常量、變量、函數(shù)、數(shù)組)連接起來的具有數(shù)值的式子。
基本特征:
1)運算元素都是算術(shù)量;
2)運算符是算術(shù)運算符;
3)表達式的值是一個算術(shù)量(數(shù)值)
(A-B)/C**2+SIN(X+Y)973.8算術(shù)表達式3.8.2算術(shù)表達式的含義和表示方法
3.8算術(shù)表達式算術(shù)表達式書寫時的注意事項:
1)一般除號(/)前后運算元素用括號括起來;
2)乘號(*)不能省略;
3)無大中小括號之分,一律用小括號;
4)對多次乘方需按“先右后左”的原則處理;
5)注意單目運算符(-5,+10,-A)。-A就相當于0-A
如:-A**2相當于0-A**2,也就是-(A**2)
而不是(-A)**2,不要混淆。
6)算術(shù)表達式求值運算的優(yōu)先次序
高
低1)括號;2)函數(shù);3)**;4)*/;5)+-鏈接983.8算術(shù)表達式算術(shù)表達式書寫時的注意事項:
1)一般3.8算術(shù)表達式3.8.3表達式運算中的類型問題
FORTRAN允許不同類型的算術(shù)量之間的算術(shù)運算(整型、實型、雙精度、復型)。如2*3.5
FORTRAN規(guī)定如下:
1)同類型的算術(shù)量之間運算的結(jié)果仍然保持原類
型。特別規(guī)定:兩個整數(shù)相除的商也是整數(shù)。
(1/2的值是0)
2)如果參加運算的兩個算術(shù)量為不同類型,則編譯
系統(tǒng)會自動將它們轉(zhuǎn)換成同一類型然后再進行運
算。規(guī)則是:
將低級類型轉(zhuǎn)換成高級類型
993.8算術(shù)表達式3.8.3表達式運算中的類型問題
F3.8算術(shù)表達式3.8.3表達式運算中的類型問題
四則運算規(guī)律(或乘方運算規(guī)律)整型實型整型整型實型實型實型實型運算量2(基數(shù)類型)運算量1(指數(shù)類型)運算結(jié)果
(乘方運算結(jié)果)1003.8算術(shù)表達式3.8.3表達式運算中的類型問題
四則3.8算術(shù)表達式3.8.3表達式運算中的類型問題
類型的轉(zhuǎn)換是從左而右進行的。在遇到不同類型的算術(shù)量時才進行轉(zhuǎn)換。如下例:
5*6.5是先將5轉(zhuǎn)換為5.0(此時就遇到不同類型的算術(shù)量),再乘以6.5等于32.5。
但注意:
1/4*20.0時,由于1/4兩個是同類型的算術(shù)量,結(jié)果等于0,再0*20.0,結(jié)果為0如:A=5/22.000000B=5/2.02.500000C=5.0/22.500000D=5.0/2.02.500000
I=5.0/22J=5.0/2.021013.8算術(shù)表達式3.8.3表達式運算中的類型問題
類型3.8算術(shù)表達式3.8.3表達式運算中的類型問題1)在FORTRAN中沒有像C中有強制類型轉(zhuǎn)換:
(char)(x+i)將表達式x+i的類型轉(zhuǎn)換為char類型
2)在FORTRAN中也不能數(shù)字與字符混合運算:
1+3.14159+“A”這在c中都是可以的
其結(jié)果是:69.1415861023.8算術(shù)表達式3.8.3表達式運算中的類型問題1)在3.8算術(shù)表達式3.8.4運算的誤差問題
1)整型量的運算是準確的,沒有任何誤差;
2)實型量的運算會出現(xiàn)誤差(實數(shù)有效位數(shù)
的限制)。因此,在書寫表達式時,應盡
量使每一次運算結(jié)果都在有效位數(shù)范圍之
內(nèi),也就是盡量不要使兩個相差很大的數(shù)
值直接相加或相減運算。
同樣:理論上是相等的數(shù),在實數(shù)中不能直接
判斷是否相等。而是使用絕對值之差
|A-B|≤ε作為判斷條件。(sqrt(4.1234567))**2.0-4.1234567不為0GO1033.8算術(shù)表達式3.8.4運算的誤差問題
1)整型量的I=1/3+1/3+1/3I=0A=1/3+1/3+1/3A=0.000000I=1.0/3.0+1.0/3.0+1.0/3.0I=1A=1.0/3.0+1.0/3.0+1.0/3.0A=1.000000理論上:1/3+1/3+1/3=11.0/3.0+1.0/3.0+1.0/3.0=1現(xiàn)在的編譯系統(tǒng)中作了相應的“相等”處理。104I=1/3+1/3+1/3I=0理論分析結(jié)果:Integer::ImaxReal::JmaxImax=1.0/3.0+1.0/3.0+1.0+3.0Jmax=1.0/3.0+1.0/3.0+1.0+3.0Write(*,*)Imax,JmaxEnd105分析結(jié)果:Integer::Imax105賦值語句106賦值語句1063.9賦值語句3.9.1賦值語句:
將一個確定的值賦給一個變量
變量=表達式
1)有三類賦值語句:
2)算術(shù)賦值語句兼有計算和賦值功能;
3)賦值號左邊只能是變量名,不能是表
達式;
4)不能象C語言那樣進行復合賦值、連
續(xù)賦值以及增量運算。算術(shù)賦值語句邏輯賦值語句字符賦值語句鏈接1073.9賦值語句3.9.1賦值語句:
將一個確定的值賦給一3.9賦值語句3.9.2執(zhí)行賦值語句時的類型轉(zhuǎn)換問題
賦值語句中的被賦值的變量和表達式的類型可以相同,也可以不同。規(guī)則如下:
1)兩者類型相同時,直接賦值;
2)兩者類型不相同時,先求表達式的
值,再將該值轉(zhuǎn)換為變量的類型:
I=3.5*2.1將7.35轉(zhuǎn)換為77送I1083.9賦值語句3.9.2執(zhí)行賦值語句時的類型轉(zhuǎn)換問題
3.9賦值語句3.9.2執(zhí)行賦值語句時的類型轉(zhuǎn)換問題
如IMAX=13.7*2.5結(jié)果不是34.25而是34整型實型結(jié)果為整型整型先取整,再賦值,結(jié)果為整先化實,結(jié)果為實型實型結(jié)果為實型變量類型表達式類型1093.9賦值語句3.9.2執(zhí)行賦值語句時的類型轉(zhuǎn)換問題
關(guān)于賦值語句:是賦值不是等號;具有計算功能;具有類型轉(zhuǎn)換功能;左邊一定是變量名,右邊是表達式。輸出語句110關(guān)于賦值語句:是賦值不是等號;輸出語句1103.10簡單的輸出語句3.10.1輸出語句的作用和分類
程序的作用是對輸入的數(shù)據(jù)加工后輸出結(jié)果:
1)顯示
2)打印
對于輸出來說,需要告之系統(tǒng)如下內(nèi)容:
1)輸出那些數(shù)據(jù)?
2)什么格式輸出?
3)輸出到哪個設備上?
FORTRAN語言輸出格式有三類:
1)按用戶指定格式;
2)系統(tǒng)隱含的標準格式;
3)二進制格式(無格式)輸出。1113.10簡單的輸出語句3.10.1輸出語句的作用和分類
程3.10簡單的輸出語句3.10.2表控輸出語句(listdirectedformat):就是系統(tǒng)隱含的輸出格式;系統(tǒng)自動地分別為每個不同類型的數(shù)據(jù)安排所占列數(shù)的表示形式(小數(shù)或指數(shù))。
如:Print*,I,J(I=45,J=128)打印結(jié)果:13列13列
Print*
,A,B18列18列4512813.567000-186.750000實際整型數(shù):21億多---10位實際默認實型數(shù)的小數(shù)位數(shù)為6位1123.10簡單的輸出語句3.10.2表控輸出語句(listIntegera,b
a=45
b=88
Print*,a,b
End113Integera,b
a=45
b=88
Print*3.10簡單的輸出語句3.10.2表控輸出語句
當實型數(shù)據(jù)超過上述格式時,系統(tǒng)自動轉(zhuǎn)換為標準的指數(shù)形式輸出:A=162*1025,B=-11.72*10-13
1.620000E+027-1.172000E-0121)根據(jù)系統(tǒng)不同,指數(shù)的列數(shù)也有不同(6或4列)
2)Print*表示輸出一個空白行;
3)Print*,A,B,C,D,E,I,J,K,L,M等,
系統(tǒng)會在一行打不下時,自動換行打?。?/p>
4)Print*,A,B與Write(*,*)A,B作用相同
在Write(*,*)A,B中,第一個*表示隱含設備輸出,
第二個*表示表控格式輸出,相當于Print*輸入語句1143.10簡單的輸出語句3.10.2表控輸出語句
當實型數(shù)據(jù)Reala,b,c
a=162E25
b=-11.72E-13
c=12.345
Print*,a,b,c
End115Reala,b,c
a=162E25
b=-11.72對于Write輸出:通常寫法:write(*,*)變量名表嚴格寫法:write(unit=*,fmt=*)變量名表116對于Write輸出:通常寫法:write(*,*)變量名直接輸出文本:Print*,“文本內(nèi)容”Write(*,*)“文本內(nèi)容”117直接輸出文本:Print*,“文本內(nèi)容”117輸出帶引號的字符串Write(*,*)“Mynameis“”Peter”””Write(*,*)’Mynameis“Peter”‘End118輸出帶引號的字符串Write(*,*)“Mynameis3.11簡單的輸入語句3.11.1輸入語句的作用和分類
同輸出一樣,輸入也有同樣的三種類型
計算機
內(nèi)存數(shù)據(jù)輸入從外設讀入輸入
Input計算機
內(nèi)存數(shù)據(jù)輸出輸出到外設輸出
Output1193.11簡單的輸入語句3.11.1輸入語句的作用和分類
3.11簡單的輸入語句3.11.2表控輸入語句(也稱自由格式輸入):
不必指定輸入數(shù)據(jù)的格式,只需將數(shù)據(jù)按其合法的形式依次輸入,數(shù)據(jù)之間以逗號或空格相間(PS4和CVF6都一樣)。
*-為表控輸入,從系統(tǒng)隱含指定的輸入設備上讀入,如命令:READ*,I,J,A,B則
輸入:3,10,7.5,-15.8
或:3107.5-15.8
空格個數(shù)不定!
READ(*,*)I,J,A,BREAD*,I,J,A,B1203.11簡單的輸入語句3.11.2表控輸入語句(也稱自由格3.11簡單的輸入語句3.11.2表控輸入語句
注意在FORTRAN77子集中,不接受READ*,I,J,A,B格式(因沒有指定輸入設備),所以在程序中應該寫成:第一個*表示隱含設備輸入(通常是鍵盤)
第二個*表示表控格式輸入.注意以下六點:
一)對READ語句中數(shù)據(jù)的要求:
1)輸入數(shù)據(jù)的個數(shù)不少于READ中變量的個數(shù);
2)輸入數(shù)據(jù)的類型要與READ中變量的類型匹配;READ(*,*)I,J,A,B1213.11簡單的輸入語句3.11.2表控輸入語句
注意在FO3.11簡單的輸入語句對于語句:
READ(*,*)I,J,A,B
a)3,10,7.5,-15.8」
(按語句輸入數(shù)據(jù))
b)3,10」
7.5,-15.8」c)3,10,7.5」-15.8」
如果輸入的數(shù)據(jù)個數(shù)不夠,系統(tǒng)將等待用戶的繼續(xù)輸入,直到輸入完畢。1223.11簡單的輸入語句對于語句:
READ(3.11簡單的輸入語句3.11.2表控輸入語句
二)輸入數(shù)據(jù)的個數(shù)多于變量個數(shù),則多的數(shù)
據(jù)將丟失;
三)每一個READ語句都是從一個新的輸入行
開始讀數(shù)。如:
READ*,I,JREAD*,A,B
READ*,X,Y
輸入:3,10,7.5,-15.8」
70.6,8.5」(此時實際還等待輸入)
此時,變量真實內(nèi)容:I=3,J=10;A=70.6,B=8.5!區(qū)別:Read*,I,J,A,B,X,Y這里的三句讀語句是讀如三個記錄1233.11簡單的輸入語句3.11.2表控輸入語句
二)輸入數(shù)3.11簡單的輸入語句3.11.2表控輸入語句四)在輸入數(shù)據(jù)行中出現(xiàn)“/”表示READ語句輸
入結(jié)束,未賦值的變量不予賦值。五)在一個數(shù)據(jù)的數(shù)字之間不要插入空格,因
為空格是數(shù)據(jù)間的分隔符;六)
變量是整型,輸入是實型,系統(tǒng)報錯;
變量是實型,輸入是整型,系統(tǒng)先將此數(shù)
轉(zhuǎn)換為實數(shù),然后再賦給實型變量。但在CVF6中,系統(tǒng)不報錯,
只是將實數(shù)取整送整型變量1243.11簡單的輸入語句3.11.2表控輸入語句但在CVF6 read(*,*)M,N read(*,*)A,B write(*,*)M,N write(*,*)A,B end輸入:
1.4,44,4.1125 read(*,*)M,N125輸入一部分后,鍵入回車,系統(tǒng)則繼續(xù)等待的輸入,直到所有變量獲得輸入值為止.126輸入一部分后,鍵入回車,系統(tǒng)則繼續(xù)等待的輸入,直到所有變量獲強行結(jié)束輸入127強行結(jié)束輸入127分析:I=123J=456Print*,I,J,KEndImplicitNone
IntegerI,J
I=123J=456Print*,I,J,KEnd128分析:I=123ImplicitNone
IntegerK=0129K=0129參數(shù)語句130參數(shù)語句1303.12參數(shù)語句(PARAMETER)用一個名字來代替一個常量(符號常量)注:PARAMETER是非執(zhí)行語句,放在所有執(zhí)行語句之前。但一般先寫類型說明語句,后寫參數(shù)語句。它不能作為語句標號,也不能出現(xiàn)在Format語句中代替常數(shù)。PARAMETER的類型有:
數(shù)值型、邏輯型、字符型Parameter(PI=3.1415926)
….Read*,RS=PI*R**2
….L=2.0*PI*R
……在C中(1):
#DefinePI=3.1415926在C中(2):
Constfloatpi=3.14159對于F90:Real,parameter::pi=3.14151313.12參數(shù)語句(PARAMETER)用一個名字來代替一個integerA,Bparameter(AB=123.456)A=AB*2B=AB-123print*,A,B,ABend2.也可以一次定義多個符號常量:parameter(AB1=123.456,AB2=95.123)next1.符號常量一旦定義,在程序中不可再次賦
值,只能引用;132integerA,B2.也可以一次定義多個符號常量:ne3.13END、STOP、PAUSE語句END語句的作用:
(1)結(jié)束本程序單位的運行;
(2)作為程序的結(jié)束標志。
注:一個程序單位只有一個END語句;主程序
中的END就是返回到命令狀態(tài),子程序中
的END就是返回主程序(返主)。STOP語句的作用:
停止程序的運行(一個程序單位可有多個STOP語句)
stop[n]如:stop1234輸出信息1234
stop‘a(chǎn)bc’輸出信息abc不超過5個字符
(現(xiàn)在的編譯系統(tǒng)做了修改,已經(jīng)沒有這個限制了)1333.13END、STOP、PAUSE語句END語句的作用:END、STOP、PAUSE
語句STOP語句的舉例:!這是一個求平均數(shù)的程序 Print*,'請輸入三個數(shù):' Read(*,*)x,y,z Aver=(x+y+z)/3.0 Print*,'x=',x,'y=',y,'z=',z Print*,'aver=',aver
stop'程序正常終止!' End134END、STOP、PAUSE
語句STOP語句的舉例:1341351353.13END、STOP、PAUSE語句PAUSE語句的作用:
是暫時停止執(zhí)行(不是結(jié)束運行),系統(tǒng)暫時掛起來,等待操作員輸入操作命令,如設置“斷點”:PAUSE[n]
其中n為輸出信息,與STOP[n]中的n相同;恢復繼續(xù)運行可使用ENTER鍵。1363.13END、STOP、PAUSE語句PAUSE語句的作integerA,Bb=0read*,ab=a+bprint*,a,bpause001read*,ab=a+bprint*,a,bpause002read*,ab=a+bprint*,a,bpause003print*,"程序結(jié)束!"end注意:
只有按任意鍵才能繼續(xù)輸入.也可以:
PAUSE“字符串”程序舉例137integerA,B注意:
只有按任意鍵才能繼續(xù)輸入.也可3.14程序舉例求三角形面積(Exa3_3.for)
已知:A,B,C為三角形的三條邊;
S=(A+B+C)/2則三角形的面積是:
SΔ=(S(S-A)(S-B)(S-C))的開平方輸入五個數(shù),打印出絕對值最大的數(shù)(Exa3_4.for)計算人口增長情況(Exa3_5.for)計算人口增長情況(Exa3_5a.for)計算:速度與距離(Exa3_6.for)1383.14程序舉例求三角形面積(Exa3_3.for)
已求三角形面積已知:A,B,C為三角形的三條邊;S=(A+B+C)/2則三角形的面積是:
SΔ=[S(S-A)(S-B)(S-C)]的開平方值 Programtra_area!注意程序的取名規(guī)則 Read(*,*)a,b,c s=(a+b+c)/2.0 Area=SQRT(s*(s-a)*(s-b)*(s-c))
!Area=((s*(s-a)*(s-b)*(s-c)))**0.5 Write(*,*)'A=',a,'B=',b,'C=',c Write(*,*)'AREA=',area End139求三角形面積已知:A,B,C為三角形的三條邊;S=(A+B+輸入五個數(shù),打印出絕對值最大的數(shù)programMAX_NUMBER Read(*,*)a,b,c,d,eLarge=MAX(abs(a),abs(b),abs(c),abs(d),abs(e))Write(*,*)'絕對值最大的數(shù)是:',largeEnd通過在后章節(jié)的學習我們可以用多種方法來解此題。140輸入五個數(shù),打印出絕對值最大的數(shù)programMAX_NU計算人口:1982的人口數(shù):10.3億,年增長1.5%,求2000年年底人口數(shù):
P=P0(1+R)nProgramPopulation R=0.015 N=2000-1982 P0=10.3E08 P1=P0*(1.0+R)**N Write(*,*)'2000年的人口數(shù):',P1 End141計算人口:1982的人口數(shù):10.3億,年增長1.5%,求2計算人口:求任意年份之間、任意增長率的通用人口數(shù)增長計算程序:
P=P0(1+R)n
ProgramPopulation IntegerYear1,Year2 Read(*,*)R,Year1,Year2,P0 N=Year1-Year2 P1=P0*(1.0+R)**N Write(*,*)Year1,'年的人口數(shù):',P1 End142計算人口:求任意年份之間、任意增長率的通用人口數(shù)增長計算程序計算速度與距離:已知一火車以均勻速度V0行駛,從t=10開始加速運行,加速度為a,問經(jīng)過t=50分鐘后火車的速度和行駛的距離:
速度V=V0+at距離S=V0t+1/2at2ProgramSandV Read(*,*)v0,a v0=v0*1000.0/(60.*60.) a=a*1000.0/3600.0**2!A=m/s2 t1=10.*60. t2=50.*60. t=t2-t1 v=v0+a*t v=int(v*100.0+0.5)/100.0 s=v0*t2+0.5*a*t**2 s=int(s*100.0+0.5)/100.0 Write(*,*)'v=',v,'M/S
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026新疆前海元能織造有限責任公司招聘3人備考考試試題及答案解析
- 2026四川樂山市沐川縣招募見習人員1人備考考試試題及答案解析
- 2026年紅河州事業(yè)單位招聘工作人員(1018人)備考考試試題及答案解析
- 2026四川成都錦江投資發(fā)展集團有限責任公司招聘18人備考題庫及參考答案詳解
- 2026年云南公務員考試備考題庫(8925人)及參考答案詳解一套
- 2026江西吉安市井岡山人力資源服務有限公司招募見習人員4人備考題庫含答案詳解
- 2025廣東廣州市中山大學腫瘤防治中心實驗研究部楊江教授課題組博士后招聘2人備考題庫及答案詳解(奪冠系列)
- 2026天津濱海高新區(qū)管委會招聘應急處置崗雇員11人備考題庫附答案詳解
- 2026四川啟賽微電子有限公司招聘質(zhì)量工程師崗位3人備考題庫及答案詳解參考
- 2026山東淄博市博山區(qū)教育和體育局所屬事業(yè)單位招聘16人備考題庫及參考答案詳解一套
- 跨境藥物輸送監(jiān)管難題-洞察及研究
- 《食品微生物學》課程標準
- 肥胖患者麻醉管理課件
- 多傳感器融合技術(shù)在火災檢測仿真系統(tǒng)中的應用研究
- 公司退貨流程管理制度
- 術(shù)后鎮(zhèn)痛的護理課件
- 《建筑施工常見問題》課件
- 交易賬戶托管協(xié)議書
- 正步走教學課件
- 商砼站合伙投資協(xié)議書6篇
- 2024-2025學年浙江省杭州市余杭區(qū)五年級(上)期末數(shù)學試卷
評論
0/150
提交評論