Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import math | |
| import sympy as sp | |
| def main(): | |
| st.title("Advanced Calculator") | |
| option = st.sidebar.selectbox("Select Calculation Type", | |
| ["Basic Arithmetic", "Algebra", "Trigonometry", "Equation Solver"]) | |
| if option == "Basic Arithmetic": | |
| st.header("Basic Arithmetic") | |
| num1 = st.number_input("Enter first number", value=0.0, format="%.6f") | |
| num2 = st.number_input("Enter second number", value=0.0, format="%.6f") | |
| operation = st.selectbox("Choose an operation", ["Addition", "Subtraction", "Multiplication", "Division"]) | |
| if operation == "Addition": | |
| result = num1 + num2 | |
| elif operation == "Subtraction": | |
| result = num1 - num2 | |
| elif operation == "Multiplication": | |
| result = num1 * num2 | |
| elif operation == "Division": | |
| result = num1 / num2 if num2 != 0 else "Error: Division by zero" | |
| st.write(f"### Result: {result}") | |
| elif option == "Algebra": | |
| st.header("Algebraic Operations") | |
| expr = st.text_input("Enter an algebraic expression (e.g., x**2 + 3*x - 2)") | |
| variable = st.text_input("Enter the variable (default: x)", value="x") | |
| if expr: | |
| try: | |
| x = sp.symbols(variable) | |
| expr_sympy = sp.sympify(expr) | |
| st.write("**Simplified Expression:**", sp.simplify(expr_sympy)) | |
| st.write("**Expanded Expression:**", sp.expand(expr_sympy)) | |
| st.write("**Derivative:**", sp.diff(expr_sympy, x)) | |
| st.write("**Integral:**", sp.integrate(expr_sympy, x)) | |
| except Exception as e: | |
| st.error(f"Error in algebraic computation: {e}") | |
| elif option == "Trigonometry": | |
| st.header("Trigonometric Functions") | |
| angle = st.number_input("Enter angle in degrees", value=0.0) | |
| trig_function = st.selectbox("Choose a function", | |
| ["sin", "cos", "tan", "cot", "sec", "csc"]) | |
| rad = math.radians(angle) | |
| try: | |
| if trig_function == "sin": | |
| result = math.sin(rad) | |
| elif trig_function == "cos": | |
| result = math.cos(rad) | |
| elif trig_function == "tan": | |
| result = math.tan(rad) | |
| elif trig_function == "cot": | |
| result = 1 / math.tan(rad) if math.tan(rad) != 0 else "Undefined" | |
| elif trig_function == "sec": | |
| result = 1 / math.cos(rad) if math.cos(rad) != 0 else "Undefined" | |
| elif trig_function == "csc": | |
| result = 1 / math.sin(rad) if math.sin(rad) != 0 else "Undefined" | |
| st.write(f"### Result: {result}") | |
| except Exception as e: | |
| st.error(f"Error in trigonometric computation: {e}") | |
| elif option == "Equation Solver": | |
| st.header("Equation Solver") | |
| equation = st.text_input("Enter an equation (e.g., x**2 - 4 = 0)") | |
| variable = st.text_input("Enter the variable (default: x)", value="x") | |
| if equation: | |
| try: | |
| x = sp.symbols(variable) | |
| lhs, rhs = equation.split("=") | |
| eq = sp.Eq(sp.sympify(lhs.strip()), sp.sympify(rhs.strip())) | |
| solutions = sp.solve(eq, x) | |
| st.write("### Solutions:", solutions) | |
| except Exception as e: | |
| st.error(f"Error in solving equation: {e}") | |
| if __name__ == "__main__": | |
| main() | |