西安交通大学fortran习题.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《西安交通大学fortran习题.doc》由会员分享,可在线阅读,更多相关《西安交通大学fortran习题.doc(12页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精品文档,仅供学习与交流,如有侵权请联系网站删除1 二维数组的输入与输出program mainimplicit noneinteger i,jinteger A(2,2)!若为data(A(j,i),i=1,2),j=1,2)/1,2,3,4/print*,Aend !结果为 1 3 2 4实际为A(1,1)=1 A(1,2)=2 A(2,1)=3 A(2,2)=4!若为data(A(i,j),i=1,2),j=1,2)/1,2,3,4/print*,Aend !结果为 1 2 3 4实际为A(1,1)=1 A(2,1)=2 A(1,2)=3 A(2,2)=4program mainimpl
2、icit noneinteger i,jinteger A(2,2)data(A(i,j),i=1,2),j=1,2)/1,2,3,4/write(*,(I3,I3)Aend !结果为 1 2 3 4翻卡片!用数组编写下面的题目:假定有一叠卡片,卡片号为1到52,并且所有卡片的正面朝上。从卡片号2开始,把凡是偶数的卡片都翻成正面朝下。再从3号卡片开始,把凡是卡片号为3的倍数的卡片都翻一个面(即把正面朝上的翻成正面朝下,正面朝下的翻成正面朝上)。下一步从4号卡片开始,把凡是卡片号为4的倍数的卡片都翻一个面,依次类推,直到从52号卡片开始,把凡是卡号为52的倍数的卡片翻一个面。写出一个程序,来测定
3、全过程完成后,哪些卡片的面朝上,共有几张。答案:正面朝上的卡片是第1、4、9、16、25、36、49张,共7张。program mainimplicit none integer s(52)integer i,js=0do i=2,52j=ido while(j=52)s(j)=s(j)+1j=j+iend doend dodo i=1,52if(mod(s(i),2)=0)thenwrite(*,*)iend ifend doend program main/用C语言写#includeint main()int s52;int i,j;for(i=0;i52;i+)si=0;for(i=1;
4、i=51;i+)for(j=i;j=51;j+=i+1)/ 也可以写作j=j+i+1,不能写作j=j+i+1sj=sj+1;斐波拉契!使用递归时result()不能与函数名相同PROGRAM MAINIMPLICIT NONEINTEGER n,i,sumread*,nif(n1)thendo h=2,i-1if(mod(i,h)=0)thenf=f+1endifend doendifend functionprogram mainimplicit noneinteger(4) i,j,n,finteger sdo n=4,600,2s=0j=0do i=1,n/2-1j=n-iif(f(i)
5、=0.and.f(j)=0)thens=s+1end ifend doif(s=0)thenprint*,n,不满足猜想elseprint*,n,send ifend doend program 黄金值法解方程!将中值法中取中点的值改为取黄金点的值,理论上可以提高效率module golden_sectionimplicit nonereal a,b,ccontainssubroutine sub1(a,b,c)real a,b,c,ycc=(a*0.618+b)/1.618yc=f(c)do while(abs(yc)0.00001)if(yc*f(a)0)print*,f(a)=,f(a)
6、;f(b)=,f(b);请重新输入下界aread*,aprint*,请重新输入解的下界bread*,bend docall sub1(a,b,c)end ifprint*,cend回文输出program mainimplicit noneinteger i,jinteger a(5),b(5)data a /1,2,8,2,10/data b /2,3,4,5,6/do i=1,5 do j=1,5 b(j)=b(j)-1 if(b(j)1)then b(j)=b(j)+5 end if end doprint*,a(b(1:5)!实践证明这是正确的输出方法end doend! forall语
7、句中不能使用if语句,但可以用where语句,注意()中的内容变化但本题从逻辑上就应该先做完forall,再做where,故不必嵌套program mainimplicit noneinteger i,jinteger a(6),b(6)DATA a /1,4,9,16,25,36/data b /2,3,4,5,6,7/do i=1,6forall(j=1:6)b(j)=b(j)-1end forallwhere(b=0) !可以写为where(b(:)=0) b(:)=b(:)+6 end whereb=b+6end whereprint*,a(b(1:6)!实践证明这是正确的输出方法en
8、d do回文数据若干相邻想和并比较大小!1.圆盘上有如图1(1)所示的20个数。请找出哪四个相邻的数之和为最大。请指出他们的位置和数值。如果是1(2)图,又是哪四个相邻的数?program mainimplicit noneinteger a(20),b(23),c(20)integer i,j,d,edata a /20,21,8,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5/data b /1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,1,2,3/do i=1,20c(i)=a(b(i)+a(b
9、(i+1)+a(b(i+2)+a(b(i+3)end doe=1do i=1,19 if(c(1)c(i+1)then d=c(1) c(1)=c(i+1) c(i+1)=d e=i+1 end ifend doprint*,c(1)write(*,*)(a(b(i),i=e,e+3)end /用C语言写,注意C的数组从0开始计数,所有的i变量减一;嵌套数组仍然有效#includeint main()int a20=20,21,8,4,13,6,10,15,2,17,3,19,7,16,8,11,14,9,12,5;int b23=0,1,2,3,4,5,6,7,8,9,10,11,12,13
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安交通大学 fortran 习题
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内