主题:请大神帮忙修改一下程序。
输入三角形三条边长A、B、C,先判断是否构成三角形,若能构成三角形则计算三角形三个角α、β、γ。编写程序实现之。
提示:使用FORTRAN 90提供的反余弦标准函数ACOS(x)或ACOSD(x)。
2.问题分析
已知:三角形三条边长:a、b、c,且要求从键盘输入,其数据类型为实型。
求:三角形三个角度:α、β、γ,其数据类型为实型。
三角形边长与角度有确定的函数关系,如图2-2所示。通过下面公式可计算得到三角形三个角度。
三角形边长必须满足两边之和大于第三边的条件,才能构成三角形,可用逻辑表达式(a+b>c .AND. a+c>b .AND. b+c>a)实现。
反余弦三角函数值可用标准函数ACOS(x)或ACOSD(x)计算,ACOS(x)结果为弧度,ACOSD(x)结果为度。
输入三角形三条边长A、B、C,先判断是否构成三角形,若能构成三角形则计算三角形三个角α、β、γ。编写程序实现之。
提示:使用FORTRAN 90提供的反余弦标准函数ACOS(x)或ACOSD(x)。
2.问题分析
已知:三角形三条边长:a、b、c,且要求从键盘输入,其数据类型为实型。
求:三角形三个角度:α、β、γ,其数据类型为实型。
三角形边长与角度有确定的函数关系,如图2-2所示。通过下面公式可计算得到三角形三个角度。
三角形边长必须满足两边之和大于第三边的条件,才能构成三角形,可用逻辑表达式(a+b>c .AND. a+c>b .AND. b+c>a)实现。
反余弦三角函数值可用标准函数ACOS(x)或ACOSD(x)计算,ACOS(x)结果为弧度,ACOSD(x)结果为度。
program main
IMPLICIT NONEreal(4):: a, b, c, alfa, beta, gama, x, y, z
WRITE(*,*)"请输三角形三条边的值:"
read(*,*) a,b,c
IF (a+b>c.AND.a+c>b.AND.b+c>a)THEN
x = (b**2+c**2-a**2)/(2*b*c)
y = (a**2+c**2-b**2)/(2*a*c)
z = (a**2+b**2-c**2)/(2*a*b)
alfa = ACOSD(x)
beta = ACOSD(y)
gama = ACOSD(z)
write(*,*),"角A=" ,alfa
write(*,*),"角B=" ,beta
write(*,*),"角C=" ,gama
ELSE
write(*,*), "边长错,三角不存在信息"
END IF
END PROGRAM main