1
- import os
1
+ import os
2
2
import sys
3
3
import math
4
4
5
5
6
6
class EquationTwo :
7
- def __init__ (self , a , b , c ):
8
- self .a = a
9
- self .b = b
10
- self .c = c
11
-
12
-
13
- def calculate_delta (self ) -> float :
14
- # delta = b**2-4ac
15
- self .delta = float ((self ._b ** 2 )- 4 * (self ._a )* (self ._c ))
16
- return self .delta
17
-
18
-
19
- def check_delta (self ) -> int :
20
- """ this method return number of answers """
21
- if self .delta == 0 :
22
- return 1
23
- elif self .delta > 0 :
24
- return 2
7
+ def __init__ (self ):
8
+ self .values = {"a" : 0 , "b" : 0 , "c" : 0 , "delta" : 0 , "answer" : 0 }
9
+
10
+ def get_a_b_c (self ):
11
+ """This Method Get a,b,c for user"""
12
+
13
+ def get_float (message : str ) -> int :
14
+ """Get Integer Value From user
15
+ Only Int"""
16
+ while True :
17
+ x = input (message )
18
+ try :
19
+ x = float (x )
20
+ if x >= - 100 and x <= 100 : # −100≤a,b,c≤100
21
+ return x
22
+ else :
23
+ continue
24
+ except ValueError :
25
+ print ("Invalid Value :(\n " )
26
+ continue
27
+
28
+ for i in ["a" , "b" , "c" ]:
29
+ self .values [i ] = get_float (f"Enter { i } :" )
30
+
31
+ def calculateDelta (self ):
32
+ """
33
+ delta = (b**2)-(4*a*c)
34
+ b^2-4ac
35
+ """
36
+ a , b , c = self .values ["a" ], self .values ["b" ], self .values ["c" ]
37
+ if a != 0 and b != 0 :
38
+ self .values ["delta" ] = (b ** 2 ) - (4 * a * c )
25
39
else :
26
- return 0
27
-
28
-
29
- def calculate_answer (self ):
30
- # -b - sqrt(delta) / 2a
31
- # -b + sqrt(delta) / 2a
32
-
33
- return [ ((- (self ._b ) - math .sqrt (self .delta ))/ 2 * self ._a ), (- (self ._b ) + math .sqrt (self .delta ))/ 2 * self ._a ]
34
-
35
-
36
- @property
37
- def a (self ):
38
- return a
39
-
40
-
41
- @a .setter
42
- def set_a (self , value ):
43
- if not (value != 0 ):
44
40
print ("IMPOSSIBLE" )
45
- sys .exit (1 )
46
- self ._a = value
47
-
48
-
49
-
50
- @property
51
- def b (self ):
52
- return b
53
-
54
-
55
-
56
- @b .setter
57
- def set_b (self , value ):
58
- if not (value != 0 ):
41
+ sys .exit (0 )
42
+
43
+ def print_answer (self ):
44
+ a , b , c , delta = self .values ["a" ], self .values ["b" ], self .values ["c" ], self .values ["delta" ]
45
+ print (f"Delta: { delta } " )
46
+ if delta > 0 :
47
+ """
48
+ -(b)+(delta)**0.5/2a
49
+ -(b)-(delta)**0.5/2a
50
+ """
51
+ x1 = (- b + (delta ** 0.5 )) / (2 * a )
52
+ x2 = (- b - (delta ** 0.5 )) / (2 * a )
53
+
54
+ print (f"X1: { round (x1 , 3 )} " )
55
+ print (f"X2: { round (x2 , 3 )} " )
56
+ sys .exit (0 )
57
+ elif delta == 0 :
58
+ x = - b / (2 * a )
59
+ print (f"X: { round (x , 3 )} " )
60
+ sys .exit (0 )
61
+ else :
59
62
print ("IMPOSSIBLE" )
60
- sys .exit (1 )
61
- self ._b = value
62
-
63
-
64
- @property
65
- def c (self ):
66
- return c
67
-
68
- @a .setter
69
- def set_a_value (self , value ):
70
- if not (a != 0 ):
71
- raise ValueError ("IMPOSIBLE a cannot be 0" )
72
-
63
+ sys .exit (0 )
73
64
74
65
75
66
def main ():
76
- EquationTwo (a = 0 , b = 0 , c = 0 )
67
+ e = EquationTwo ()
68
+ e .get_a_b_c ()
69
+ e .calculateDelta ()
70
+ e .print_answer ()
77
71
78
72
79
73
if __name__ == "__main__" :
80
- main ()
74
+ main ()
0 commit comments