一元二次方程 ,a是二次项系数,b是一次项系数,c是常数项。编写程序要从键盘输入a、b、c三个数,如果a为0,输出“不是一元二次方程!”,否则求出一元次方程的解。若判别式大于0,有两个不等
时间: 2024-10-06 22:02:38 浏览: 47
一元二次方程的一般形式是 \(ax^2 + bx + c = 0\),其中 \(a\), \(b\), 和 \(c\) 分别是二次项系数、一次项系数和常数项。要编写这样的程序,你需要按照以下步骤:
1. 从用户处获取输入的 a, b, c 的值。
2. 检查 a 是否为零,因为当 a=0 时,方程变为线性方程,不符合题目描述。
3. 计算判别式 \(\Delta = b^2 - 4ac\),用于判断根的情况。
- 如果 \(\Delta > 0\),说明有两个不同的实数根。
- 如果 \(\Delta = 0\),说明有一个重根或两个相等的实数根。
- 如果 \(\Delta < 0\),方程无实数根,有复数根。
4. 根据判别式的值,分别处理求解的情况:
- 对于 \(\Delta > 0\),可以使用公式 \(x = \frac{-b \pm \sqrt{\Delta}}{2a}\) 来计算两个根。
- 对于 \(\Delta = 0\),直接计算单个根 \(x = -\frac{b}{2a}\)。
5. 输出结果。
以下是这个程序的一个基本伪代码框架:
```python
a = float(input("请输入二次项系数 a: "))
if a == 0:
print("这不是一元二次方程!")
else:
b = float(input("请输入一次项系数 b: "))
c = float(input("请输入常数项 c: "))
delta = b**2 - 4*a*c
if delta > 0:
x1 = (-b + sqrt(delta)) / (2 * a)
x2 = (-b - sqrt(delta)) / (2 * a)
print(f"有两个不同的实数根: {x1}, {x2}")
elif delta == 0:
root = -b / (2 * a)
print(f"有一个重根: {root}")
else:
real_part = -b / (2 * a)
imaginary_part = sqrt(-delta) / (2 * a)
print(f"有两个复数根: {real_part} + {imaginary_part}i, {real_part} - {imaginary_part}i")
```
阅读全文