2) 编程求一元二次方程的根:设计一个类Equation, 通过构造函数输入三个整系数,然后成员函数findRoot()求出方程的根并打印出来。类的建模如下: 其中方程的系数为整数,求出的根可以是实数。
时间: 2024-09-28 12:03:59 浏览: 10
在Python中,我们可以创建一个名为`Equation`的类来解决这个问题。这个类会包含三个私有变量用于存储一元二次方程的系数a、b和c,以及一个公共方法`find_root()`来计算和打印根。下面是一个简单的实现:
```python
class Equation:
def __init__(self, a, b, c): # 构造函数,输入方程系数
self.__a = a
self.__b = b
self.__c = c
def find_root(self): # 成员函数,求解并打印根
discriminant = self.__b**2 - 4 * self.__a * self.__c # 计算判别式
if discriminant >= 0: # 当判别式大于等于0时,有两个实根
root1 = (-self.__b + discriminant**0.5) / (2 * self.__a)
root2 = (-self.__b - discriminant**0.5) / (2 * self.__a)
print(f"方程的两个实数根分别为:{root1:.2f} 和 {root2:.2f}")
elif discriminant == 0: # 当判别式等于0时,有一个重根
root = -self.__b / (2 * self.__a)
print(f"方程有一个实数根:{root:.2f}")
else: # 当判别式小于0时,有两个复根
real_part = -self.__b / (2 * self.__a)
imaginary_part = discriminant**0.5 / (2 * self.__a)
print(f"方程有两个复数根:{real_part:.2f} ± i*{imaginary_part:.2f}")
# 使用示例
equation = Equation(1, -3, 2)
equation.find_root()
```
在这个例子中,我们首先检查了判别式的值来确定根的类型,并分别处理了实根、重根和复数根的情况。