7-2 设计一元二次方程求解类(高教社,《Python编程基础及应用》习题9-4)——python

发布时间:2023年12月27日

设计一个类Root来计算ax2+bx+c=0的根。该类包括:a、b、c共3个属性表示方程的3个系数,getDiscriminant()方法返回b2-4ac, getRoot1()和getRoot2()返回方程的两个根。

其中,getRoot1()返回的根对应:

x1.png


getRoot2()返回的根对应:

x2.png

类接口定义:

 

class Root: def __init__(self,a,b,c): ...

裁判测试程序样例:

 

a=float(input()) #请输入二次项系数 b=float(input()) #请输入一次项系数 c=float(input()) #请输入常数项系数 root=Root(a,b,c) if root.getDiscriminant()>0: print("{:.2f}".format(root.getRoot1())) print("{:.2f}".format(root.getRoot2())) elif root.getDiscriminant()==0: print("{:.2f}".format(root.getRoot1())) else: print("No Root!")

输入样例:

2.1
10.2
3.0

输出样例:

-0.31
-4.54
import math  
  
class Root:  
    def __init__(self, a, b, c):  
        self.a = a  
        self.b = b  
        self.c = c  
  
    def getDiscriminant(self):  
        return self.b ** 2 - 4 * self.a * self.c  
  
    def getRoot1(self):  
        if self.getDiscriminant() < 0:  
            return "No Root!"  
        else:  
            root1 = (-self.b + math.sqrt(self.getDiscriminant())) / (2 * self.a)  
            return root1  
  
    def getRoot2(self):  
        if self.getDiscriminant() < 0:  
            return "No Root!"  
        else:  
            root2 = (-self.b - math.sqrt(self.getDiscriminant())) / (2 * self.a)  
            return root2

?

文章来源:https://blog.csdn.net/qq_64037242/article/details/135239170
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。