source: pyromaths/trunk/fuentes/src/pyromaths/classes/SecondDegre.py @ 423

Last change on this file since 423 was 423, checked in by mabarracus, 4 years ago

add sources from pyromaths 15.10

File size: 1.8 KB
Line 
1# -*- coding: utf-8 -*-
2
3# import random
4# from pyromaths.outils.Arithmetique import factorise, carrerise
5# from math import sqrt
6from pyromaths.outils.decimaux import suppr0  # , suppr0list
7
8class Poly2:
9    """Classe pour les polynômes du second degré."""
10    def __init__(self, a, b, c):
11        if a == 0:
12            print "Erreur de définition ! a doit être différent de 0."
13        self.a = a
14        self.b = b
15        self.c = c
16        self.delta = suppr0(b ** 2 - 4 * a * c)
17        if self.delta > 0:
18            self.signedelta = "strictement positif"
19            self.nbrac = 2
20        elif self.delta < 0:
21            self.signedelta = "strictement négatif"
22            self.nbrac = 0
23        else:
24            self.signedelta = "nul"
25            self.nbrac = 1
26
27    def __add__(self, other):
28        return Poly2(self.a + other.a, self.b + other.b, self.c + other.c)
29
30    def __radd__(self, other):
31        return Poly2(self.a + other.a, self.b + other.b, self.c + other.c)
32
33    def __sub__(self, other):
34        return Poly2(self.a - other.a, self.b - other.b, self.c - other.c)
35
36    def __rsub__(self, other):
37        return Poly2(self.a - other.a, self.b - other.b, self.c - other.c)
38
39    def __str__(self):
40        if self.b <= 0:
41            sep1 = ''
42        else:
43            sep1 = '+'
44        if self.c <= 0:
45            sep2 = ''
46        else:
47            sep2 = '+'
48        if self.a == 1:
49            a1 = ''
50        else:
51            a1 = str(suppr0(self.a))
52        if self.b == 1:
53            b1 = ''
54        else:
55            b1 = str(suppr0(self.b))
56        if self.b == 0:
57            deg1 = ''
58            b1 = ''
59        else:
60            deg1 = 'x'
61        return a1 + 'x^2' + sep1 + b1 + deg1 + sep2 + str(suppr0(self.c))
62
63    def print_signe(self, signe):
64        return str(self) + " " + signe + " 0"
65
Note: See TracBrowser for help on using the repository browser.