fortran程序案例题汇编(14道)
更新时间:2024-04-05 07:11:01 阅读量: 综合文库 文档下载
- FORTRAN程序推荐度:
- 相关推荐
1.Fibonacci数列定义如下: F1=1 F2=1
Fn=Fn-1+Fn-2 (n>2)
求Fibonacci数列的前30项。 integer f(30),i f(1)=1 f(2)=2 do i=3,30
f(i)=f(i-1)+f(i-2) enddo print*,f end
2.输入10个学生的总分,求每个学生的名次 integer s(10),a(10),i,j do i=1,10 read*,s(i) enddo do i=1,10 a(i)=1 do j=1,10
if(s(i)
1
3.给定一组数,按照从小到大的顺序输出。 integer a(10) integer p do i=1,10 read *,a(i) enddo do j=1,9 p=j
do i=j+1,10
if (a(i)
if (p/=j) then
t=a(p);a(p)=a(j);a(j)=t endif enddo
print *,(a(i),i=1,10) end
2
4.输入若干名学生的学号和三门课程(语数英)的成绩,要求从键盘输入一个学生的学号,能打印出该学生的三门功课成绩和总分。 character*6,dimension(:),allocatable::xue integer,dimension(:,:),allocatable::g integer,dimension(:),allocatable::zong integer i,j,n character*6,xh
print *,\请输入学生的个数\read *,n
allocate(xue(n)) allocate(g(n,3)) allocate(zong(n))
do i=1,n
read *,xue(i),(g(i,j),j=1,3) enddo
do i=1,n zong(i)=0 do j=1,3
zong(i)=zong(i)+g(i,j) enddo enddo
print *,\请输入你要打印的学生的学号\read *,xh
do i=1,n
if(xue(i)==xh)then
print *,(g(i,j),j=1,3),zong(i) exit endif enddo end
3
5.编写一个函数子程序计算所输入两个整数m、n的最大公约数。 integer function gcd(m,n) integer r r=mod(m,n) do while (r/=0) m=n n=r
r=mod(m,n) enddo gcd=n end
integer x,y,gcd read*,x,y
print*,gcd(x,y) end
6.用函数子程序的方法设计一个判断某个数是否是素数的程序,统计100~1000内的素数的个数。
logical function prime(n) logical t t=.true. do i=2,n-1
if(mod(n,i)==0)then t=.false. exit endif enddo prime=t end
integer s logical prime s=0
do i=100,1000 if(prime(i))then s=s+1 endif enddo print*,s end
4
7.设计一个子程序,对于自然数m,n,该函数求m,n的最小公倍数。 integer function gcd(m,n) integer r,t t=m*n
r=mod(m,n) do while (r/=0) m=n n=r
r=mod(m,n) enddo gcd=t/n end
integer x,y,gcd print*,\请输入两个数\read*,x,y
print*,gcd(x,y) end
8.对任意自然数n,设计一个求n的各位数字的立方和的子程序,并调用该子程序求100~999之间的所有水仙花数。 subroutine shu(n,t) integer n,i,a,b,c logical t a=n/100
b=mod(n/10,10) c=mod(n,10)
if(a**3+b**3+c**3==n)then t=.true. else t=.false. endif end
logical t
do i=100,999 call shu(i,t) if(t)then print*,i endif enddo end
5
9.设计一个子例行程序SORT(A,N,K),其中A是一个一维数组,N是A的元素个数,SORT的功能是: 当K=1时,将数组A按升序排列;当K=0时,将数组A按降序排列;当K为其它数值时,数组A保持原序。调用该子程序根据不同输入得出数组不同的输出方式。 subroutine sort(a,n,k) integer a(n) integer k,i select case(k) case (0) do i=1,n-1 do j=1,n-I
if(a(j)>a(j+1)) then t=a(j)
a(j)=a(j+1) a(j+1)=t endif enddo enddo case(1) do i=1,n-1 do j=1,n-I
if(a(j)
a(j)=a(j+1) a(j+1)=t endif enddo enddo end select end
real,dimension(:),allocatable::b integer k,n
print*,\请输入要排序的数据数目\read*,n
allocate(b(n))
print *,\请输入这n个数据\read *,(b(i),i=1,n)
print*,\请输入k的值\read *,k
call sort(b,n,k) print *,(b(i),i=1,n) end
6
10.编写一个判断闰年的程序。调用该过程输出2011~2050之间所有的闰年。 function s(n) integer n logical s
if(mod(n,4)==0.and.mod(n,100)/=0.or.mod(n,400)==0)then s=.true. else s=.false. endif end
logical s
do i=2011,2050 if(s(i))then print*,i endif enddo end
7
11.利用子程序机制实现:输入若干名学生的学号和三门课程的成绩;计算每个学生的总分;输出每个学生的学号、三门课程的成绩和总分。 integer,dimension(:,:),allocatable::grade integer,dimension(:),allocatable::zong integer,dimension(:),allocatable::mingci integer m,n read *,m,n
allocate (grade(m,n)) allocate(zong(m)) allocate(mingci(m)) call input(grade,m,n)
call sum1(grade,m,n,zong) call qiuming(zong,m,mingci)
call output(grade,m,n,zong,mingci) end
subroutine input(grade,m,n) integer grade(m,n) print *,\请输入成绩\do i=1,m
read *,(grade(i,j),j=1,n) enddo end
subroutine sum1(grade,m,n,zong) integer grade(m,n) integer zong(m) zong=0 do i=1,m do j=1,n
zong(i)=zong(i)+grade(i,j) enddo enddo end
subroutine qiuming(zong,m,mingci) integer zong(m) integer mingci(m) mingci=1 do i=1,m do j=1,m
if(zong(i) 8 endif enddo enddo end subroutine output(grade,m,n,zong,mingci) integer grade(m,n) integer zong(m) integer mingci(m) do i=1,m print *,(grade(i,j),j=1,n) ,zong(i),mingci(i) enddo end 12.利用递归函数方法实现:求n!;然后调用该函数求 x2x4x6 cos(x)?1? 2!?4!?6!?... 直到最后一项?10?6.integer recursive function fac(n) result(f) if(n==1) then f=1 else f=n*fac(n-1) endif end parameter(pi=3.1416926) real x,s integer n,f s=1 print*,\请输入角度值\read*,x x=x*pi/180 f=-1 n=2 do while(abs(f*x**n/fac(n)>1e-6) s=s+f*x**n/fac(n) n=n+2 f=-f enddo print*,s end 9 13.输入10名学生的学号、姓名、性别和一门课程的成绩,要求打印出不及格学生的所有信息。 type s character*11 num character*8 name logical sex real grade end type type(s) g(10) integer i,j print*,\请输入学生的基本信息\do i=1,10 read*,g(i).num,g(i).name,g(i).sex,g(i).grade enddo do i=1,10 if(g(i).grade<60)then j=i endif enddo print*,g(j).num,g(j).name,g(j).sex,g(j).grade end 10 14.已知职工工资表记录包括:职工号,姓名,年龄、职称、工资,建立一个10个职工组成的记录表,打印输出职工中工资最高者和最低者所有信息,以及工资总额和平均工资。 type emp character*6 num character*8 name integer age character*16 zhichen real wage endtype type(emp) s(10) integer i real max,min,sum,avg print*,\请输入职工的基本信息\do i=1,10 read *,s(i).num,s(i).name,s(i).age,s(i).zhichen,s(i).wage enddo max=s(1).wage;j=1 do i=2,10 if(max max=s(1).wage;k=1 do i=2,10 if(min>s(i).wage)then min=s(i).wage k=i endif enddo sum=0 do i=1,10 sum=sum+s(i).wage enddo avg=sum/10 print *,\输出最高工资的职工信息\ print *,s(j).num,s(j).name,s(j).age,s(j).zhichen,s(j).wage print *,\输出最低工资的职工信息\ print *,s(k).num,s(k).name,s(k).age,s(k).zhichen,s(k).wage print *,\输出工资总额和平均值\print *,sum,avg end 11 14.已知职工工资表记录包括:职工号,姓名,年龄、职称、工资,建立一个10个职工组成的记录表,打印输出职工中工资最高者和最低者所有信息,以及工资总额和平均工资。 type emp character*6 num character*8 name integer age character*16 zhichen real wage endtype type(emp) s(10) integer i real max,min,sum,avg print*,\请输入职工的基本信息\do i=1,10 read *,s(i).num,s(i).name,s(i).age,s(i).zhichen,s(i).wage enddo max=s(1).wage;j=1 do i=2,10 if(max max=s(1).wage;k=1 do i=2,10 if(min>s(i).wage)then min=s(i).wage k=i endif enddo sum=0 do i=1,10 sum=sum+s(i).wage enddo avg=sum/10 print *,\输出最高工资的职工信息\ print *,s(j).num,s(j).name,s(j).age,s(j).zhichen,s(j).wage print *,\输出最低工资的职工信息\ print *,s(k).num,s(k).name,s(k).age,s(k).zhichen,s(k).wage print *,\输出工资总额和平均值\print *,sum,avg end 11
正在阅读:
fortran程序案例题汇编(14道)04-05
西尔斯怀孕百科书摘10-04
继电保护试题库(高级主管级 试题)03-18
党员干部在2022年巡视整改专题民主生活会个人对照检查材料范文03-23
五病调离制度及消毒记录本11-13
预言家的预言- 初高中语文123资源网 首页中考 高考 作文01-03
湖南省基础教育资源网使用培训资料06-09
- 多层物业服务方案
- (审判实务)习惯法与少数民族地区民间纠纷解决问题(孙 潋)
- 人教版新课标六年级下册语文全册教案
- 词语打卡
- photoshop实习报告
- 钢结构设计原理综合测试2
- 2014年期末练习题
- 高中数学中的逆向思维解题方法探讨
- 名师原创 全国通用2014-2015学年高二寒假作业 政治(一)Word版
- 北航《建筑结构检测鉴定与加固》在线作业三
- XX县卫生监督所工程建设项目可行性研究报告
- 小学四年级观察作文经典评语
- 浅谈110KV变电站电气一次设计-程泉焱(1)
- 安全员考试题库
- 国家电网公司变电运维管理规定(试行)
- 义务教育课程标准稿征求意见提纲
- 教学秘书面试技巧
- 钢结构工程施工组织设计
- 水利工程概论论文
- 09届九年级数学第四次模拟试卷
- 例题
- 汇编
- fortran
- 程序
- 试作试产管理办法
- 情系三农 大学生电子商务三创赛获奖作品
- 对花城广场交通思考 - 图文
- 古敢小学控烟监督员和巡查培训材料
- 格力空调压缩机型号解读
- Abaqus USDFLD使用教程
- 现代教育学复习题库二
- 2018届浙江省金丽衢十二校高三第二次联考英语试题(含答案)
- 2011年普通高中推荐招生考试
- 2013工程系列南宁市高级评委会评审通过人员名单
- IT类系统运维投标文件(含方案)
- 电路分析基础试题库(答案)
- 董氏奇穴及单穴治疗学1
- 投顾培训“速成”教程
- 2018年小学依法治校工作总结
- 概述传统庭院的起源和发展 - 图文
- 南昌市地名管理办法
- 汽车修理厂人员岗位职责和管理制度
- 给simwe论坛新手的一些建议和经验
- java期末考试样卷及说明 要看啊