)求一元二次方程ax²+bx+c=0的根,用3个函数分别求判别式大于0、等于0和小于0时的根,并输出结果。主函数中输入系数a、b、c。
时间: 2025-01-05 17:40:03 浏览: 7
在一元二次方程 \( ax^2 + bx + c = 0 \) 中,判别式 \( D = b^2 - 4ac \) 可以帮助我们判断方程解的情况:
1. 当判别式 \( D > 0 \),方程有两个实数根,可以用公式 \( x = \frac{-b \pm \sqrt{D}}{2a} \) 来计算;
2. 当 \( D = 0 \),方程有一个重根(即两个相等的实数根),此时 \( x = -\frac{b}{2a} \);
3. 当 \( D < 0 \),方程无实数根,但有复数根,这在数学上通常表示为 \( x = \frac{-b \pm i\sqrt{|D|}}{2a} \),其中 \( i \) 是虚数单位。
以下是三个函数的示例代码(Python语言):
```python
import cmath
def calculate_real_roots(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
root1 = (-b + cmath.sqrt(discriminant)) / (2 * a)
root2 = (-b - cmath.sqrt(discriminant)) / (2 * a)
return root1, root2
elif discriminant == 0:
return -b / (2 * a)
else:
real_part = -b / (2 * a)
imaginary_part = cmath.sqrt(-discriminant) / (2 * a)
return real_part, complex(real_part, imaginary_part)
def is_greater_than_zero(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant > 0:
print("判别式大于0,方程有两个实数根:", calculate_real_roots(a, b, c))
else:
print("判别式不大于0")
def is_equal_to_zero(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant == 0:
print("判别式等于0,方程有一个重根:", calculate_real_roots(a, b, c))
def is_less_than_zero(a, b, c):
discriminant = b**2 - 4*a*c
if discriminant < 0:
print("判别式小于0,方程有两个共轭复数根:", calculate_real_roots(a, b, c))
# 主函数
if __name__ == "__main__":
a = float(input("请输入a的值:"))
b = float(input("请输入b的值:"))
c = float(input("请输入c的值:"))
is_greater_than_zero(a, b, c)
is_equal_to_zero(a, b, c)
is_less_than_zero(a, b, c)
```
在这个程序中,用户需要输入一元二次方程的系数,然后根据输入的判别式的值,会调用相应的函数来计算和打印根的结果。
阅读全文