Merge remote-tracking branch 'origin/master'

# Conflicts:
#	Formeln.py
This commit is contained in:
naschi
2019-07-24 10:12:40 +02:00
6 changed files with 46 additions and 32 deletions
+1 -1
View File
@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7" project-jdk-type="Python SDK" />
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.7 (Projekttage)" project-jdk-type="Python SDK" />
</project>
+1 -1
View File
@@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="Python 3.7 (Projekttage)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
<component name="TestRunnerService">
+13 -13
View File
@@ -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])
return formel.solve(temp_is_solvable[1], [geg, ges])
+24 -12
View File
@@ -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
+5 -3
View File
@@ -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)
+2 -2
View File
@@ -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]