Skip to content

Commit 018dd9e

Browse files
authored
Merge pull request #756 from deepakdinesh1123/algebra
algebra_solver_gui added
2 parents 4862841 + 6b7ae78 commit 018dd9e

File tree

3 files changed

+79
-0
lines changed

3 files changed

+79
-0
lines changed

algebra_solver_gui/algebra.py

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
from sympy.core.sympify import kernS
2+
import PySimpleGUIQt as sg
3+
import sympy as sy
4+
5+
6+
class AlgebraSolver:
7+
def __init__(self):
8+
self.result = ""
9+
self.layout = [
10+
[sg.Text("Enter the linear equation"), sg.In(key="lneq")],
11+
[sg.Button("Evaluate", enable_events=True, key="eval")],
12+
[sg.Text("Result:"), sg.Text(text="", key="result")],
13+
]
14+
15+
def evaluate_linear(self, expression):
16+
if len(expression) == 0:
17+
return "Enter valid expression"
18+
try:
19+
exp = expression.split("=")
20+
sy_exp = kernS(exp[0])
21+
if exp[1].isdigit():
22+
req = int(exp[1])
23+
else:
24+
req = kernS(exp[1])
25+
except SyntaxError:
26+
return "Not a valid expression"
27+
return sy.solveset(sy.Eq(sy_exp, req))
28+
29+
def render(self):
30+
window = sg.Window("Algebra Solver", resizable=True,
31+
size=(800, 100)).Layout(self.layout)
32+
33+
while True:
34+
event, values = window.Read()
35+
if event == "eval":
36+
self.result = self.evaluate_linear(values["lneq"])
37+
window["result"].update(self.result)
38+
elif event == sg.WIN_CLOSED or event == "EXIT":
39+
break
40+
41+
42+
if __name__ == "__main__":
43+
al = AlgebraSolver()
44+
al.render()

algebra_solver_gui/readme.md

+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Alegbraic Equation Solver
2+
3+
This is a an application that solves simple algbraic equations
4+
5+
E.g, X**2-5=0, 3=X-5
6+
7+
---
8+
9+
10+
## How to run
11+
12+
#### Install dependencies from the requirements file:
13+
---
14+
`pip install requirements.txt`
15+
16+
#### Run algebra.py

algebra_solver_gui/requirements.txt

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
black==21.9b0
2+
click==8.0.3
3+
colorama==0.4.4
4+
flake8==4.0.1
5+
mccabe==0.6.1
6+
mpmath==1.2.1
7+
mypy-extensions==0.4.3
8+
pathspec==0.9.0
9+
platformdirs==2.4.0
10+
pycodestyle==2.8.0
11+
pyflakes==2.4.0
12+
PySide2==5.15.2
13+
PySimpleGUI==4.49.0
14+
PySimpleGUIQt==0.35.0
15+
regex==2021.10.8
16+
shiboken2==5.15.2
17+
sympy==1.9
18+
tomli==1.2.1
19+
typing-extensions==3.10.0.2

0 commit comments

Comments
 (0)