FORTRAN上机作业

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

相关文档
最新文档