求方程ax^2+bx+c=0的根,用3个函数分别求当b^2-4ac大于0、等于0和小于0时的根,并输出结果。从主函数输入a, b, c的值。
时间: 2024-12-24 20:40:06 浏览: 10
为了解决二次方程 \( ax^2 + bx + c = 0 \) 的根,我们可以使用三个不同的函数来处理三种情况:
1. 当判别式 \( D = b^2 -b \pm \sqrt{D}}{2a} \) 来计算。这个函数会返回一个包含两个解的元组。
```python
def quadratic_roots_positive Discriminant(b, a, c):
import math
if Discriminant > 0:
root1 = (-b + math.sqrt(Discriminant)) / (2 * a)
root2 = (-b - math.sqrt(Discriminant)) / (2 * a)
return (root1, root2)
```
2. 如果判别式等于0(即方程有一个实数解),我们只需计算一次根,因为根是相同的。
```python
def quadratic_roots_zero(Discriminant, a, c):
if Discriminant == 0:
root = -b / (2 * a)
return (root,)
```
3. 当判别式小于0时,意味着方程无实数解,但有两个复数解。在这种情况下,我们仍然可以用公式表示,但通常程序不会直接显示复数。这里仅作为理论描述:
```python
def quadratic_roots_negative(Discriminant, a, c):
if Discriminant < 0:
real_part = -b / (2 * a)
imaginary_part = math.sqrt(-Discriminant) / (2 * a)
return (real_part, imaginary_part)
```
在主函数中,用户需要输入系数a、b和c,然后调用相应函数并打印结果:
```python
def main():
a = float(input("请输入a的值: "))
b = float(input("请输入b的值: "))
c = float(input("请输入c的值: "))
discriminant = b**2 - 4*a*c
if discriminant > 0:
roots = quadratic_roots_positive(discriminant, a, c)
elif discriminant == 0:
roots = quadratic_roots_zero(discriminant, a, c)
else:
roots = quadratic_roots_negative(discriminant, a, c)
print(f"当b²-4ac={discriminant:.2f}时,方程的根为:", roots)
#
阅读全文