FORTRAN上机作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第一次上机作业:
1-1、编写程序计算3+5
(一)完整程序
integer a,b,s
read*,a,b
s=a+b
print*,'s=',s
end
(二)输入数据
3 5
(三)输出结果
s= 8
1-2、编写1+x+((x^2)/2!)+((x^3)/3!). x=5.0,输出实型与整型(一)完整程序
real x
f=1.0
y=1.0
read*,x
do i=1,3
f=f*x/i
y=y+f
enddo
print*,'y=',y
end
(二)输入数据
5.0
(三)输出结果、
y=39.33334
如果输出是整型:输出结果y=38
1-3. 若c=0, 100, -40 . 求F=(9*c)/5+32 (一)完整程序
integer c,F
read*,c
F=(9*c)/5+32
print*,'F=',F
end
(二)输入数据
0(100或者-40)
(三)输出结果
F= 32(212或者-40)
第二次上机作业
2-1.编写程序,能够对于输入的五个数进行判断,输出绝对值最大值和最小的数。
(一)完整程序
integer x1,x2,x3,x4,x5,m,n
m=x1
n=x1
read*,x1,x2,x3,x4,x5
if(abs(x2)>abs(m)) then
m=x2
elseif(abs(x3)>abs(m)) then
m=x3
elseif(abs(x4)>abs(m)) then
m=x4
elseif(abs(x5)>abs(m)) then
m=x5
elseif(abs(x2) n=x2 elseif(abs(x3) n=x3 elseif(abs(x4) n=x4 elseif(abs(x5) n=x5 endif print*,'绝对值最大的数是',m,'绝对值最小的数是',n end (二)输入数据 50 -90 30 -60 0 (三)输出结果 绝对值最大的数是-90 绝对值最小的数是0 2-2.y=e^(3.14/2*X)+ln(abs((sin)^2x-(sinx)^2)), x=sqrt((1+tan52.25)*3.14/180) 求y. (一)完整程序 real x,y x=sqrt(1+tan(52.25*3.14/180)) y=exp(3.14/2*x)+log(abs(sin(x)*sin(x)-sin(x*x))) print*,'y=',y end (二)输出结果 y=9.353372 2-3.编程判断两位整数M是否为守形数。所谓守形数是指该数本身等于自身平方的低位数。 (一)完整程序 integer x,y,M read*,M y=M*M if(M==mod(y,100)) then print*,M,'是守形数' else print*,M,'不是守形数' endif end (二)输入数据 25 (三)输出结果 25是守形数 第三次上机作业 3-1(66页第6题)求满足如下条件的三位数:它除以9的商等于它的各位数字的平方和。例如224,它除以9的商为24,而22+22+42=24 完整程序: implicit none integer a,b,c,s,h,i,j read*,a,b,c if(a>b)then s=a a=b b=s endif do i=a,b s=i/c j=i h=0 Do while(j>0) h=h+(mod(j,10))**2 j=j/10 enddo if(h==s)then print*,i endif enddo end 运行结果: 100,999,9 132 224 315 453 535 561 635 661 753 805 815 3-2(66页第8题)A的因子之和等于B,B的因子之和等于A,且A≠B,则称A,B为亲密数对,求[2,1000]中的亲密数对 完整程序: implicit none integer a,b,i,j,k,c,h1,h2 read*,a,b if(a>b)then c=a a=b b=c endif do i=a,b h1=0 do j=1,i-1 if(mod(i,j)==0)then h1=h1+j endif enddo do k=i,b h2=0 do c=1,k-1 if(mod(k,c)==0)then h2=h2+c endif enddo if((h1==k).and.(h2==i).and.(i/=k))then print*,i,k endif