Fortran入门.03.计算续篇 - 北方连萌

Fortran入门.03.计算续篇

指定格式的输入

read(*,'(5f10.5)')a,b,c,d,e
! 5表示读取5个数
! f表示实数型
! 10表示全部10位含小数点和空格
! .5表示小数点以下有5位

指定格式的输出

write(*,'(1x,2f5.3)')x1,x2
! 1x表示在正下一行显示

其他表示法

(1)

program projection
implicit none
integer::a
integer::b
real::c
read(*,'(2i10)')a,b
! 2个数,整数,以10位处理
c=a/b
write(*,'(1x,1f10.5)')c
end program

效果:

效果

(2)

program projection
implicit none
real::a,b,c
read(*,'(2f5.2)')a,b
c=a/b
write(*,'(1x,1e10.5)')c
end program

效果:

效果

(3)

program projection
implicit none
real::a,b,c
read(*,'(2f5.2)')a,b
c=a/b
write(*,'(1x,1e10.5)')c
end program

效果:

效果

(4)

program projection
implicit none
real::a,b,c
read(*,'(2f5.2)')a,b
c=a/b
write(*,'(1x,1g10.5)')c
end program

效果:

效果

计算 (指定格式)

竖式计算4:23:56~15:9:32经过的时间长度

将时分秒统一以秒计算后再化回时分秒, 全部量指定为整数处理即可

program time_calculation
implicit none
integer::H1,M1,S1,K1
integer::H2,M2,S2,K2
integer::H3,M3,S3,K3,MM
  read(*,*)H1,M1,S1
  read(*,*)H2,M2,S2
  K1=3600*H1+60*M1+S1
  K2=3600*H2+60*M2+S2
  K3=K2-K1
  H3=K3/3600
  MM=K3-3600*H3
  M3=MM/60
  S3=MM-60*M3
  write(*,601)H2,'时',M2,'分',S2,'秒'  &
             ,H1,'时',M1,'分',S1,'秒(-'&
                ,'--------------------'&
             ,H3,'小时',M3,'分',S3,'秒'
  601 format(          &
     '',i2,a,i2,a,i2,a/&
     '',i2,a,i2,a,i2,a/&
     '',a/             &
     '',i2,a,i2,a,i2,a)
  stop  
end program
15时 9分32秒
 4时23分56秒(-
--------------------
10小时45分36秒

含过程计算等腰三角形面积

注意角度制换成弧度制再代入sin函数中

program area_calculation
implicit none
real::a,d,r,s
  write(*,'(a)')'输入腰长a(cm),角度d(°)'&
               ,'并以科学计数法表示结果'
  read(*,*)a,d
  r=3.141592654*(d/180.0)
  ! 角度转弧度
  s=1.0/2.0*sin(r)*(a**2)
  write(*,'(a)')'s=1/2·sin(d°)·a^2'
  write(*,154)s,'(cm^2)=1/2·sin(',d,')°·(',a,')^2'
  154 format('',e9.3,a,e9.3,a,e9.3,a)
  ! 格式指定
  stop
end program
输入腰长a(cm),角度d(°)
并以科学计数法表示结果
2612,491
s=1/2·sin(d°)·a^2
0.257E+07(cm^2)=1/2·sin(0.491E+03)°·(0.261E+04)^2

添加新评论

电子邮件地址不会被公开,评论内容可能需要管理员审核后显示。