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

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、精品對于FORTR顏初學者。這些例子可作為小練習。1 .例題:計算工資問題。每小時工資為RATE,如果工作超過40小時,加班呢部分工資是正常時間工資的1.5倍。C Payroll with overtime program payroll real rate, hours, pay read (*,*) rate, hours if (hours>40) then pay=40*rate+(hours-40)*1.5*rate elsepay=hours*rateEND IFprint *, "rate=" , rateprint *, "hours=&qu

2、ot; , hours print *, "pay=" ,payend2 .學生成績問題。大于80為A級。大于60小于80為B級。小于60為C級。IF的嵌套。注意空格可以看清楚 else if ,end if,print 的內容.PROGRAM GRADESTUDENTREAD *,GRADEIF (GRADE .GE. 80) THENPRINT *,GRADE, "GRADE=>A"ELSEIF (GRADE.LT.60) THENPRINT*,GRADE, "GRADE=>C"ELSEPRINT*,GRADE, &q

3、uot;GRADE=>B"END IFEND IFEND3 .三個數(shù)按從小到大排序。PROGRAM MAXMINREAL A,B,C,TREAD *,A,B,CIF (A.GT.B) THENT=AA=BB=TELSEEND IFIF (B.GT.C) THENT=BB=CC=TELSEEND IFIF (A.GT.B) THENT=AA=BB=TEND IFPRINT *,A,B,CEND4 .運用EISE IF語句。重做例子2PROGRAM ex2READ (*,*) GRADEIF (GRADE .GE. 80.0) THENPRINT *, GRADE, "=

4、>A"ELSE IF(GRADE .GE. 70.0) THENPRINT *, GRADE, "=>B"ELSE IF(GARDE .GE. 60.0) THENPRINT *, GRADE, "=>C"ELSEPRINT *, GARDE, "=>D"END IFEND3x 6,x 05 .計算y 2x 2x 8,x 0PROGRAM EQUATIONREAD (*,*) XIF (X .GE. 0.0) Y=3*X+6IF (X .LT. 0.0) Y=-X*2+2*X-8PRINT *, &q

5、uot;X=" ,X, "Y=" ,YEND6 .CONTINUE語句。為了使循環(huán)的起止范圍清晰,使用終端語句例:求5!program ex1FACT=1do 10, N=1,5,1#DO 語句標號,循環(huán)不變量=初值,終值,步長FACT=FACT*N10 continueprint *,FACTend求 1 ! +2 ! +3 ! + +N -!READ *,NFACT=1sum=0.0do 10, I=1,N,1FACT=FACT*ISUM=SUM+FACT10 continueprint *,SUMend7.求 EAX=1+X+XA2/2!+X2/3!+XAN

6、/N!READ *,X,Nsum=1TERM=1do 10, I=1,N,1TERM=TERM*X/ISUM=SUM+TERM10 continueprint *,"EXP(" ,X,")" ,SUMend8.打印九九乘法表do 10,I=1,9,1do 20,J=1,IPRINT*,I,"*" ,J,"=" ,I*J20 CONTINUE10 CONTINUEend9.百錢買百雞公雞5元每只。母雞3元每只,小雞1元三只。求100元買一百只雞。INTEGER X,Y,ZDO 10,X=0,100DO 20,Y=0,

7、100DO 30,Z=0,100IF(X+Y+Z .EQ. 100) THENIF(15*X+9*Y+Z .EQ. 300) PRINT *,X,Y,ZEND IF30CONTINUE20 CONTINUE10 CONTINUEEND10.DO循環(huán)用來處理循環(huán)次數(shù)確定的情況比較方便。在處理無法事先知道循環(huán)次數(shù)時,使用當型循環(huán)。(1)DO WHILEDO 標號,WHILE(邏輯表達式)循環(huán)體CONTINUE 標號例 統(tǒng)計若干同學的得分并計算平均值。INTEGER SCORE,COUNTREAD*,SCORESUM=0COUNT=0DO 10, WHILE (SCORE .GT. 0.0)SUM=

8、SUM+SCORECOUNT=COUNT+1READ *,SCORE10 CONTINUEAVER=SUM/COUNTPRINT *,AVEREND11 .輾轉相除法求最大公約數(shù)。如26和6的最大公約數(shù)。先用27除以6 ,余數(shù)是3 ,再用6除以3 , 余數(shù)為0,則3就是最大公名數(shù)。命令 MOD()求余數(shù)。INTEGER M,N,R,TREAD*,M,NIF (M .LT. N) THENT=MM=NN=TEND IFR= MOD (M,N)DO 10, WHILE (R .NE. 0)M=NN=RR= MOD (M,N)10 CONTINUEPRINT *,"zui da gong

9、yue shu" ,NEND12.判斷一個數(shù)是否是素數(shù)。SQRT ()開根號READ *,NMAX= sqrt (real (N)I=2DO 10, WHILE (I .LE. MAX .AND. MOD (N,I) .NE. 0)I=I+110 CONTINUEIF(I .GT. MAX) THENPRINT*,N, "IS A PRIME NUMBER"ELSEPRINT *,N, "IS NOT A PRIME NUMVER"END IFEND13.求100和200之間能被3或7整除的自然數(shù)。I=10010 IF(I .LE. 200)

10、THENIF (MOD (I,3) .EQ. 0 .OR. MOD (I,7) .EQ. 0) THENPRINT *,I, "ABLE"ELSEPRINT *,I, "UNABLE”END IFI=I+1GOTO 10END IFEND14.直到型循環(huán),UNTIL語句實現(xiàn)直到型循環(huán)。格式 “ DO S1,UNTIL(條件)循環(huán)體標號 S1 CONTINUE例14用直到型循環(huán)求5!FORTRAN不支持UNTIL語句。INTEGER I,PRODUCTI=1PRODUCT=1DO 10, UNTIL (I .GT. 5)PRODUCT=PRODUCT*II=I+11

11、0 CONTINUEPRINT *,"5!=" 'PRODUCTENDFORTRAN不支持UNTIL語句。讓我們改成 DO WHILE格式INTEGER I,PRODUCTI=1PRODUCT=1DO 10, WHILE (I .LT. 5)PRODUCT=PRODUCT*II=I+110 CONTINUEPRINT *,"5!=" 'PRODUCTEND-可編輯-15.心花矽 的雷木仙花數(shù)是瘠一土三位數(shù).再各位我宇INTEGER R,I,J,S,T,SUMDO 10, I=100,999,1T=ISUM=0DO 20 ,J=1,3,1R

12、= MOD (T,10)SUM=SUM+R*3T=T/1020 CONTINUEIF (SUM .EQ. I) PRINT *,I,"is a daffodil NUMBER"10 CONTINUEEND2_15.求一元二次方程的根Ax Bx C 0變的類型嫉肺的喇INTttqntision, KJXO-. tLfitleiiREALCXIPI5rgf*海qm KINIXLggbleALOGICALLOGrCALieipiKEian. KilNDrvHnabie)DOUBLE PRECISION A, B, CCOMPLEX X1,X2READ *,A,B,CIF(B*2-

13、4*A*C .GE.0) THENX1= CMPLX (-B+ SQRT(B*2-4*A*C)/(2*A),0.0)X2= CMPLX (-B- SQRT(B*2-4*A*C)/(2*A),0.0)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)END IFPRINT *,X1,X2END16.打印此圖像。CHARACTER *9 LINEDO 10, I=-4,4,1K=1DO 40 J=1, ABS(I),1LINE(K:K尸""K=

14、K+140 CONTINUEDO 20, J=1, 2*(4- ABS(I)+1,1LINE(K:K尸"*"K=K+120 CONTINUEPRINT*,LINEDO 30, J=1,9,1LINE(J:J)=""30CONTINUE10 CONTINUEEND射垠盤一牌的修怦可 同個戳蜴便需一用只弄同 一個甲的星,伸野用中所向窗的量吊際力玷娟元*.而程序中通過設綱語向克前敲/ 例知:INl EHlIt M L m榭十都在內有中占痼一中段立刻存I*病 例4ixn <iE k al. m* z. a5.十 這六f臺即w代賽的尢個存V中無在.匕存中的位

15、道是誨跣物史,sTfflXn17.輸出數(shù)組中的數(shù)值。INTEGER A(1:10)DO 10,I=1,10,1READ *,A(I)10 CONTINUEPRINT *,AEND18.利用DO循環(huán)對數(shù)組進行輸入和輸出。從鍵盤上輸入十個數(shù),按順序逐個放入到A(1)到A(10)中。INTEGER A(1:10)DO 10,1=1,10,1READ *,A(I)10 CONTINUEDO 20,I=1,9,2PRINT *, "A(" ,I,")” ,A(I)20 CONTINUE END19 .雙重循環(huán)將從終端讀入的數(shù)據賦值給W數(shù)組中的各元素。REAL W(1:3,1

16、:2)#表示一個三行兩列的數(shù)組,當前面數(shù)一樣時,可以寫出 W(3,2)DO 10,I=1,3,1DO 20, J=1,2,1READ *,W(I,J)20 CONTINUE10 CONTINUEPRINT *,WEND精品20。輸入10名學生的成績,統(tǒng)計各個分數(shù)段的人數(shù)。INTEGER GRADE(1:10),COUNTER(0:10)READ *,(GRADE(I),I=1,10,1)DO 10, I=1,10,1COUNTER(GRADE(I)/10)=COUNTER(GRADE(I)/10)+110 CONTINUEDO 20,1=0,10,1PRINT *,COUNTER,"=>",I*10,(I+1)*10-120 CONTINUEEND21 .順序查找。一組數(shù)據從第一個開始找,折半查找,

溫馨提示

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

評論

0/150

提交評論