回 帖 发 新 帖 刷新版面

主题:请大神帮忙修改一下程序。

 输入三角形三条边长ABC,先判断是否构成三角形,若能构成三角形则计算三角形三个角αβγ。编写程序实现之。

 提示:使用FORTRAN 90提供的反余弦标准函数ACOS(x)ACOSD(x)

 

2.问题分析

 

 已知:三角形三条边长:abc,且要求从键盘输入,其数据类型为实型。

 求:三角形三个角度:αβγ,其数据类型为实型。

 三角形边长与角度有确定的函数关系,如图2-2所示。通过下面公式可计算得到三角形三个角度。

 

 

 

 

 

 

 

 


三角形边长必须满足两边之和大于第三边的条件,才能构成三角形,可用逻辑表达式(a+b>c .AND. a+c>b .AND. b+c>a)实现。

反余弦三角函数值可用标准函数ACOS(x)ACOSD(x)计算,ACOS(x)结果为弧度,ACOSD(x)结果为度。

 输入三角形三条边长ABC,先判断是否构成三角形,若能构成三角形则计算三角形三个角αβγ。编写程序实现之。

 提示:使用FORTRAN 90提供的反余弦标准函数ACOS(x)ACOSD(x)

 

2.问题分析

 

 已知:三角形三条边长:abc,且要求从键盘输入,其数据类型为实型。

 求:三角形三个角度:αβγ,其数据类型为实型。

 三角形边长与角度有确定的函数关系,如图2-2所示。通过下面公式可计算得到三角形三个角度。

 

 

 

 

 

 

 

 


三角形边长必须满足两边之和大于第三边的条件,才能构成三角形,可用逻辑表达式(a+b>c .AND. a+c>b .AND. b+c>a)实现。

反余弦三角函数值可用标准函数ACOS(x)ACOSD(x)计算,ACOS(x)结果为弧度,ACOSD(x)结果为度。

program main

IMPLICIT NONE
real(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

回复列表 (共3个回复)

沙发

代码没错误。

板凳

我在粘贴到 编译器中时  可能出现格式失误了。重新敲写,已经好了。另外,您知道,程序运行之后,汉字显示成乱码的原因吗

3 楼

汉字显示成乱码,这个我没办法解释。只能说可能和编译器相关,换一个编译器试试。

我来回复

您尚未登录,请登录后再回复。点此登录或注册