1- import os
1+ import os
22import sys
33import math
44
55
66class 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 )
2539 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 ):
4440 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 :
5962 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 )
7364
7465
7566def 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 ()
7771
7872
7973if __name__ == "__main__" :
80- main ()
74+ main ()
0 commit comments