今天,我开始使用Fortran编码方程式和代数表达式(我在Debian(Parrot-home OS)和Geany中使用gfortran)。
问题是,我以与在互联网上看到的模式相同的方式(或相等的方式)进行编码,而x'和x''的根却只有错误的含义。
program equacao2grau
real delta, a, b, c, x, x2
complex sqrt
print*, "This program calc 2º equations"
print*, "Give the values 'A', 'B'e 'C'"
read*, a !Getting values
read*, b ! for
read*, c !resolution
if (a /= 0) then !if 'a' be different of 0
delta = b**2 - 4*a !do delta
end if
print*, delta = b**2 - 4*a*c
if (a .EQ. 0) then
stop
end if
if (delta .EQ. 0) then
print*, "The value is", (-b / 2*a)
stop
end if
if (delta .GT. 0) then
print*, "The roots are", -b + sqrt(delta) / 2*a
print*, "e", -b - sqrt(delta) / 2*a
stop
end if
end
我知道,这是不完整的,但是我很沮丧,没有找到任何正确的结果。
我研究过的东西
答案 0 :(得分:1)
您在表达式中缺少方括号。
-b + sqrt(delta) / 2*a
应该是:
(-b + sqrt(delta)) / (2*a)
其他根系也一样。
编辑
而且,正如@albert所指出的,您在delta公式中省略了c
。
此外,正如@IanBush所说,必须删除complex sqrt
的声明。
并始终使用implicit none
。