编程求解一元二次方程 ,方程中的 系数从键盘输入
时间: 2024-11-22 10:44:20 浏览: 7
当需要编程解决一元二次方程时,通常会遵循以下步骤:
1. **获取用户输入**:首先,从用户那里获取一元二次方程的系数,即a、b和c。这通常是通过`input()`函数在Python中完成,提示用户分别输入每个系数。
```python
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项系数c:"))
```
2. **检查方程的性质**:在一元二次方程ax^2 + bx + c = 0中,需要确认系数a不为零,因为零次多项式不是二次方程。
3. **计算判别式**:使用判别式D = b^2 - 4ac来确定根的情况。如果D > 0,有两个实根;D = 0,有一个重根;D < 0,无实根但有复数根。
4. **求解根**:根据判别式的值,可以使用公式x = [-b ± √(D)] / 2a 来计算具体的根。如果D > 0,需要计算两个根;若D == 0,则只有一个根。
5. **输出结果**:将求得的根打印出来给用户看。
完整示例代码如下:
```python
import math
# 获取用户输入
a = float(input("请输入二次项系数a:"))
b = float(input("请输入一次项系数b:"))
c = float(input("请输入常数项系数c:"))
# 检查是否为二次方程
if a == 0:
print("这不是一个二次方程,请输入非零的a.")
else:
# 计算判别式
D = b**2 - 4*a*c
# 根据判别式类型求解
if D > 0:
root1 = (-b + math.sqrt(D)) / (2 * a)
root2 = (-b - math.sqrt(D)) / (2 * a)
print(f"方程的两个实根分别为 {root1} 和 {root2}.")
elif D == 0:
root = -b / (2 * a)
print(f"方程的唯一实根为 {root}.")
else:
real_part = -b / (2 * a)
imaginary_part = math.sqrt(-D) / (2 * a)
print(f"方程没有实根,但有两个共轭复数根 ({real_part} + i*{imaginary_part}) 和 ({real_part} - i*{imaginary_part}).")
阅读全文