|
|
import streamlit as st |
|
|
import math |
|
|
|
|
|
|
|
|
def add(x, y): |
|
|
return x + y |
|
|
|
|
|
def subtract(x, y): |
|
|
return x - y |
|
|
|
|
|
def multiply(x, y): |
|
|
return x * y |
|
|
|
|
|
def divide(x, y): |
|
|
if y == 0: |
|
|
return "Error! Division by zero." |
|
|
else: |
|
|
return x / y |
|
|
|
|
|
def square_root(x): |
|
|
if x < 0: |
|
|
return "Error! Square root of negative number." |
|
|
else: |
|
|
return math.sqrt(x) |
|
|
|
|
|
def power(x, y): |
|
|
return math.pow(x, y) |
|
|
|
|
|
def sine(x): |
|
|
return math.sin(math.radians(x)) |
|
|
|
|
|
def cosine(x): |
|
|
return math.cos(math.radians(x)) |
|
|
|
|
|
def tangent(x): |
|
|
return math.tan(math.radians(x)) |
|
|
|
|
|
def logarithm(x, base=10): |
|
|
if x <= 0: |
|
|
return "Error! Logarithm of non-positive number." |
|
|
else: |
|
|
return math.log(x, base) |
|
|
|
|
|
|
|
|
st.title("Scientific Calculator") |
|
|
|
|
|
|
|
|
num1 = st.number_input("Enter first number:", value=0.0) |
|
|
num2 = st.number_input("Enter second number (optional):", value=0.0) |
|
|
|
|
|
|
|
|
operation = st.selectbox("Choose an operation:", [ |
|
|
"Add", "Subtract", "Multiply", "Divide", |
|
|
"Square Root", "Power", "Sine", "Cosine", "Tangent", "Logarithm" |
|
|
]) |
|
|
|
|
|
|
|
|
if operation == "Add": |
|
|
result = add(num1, num2) |
|
|
elif operation == "Subtract": |
|
|
result = subtract(num1, num2) |
|
|
elif operation == "Multiply": |
|
|
result = multiply(num1, num2) |
|
|
elif operation == "Divide": |
|
|
result = divide(num1, num2) |
|
|
elif operation == "Square Root": |
|
|
result = square_root(num1) |
|
|
elif operation == "Power": |
|
|
result = power(num1, num2) |
|
|
elif operation == "Sine": |
|
|
result = sine(num1) |
|
|
elif operation == "Cosine": |
|
|
result = cosine(num1) |
|
|
elif operation == "Tangent": |
|
|
result = tangent(num1) |
|
|
elif operation == "Logarithm": |
|
|
result = logarithm(num1) |
|
|
|
|
|
|
|
|
st.write(f"Result: {result}") |
|
|
|