資源描述:
《西安交通大學(xué)fortran習(xí)題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫(kù)。
1、1二維數(shù)組的輸入與輸出programmainimplicitnoneintegeriJintegerA(2,2)喏為data((A(j,i),i=1,2),j=1,2)/1,2,3,4/print*,Aend!結(jié)果為1324A(2J)=3A(2,2)=4A(12)=3A(2,2)=4實(shí)際為A(1J)=1A(l,2)=2喏為data((A(i,j),i=l,2)j=l,2)/l,2,3,4/print*,Aend!結(jié)果為1234實(shí)際為A(1J)=1A(2J)=2programmainimplicitnoneintegerijintegerA(2,2)data((
2、A(i,j),i=l,2),j=l,2)/l,2,3,4/write(叮(13,13門Aend!結(jié)果為1234翻卡片!用數(shù)組編寫下面的題目:假定有一疊卡片,卡片號(hào)為1到52,并且所有卡片的正面朝上。從卡片號(hào)2開始,把凡是偶數(shù)的卡片都翻成正面朝下。再?gòu)?號(hào)卡片開始,把凡是卡片號(hào)為3的倍數(shù)的卡片嘟翻一個(gè)面(即把正面朝上的翻成正面朝下,正面朝下的翻成正面朝上)。下一步從4號(hào)卡片開始,把凡是卡片號(hào)為4的倍數(shù)的卡片都翻一個(gè)面,依次類推,直到從52號(hào)卡片開始,把凡是卡號(hào)為52的倍數(shù)的卡片翻一個(gè)面。寫出一個(gè)程序,來測(cè)定全過程完成后,哪些卡片的面朝上,共有幾張。答案:正面朝上
3、的卡片是第1、4、9、16、25、36、49張,共7張。programmainimplicitnoneintegers(52)integeri,js=0doi=2,52??尸1dowhile(j<=52)S(j)=S①+1???J=J+1enddoenddodoi=l,52if(mod(s⑴,2)==0)thenwrite(*,*)iendifenddoendprogrammain〃用c語言寫#includeintmain(){ints[52];inti,j;for(i=0;i<52;i++)s[i]=0;for(i=l;i<=51;i++)
4、{for(j=i;j<=51;j+二i+1)//也可以寫作j=j+i+1,不能寫作j=j+i+1{s[j]二s[j]+l;}}斐波拉契!使用遞歸時(shí)result()不能與函數(shù)名相同PROGRAMMAINIMPLICITNONEINTEGERn,i,sumrcad*,nif(n<0)THENPRINT*,"出錯(cuò)”ENDIFwrite(*,*)'f(n)=,,f(n)doi=l,nsum=sum+f(n)enddowrite(*,*),sum=sumcontainsrecursivefunctionf(n)result(g)integergjif(n==0)the
5、ng=0elseif(n==l.or.n==2)theng=lelseg=f(n-l)+f(n-2)endifendfunctionEndprogram分解質(zhì)因數(shù)!分解質(zhì)因數(shù)programmainimplicitnoneintegera,c,i,bprint*,"請(qǐng)輸入一個(gè)大于二的整數(shù)"read*,aprint*,唄!j它的所有質(zhì)因子為dowhile(a/=l)i=lb=ldowhile(b/=0)i=i+lb=mod(aj)c=ienddoa=a/cprint*,cenddoendprogram哥德巴赫猜想!屏幕上不能顯示500,所以不能將結(jié)果完全顯示,需要
6、將結(jié)果輸入文件FUNCTIONf(i)IMPLICITNONEINTEGERi,f,hf=0if(i>l)lhendoh=2,i-lif(mod(i,h)==0)thenf=f+lendifenddoendifendfunctionprogrammainimplicitnoneinteger(4)i,j,n,fintegersdon=4,600,2s=0j=odoi=hn/2-lj=n-iif(f(i)==O.and7、fenddoendprogram黃金值法解方程!將中值法中取中點(diǎn)的值改為取黃金點(diǎn)的值,理論上可以提髙效率modulegolden_sectionimplicitnonereala,b,ccontainssubroutinesubl(abc)reala,b,c,ycc=(a*0.618+b)/1.618yc=f(c)dowhile(abs(yc)>0.00001)if(yc*f(a)8、4.0*x+3endfunctione