FORTRAN經(jīng)典入門程序20例_第1頁
FORTRAN經(jīng)典入門程序20例_第2頁
FORTRAN經(jīng)典入門程序20例_第3頁
FORTRAN經(jīng)典入門程序20例_第4頁
FORTRAN經(jīng)典入門程序20例_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

FORTRAN經(jīng)典入門程序20例FORTRAN經(jīng)典入門程序20例FORTRAN經(jīng)典入門程序20例xxx公司FORTRAN經(jīng)典入門程序20例文件編號:文件日期:修訂次數(shù):第1.0次更改批準審核制定方案設(shè)計,管理制度對于FORTRAN的初學(xué)者。這些例子可作為小練習(xí)。1.例題:計算工資問題。每小時工資為RATE,如果工作超過40小時,加班呢部分工資是正常時間工資的倍。CPayrollwithovertimeprogrampayrollrealrate,hours,payread(*,*)rate,hoursif(hours>40)thenpay=40*rate+(hours-40)**rateelsepay=hours*rateENDIFprint*,"rate=",rateprint*,"hours=",hoursprint*,"pay=",payend2.學(xué)生成績問題。大于80為A級。大于60小于80為B級。小于60為C級。IF的嵌套。注意空格可以看清楚elseif,endif,print的內(nèi)容.PROGRAMGRADESTUDENTREAD*,GRADEIF(GRADE.GE.80)THENPRINT*,GRADE,"GRADE=>A"ELSEIFTHENPRINT*,GRADE,"GRADE=>C"ELSEPRINT*,GRADE,"GRADE=>B"ENDIFENDIFEND3.三個數(shù)按從小到大排序。PROGRAMMAXMINREALA,B,C,TREAD*,A,B,CIFTHENT=AA=BB=TELSEENDIFIFTHENT=BB=CC=TELSEENDIFIFTHENT=AA=BB=TENDIFPRINT*,A,B,CEND4.運用EISEIF語句。重做例子2PROGRAMex2READ(*,*)GRADEIF(GRADE.GE.THENPRINT*,GRADE,"=>A"ELSEIF(GRADE.GE.THENPRINT*,GRADE,"=>B"ELSEIF(GARDE.GE.THENPRINT*,GRADE,"=>C"ELSEPRINT*,GARDE,"=>D"ENDIFEND5.計算PROGRAMEQUATIONREAD(*,*)XIF(X.GE.Y=3*X+6IF(X.LT.Y=-X**2+2*X-8PRINT*,"X=",X,"Y=",YEND語句。為了使循環(huán)的起止范圍清晰,使用終端語句例:求5!programex1FACT=1do10,N=1,5,1##DO語句標號,循環(huán)不變量=初值,終值,步長FACT=FACT*N10continueprint*,FACTend求1!+2!+3!+···+N!READ*,NFACT=1sum=do10,I=1,N,1FACT=FACT*ISUM=SUM+FACT10continueprint*,SUMend7.求E^X=1+X+X^2/2!+X^3/3!+...+X^N/N!READ*,X,Nsum=1TERM=1do10,I=1,N,1TERM=TERM*X/ISUM=SUM+TERM10continueprint*,"EXP(",X,")",SUMend8.打印九九乘法表do10,I=1,9,1do20,J=1,IPRINT*,I,"*",J,"=",I*J20CONTINUE10CONTINUEend9.百錢買百雞公雞5元每只。母雞3元每只,小雞1元三只。求100元買一百只雞。INTEGERX,Y,ZDO10,X=0,100DO20,Y=0,100DO30,Z=0,100IF(X+Y+Z.EQ.100)THENIF(15*X+9*Y+Z.EQ.300)PRINT*,X,Y,ZENDIF30CONTINUE20CONTINUE10CONTINUEEND循環(huán)用來處理循環(huán)次數(shù)確定的情況比較方便。在處理無法事先知道循環(huán)次數(shù)時,使用當(dāng)型循環(huán)。(1)DOWHILEDO標號,WHILE(邏輯表達式)循環(huán)體CONTINUE標號例統(tǒng)計若干同學(xué)的得分并計算平均值。INTEGERSCORE,COUNTREAD*,SCORESUM=0COUNT=0DO10,WHILE(SCORE.GT.SUM=SUM+SCORECOUNT=COUNT+1READ*,SCORE10CONTINUEAVER=SUM/COUNTPRINT*,AVEREND11.輾轉(zhuǎn)相除法求最大公約數(shù)。如26和6的最大公約數(shù)。先用27除以6,余數(shù)是3,再用6除以3,余數(shù)為0,則3就是最大公約數(shù)。命令MOD()求余數(shù)。INTEGERM,N,R,TREAD*,M,NIF(M.LT.N)THENT=MM=NN=TENDIFR=MOD(M,N)DO10,WHILE(R.NE.0)M=NN=RR=MOD(M,N)10CONTINUEPRINT*,"zuidagongyueshu",NEND12.判斷一個數(shù)是否是素數(shù)。SQRT()開根號READ*,NMAX=sqrt(real(N))I=2DO10,WHILE(I.LE.MAX.AND.MOD(N,I).NE.0)I=I+110CONTINUEIF(I.GT.MAX)THENPRINT*,N,"ISAPRIMENUMBER"ELSEPRINT*,N,"ISNOTAPRIMENUMVER"ENDIFEND13.求100和200之間能被3或7整除的自然數(shù)。I=10010IF(I.LE.200)THENIF(MOD(I,3).EQ.0.OR.MOD(I,7).EQ.0)THENPRINT*,I,"ABLE"ELSEPRINT*,I,"UNABLE"ENDIFI=I+1GOTO10ENDIFEND14.直到型循環(huán),UNTIL語句實現(xiàn)直到型循環(huán)。格式“DOS1,UNTIL(條件)循環(huán)體標號S1CONTINUE例14用直到型循環(huán)求5!FORTRAN不支持UNTIL語句。INTEGERI,PRODUCTI=1PRODUCT=1DO10,UNTIL(I.GT.5)PRODUCT=PRODUCT*II=I+110CONTINUEPRINT*,"5!=",PRODUCTENDFORTRAN不支持UNTIL語句。讓我們改成DOWHILE格式。INTEGERI,PRODUCTI=1PRODUCT=1DO10,WHILE(I.LT.5)PRODUCT=PRODUCT*II=I+110CONTINUEPRINT*,"5!=",PRODUCTEND15.INTEGERR,I,J,S,T,SUMDO10,I=100,999,1T=ISUM=0DO20,J=1,3,1R=MOD(T,10)SUM=SUM+R**3T=T/1020CONTINUEIF(SUM.EQ.I)PRINT*,I,"isadaffodilNUMBER"10CONTINUEEND15.求一元二次方程的根。DOUBLEPRECISIONA,B,CCOMPLEXX1,X2READ*,A,B,CIF(B**2-4*A*C.THENX1=CMPLX((-B+SQRT(B**2-4*A*C))/(2*A),X2=CMPLX((-B-SQRT(B**2-4*A*C))/(2*A),ELSEX1=CMPLX((-B/(2*A)),SQRT(-(B**2-4*A*C))/(2*A))X2=CMPLX((-B/(2*A)),-SQRT(-(B**2-4*A*C))/(2*A))ENDIFPRINT*,X1,X2END16.打印此圖像。CHARACTER*9LINEDO10,I=-4,4,1K=1DO40J=1,ABS(I),1LINE(K:K)=""K=K+140CONTINUEDO20,J=1,2*(4-ABS(I))+1,1LINE(K:K)="*"K=K+120CONTINUEPRINT*,LINEDO30,J=1,9,1LINE(J:J)=""30CONTINUE10CONTINUEEND17.輸出數(shù)組中的數(shù)值。INTEGERA(1:10)DO10,I=1,10,1READ*,A(I)10CONTINUEPRINT*,AEND18.利用DO循環(huán)對數(shù)組進行輸入和輸出。從鍵盤上輸入十個數(shù),按順序逐個放入到A(1)到A(10)中。INTEGERA(1:10)DO10,I=1,10,1READ*,A(I)10CONTINUEDO20,I=1,9,2PRINT*,"A(",I,")",A(I)20CONTINUEEND19.雙重循環(huán)將從終端讀入的數(shù)據(jù)賦值給W數(shù)組中的各元素。REALW(1:3,1:2)##表示一個三行兩列的數(shù)組,當(dāng)前面數(shù)一樣時,可以寫出W(3,2)DO10,I=1,3,1DO20,J=1,2,1READ*,W(I,J)20CONTINUE10CONTINUEPRINT*,WEND20。輸入10名學(xué)生的成績,統(tǒng)計各個分數(shù)段的人數(shù)。INTEGERGRADE(1:10),COUNTER(0:10)READ*,(GRADE(I),I=1,10,1)DO10,I=1,10,1COUNTER(GRADE(I)/10)=COUNTER(GRADE(I)/10)+110CONTINUEDO20,I=0,10,1PRINT*,COUNTER(I),"=>",I*10,(I+1)*10-120CONTINUEEND21

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論