diff --git a/.idea/misc.xml b/.idea/misc.xml index a2e120d..cddc448 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,4 +1,4 @@ - + \ No newline at end of file diff --git a/.idea/projekttage.iml b/.idea/projekttage.iml index 6711606..ca6e323 100644 --- a/.idea/projekttage.iml +++ b/.idea/projekttage.iml @@ -2,7 +2,7 @@ - + diff --git a/Formeln.py b/Formeln.py index 001d632..89ce97e 100644 --- a/Formeln.py +++ b/Formeln.py @@ -3,31 +3,31 @@ import Klassen as k konstante_eins = k.Groesse(None, None, True, 1) Formeln = [k.Formel('Kraftformel', "F=m*a", i=k.Groesse('F', 'N', False), a=k.Groesse('m', 'kg', False), - b=k.Groesse('a', 'm/s²', False), c=konstante_eins, z=konstante_eins, + b=k.Groesse('a', 'm/s', False), c=konstante_eins, z=konstante_eins, y=konstante_eins, x=konstante_eins), - k.Formel('Gleichm. beschl. Bew.', i=k.Groesse('s', 'm', False), a=k.Groesse(None, None, True, 0.5), - b=('a', 'm/s^2', False), c=k.Groesse('t', 's', False), z=konstante_eins, x=konstante_eins, + k.Formel('Gleichm. beschl. Bew.',"s=0.5*a*t^2", i=k.Groesse('s', 'm', False), a=k.Groesse(None, None, True, 0.5), + b=k.Groesse('a', 'm/s^2', False), c=k.Groesse('t', 's', False), z=konstante_eins, x=konstante_eins, y=k.Groesse(None, None, True, 2)), - k.Formel('Gewichtskraft', i=k.Groesse('Fg', 'N',False), a=k.Groesse(None,None,True,9.81),b=('h','m',False), + k.Formel('Gewichtskraft',"Fg=9,81*h", i=k.Groesse('Fg', 'N',False), a=k.Groesse(None,None,True,9.81),b=k.Groesse('h','m',False), c=konstante_eins, z=konstante_eins,y=konstante_eins,x=konstante_eins), - k.Formel('Spannenergie','o,5*D*s^2', i=k.Groesse('Espann','J', False), a=k.Groesse(None, None, True, 0.5), + k.Formel('Spannenergie',"Espann=0,5*D*s^2", i=k.Groesse('Espann','J', False), a=k.Groesse(None, None, True, 0.5), b=k.Groesse('D', 'N/m', False), c=k.Groesse('s', 'm', False), x=konstante_eins, y=konstante_eins, z=k.Groesse(None, None, True, 2)), - k.Formel('Potentielle Energie', i=k.Groesse('Epot','J',False),a=k.Groesse('m','kg', False), + k.Formel('Potentielle Energie',"Epot=m*9.81*h", i=k.Groesse('Epot','J',False),a=k.Groesse('m','kg', False), b=k.Groesse(None, None, True, 9.81), c=k.Groesse('h','m',False), z=konstante_eins, y=konstante_eins,x=konstante_eins), - k.Formel('Kinetische Energie',i=k.Groesse('Ekin','J', False), a=k.Groesse(None, None, True, 0.5), - b=('m', 'kg', False), c=('v', 'm/s', False), z=konstante_eins, x=konstante_eins, + k.Formel('Kinetische Energie',"Ekin=0,5*m*v^2",i=k.Groesse('Ekin','J', False), a=k.Groesse(None, None, True, 0.5), + b=k.Groesse('m', 'kg', False), c=k.Groesse('v', 'm/s', False), z=konstante_eins, x=konstante_eins, y=k.Groesse(None, None, True, 2)), - k.Formel('Elektrische Leistung', i=k.Groesse('P', 'W', False), a=k.Groesse('U', 'V', False), + k.Formel('Elektrische Leistung',"P=U*I", i=k.Groesse('P', 'W', False), a=k.Groesse('U', 'V', False), b=k.Groesse('I','A', False), c=konstante_eins, z=konstante_eins, x=konstante_eins, y=konstante_eins), - k.Formel("Geschwindigkeit", i=k.Groesse ('v', 'm/s',False), a=k.Groesse('s', 'm', False), + k.Formel("Geschwindigkeit",'v=s/t', i=k.Groesse ('v', 'm/s',False), a=k.Groesse('s', 'm', False), b=k.Groesse ('t','s', False), z= konstante_eins, y= konstante_eins, x=k.Groesse(None,None,True,-1)), - k.Formel('Wiederstand', i=k.Groesse('R', 'Ohm', False), a=k.Groesse('U', 'V', False), + k.Formel('Wiederstand',"R=U/I", i=k.Groesse('R', 'Ohm', False), a=k.Groesse('U', 'V', False), b=k.Groesse('I', 'A', False), c=konstante_eins, z=konstante_eins, y=k.Groesse(None, None, True, -1), x=konstante_eins), - k.Formel('Impuls', i=k.Groesse('p', 'N*s', False), a=k.Groesse('m', 'kg', False), + k.Formel('Impuls',"p=m*v", i=k.Groesse('p', 'N*s', False), a=k.Groesse('m', 'kg', False), b=k.Groesse('v', 'm/s', False), c=konstante_eins, z=konstante_eins, y=konstante_eins, x=konstante_eins) ] @@ -37,4 +37,4 @@ def looper(geg, ges): for formel in Formeln: temp_is_solvable = formel.is_solvable(geg, ges) if temp_is_solvable[0]: - formel.solve(temp_is_solvable[1], [geg, ges]) \ No newline at end of file + return formel.solve(temp_is_solvable[1], [geg, ges]) \ No newline at end of file diff --git a/Klassen.py b/Klassen.py index 239b2fe..89e0d90 100644 --- a/Klassen.py +++ b/Klassen.py @@ -36,7 +36,7 @@ class Formel: return [((self.formel.b**self.formel.y) * (self.formel.c**self.formel.x) + self.formel.d * self.formel.e *self.formel.f + self.formel.g * self.formel.i)**1/self.formel.z, self.get_dicts()] def solve_to_b(self): - return [((self.formel.a**self.formel.z) * (self.formel.c**self.formel.x) +self.formel.d *self.formel.e *self.formel.f + self.formel.g)**1/self.formel.y, self.get_dicts()] + return [((self.formel.a.wert**self.formel.z.wert) * (self.formel.c.wert**self.formel.x.wert) +self.formel.d.wert *self.formel.e.wert *self.formel.f.wert + self.formel.g.wert)**1/self.formel.y.wert, self.get_dicts()] def solve_to_c(self): return [((self.formel.a**self.formel.z) * (self.formel.b**self.formel.y) + self.formel.d *self.formel.e *self.formel.f +self.formel.g * self.formel.i)**1/self.formel.x, self.get_dicts()] @@ -99,31 +99,43 @@ class Formel: def is_solvable(self, geg, ges): temp_liste = deepcopy(self.liste) for geg_element in geg: - for liste_element in temp_liste: + for i, liste_element in enumerate(temp_liste): if geg_element == liste_element.formelsymbol: - del() - pass - if len(temp_liste) == 1 and ges[0] == temp_liste[0]: # has to be changed accordingly + temp_liste.pop(i) + if len(temp_liste) == 1 and list(ges.keys())[0] == temp_liste[0].formelsymbol: return [True, temp_liste[0]] return [False, None] def solve(self, ges, dicts): temp_dicts = dicts temp_dicts.append(self) + ret = None self.solver.set_dicts(temp_dicts) if 'i' == ges.equals_var: - self.solver.solve_to_i() + ret = self.solver.solve_to_i() elif 'e' == ges.equals_var: - self.solver.solve_to_e() + ret = self.solver.solve_to_e() elif 'c' == ges.equals_var: - self.solver.solve_to_c() + ret = self.solver.solve_to_c() elif 'b' == ges.equals_var: - self.solver.solve_to_b() + ret = self.solver.solve_to_b() elif 'a' == ges.equals_var: - self.solver.solve_to_a() + ret = self.solver.solve_to_a() elif 'x' == ges.equals_var: - self.solver.solve_to_x() + ret = self.solver.solve_to_x() elif 'd' == ges.equals_var: - self.solver. solve_to_d() + ret = self.solver. solve_to_d() + elif 'e' == ges.equals_var: + ret = self.solver. solve_to_e() + elif 'f' == ges.equals_var: + ret = self.solver. solve_to_f() + elif 'g' == ges.equals_var: + ret = self.solver. solve_to_g() + elif 'y' == ges.equals_var: + ret = self.solver. solve_to_y() + elif 'z' == ges.equals_var: + ret = self.solver. solve_to_z() + + return ret diff --git a/Main.py b/Main.py index c79793b..39dc2cf 100644 --- a/Main.py +++ b/Main.py @@ -1,5 +1,7 @@ -#import Formeln +import Formeln import user_IO -#import Klassen +import Klassen while True: - _ = user_IO.user_Input() + dicts = user_IO.user_Input() + ret = Formeln.looper(dicts[0], dicts[1]) + user_IO.user_Output(ret) diff --git a/user_IO.py b/user_IO.py index b684b45..5fda594 100644 --- a/user_IO.py +++ b/user_IO.py @@ -9,12 +9,12 @@ def user_Input(): geginput = input("Welche Formelzeichen sind gegeben? Geben Sie immer nur EINS ein! \n Bestätigen sie Ihre Eingaben mit 'Fertig'\n") if geginput == "Fertig": for symbol in geg: - geg[symbol] = float(input("Geben Sie den Wert zu " + symbol + " ein.")) + geg[symbol] = float(input("Geben Sie den Wert zu " + symbol + " ein.\n")) break else: geg[geginput] = None - gesinput = input("Welches Formelzeichen sind gesucht?") + gesinput = input("Welches Formelzeichen sind gesucht?\n") ges[gesinput] = None return [geg, ges]