|
|
import streamlit as st |
|
|
import math |
|
|
|
|
|
|
|
|
def scientific_calculator(): |
|
|
st.title("Scientific Calculator") |
|
|
st.write("This is a simple scientific calculator with various functions.") |
|
|
|
|
|
|
|
|
operation = st.selectbox( |
|
|
"Choose an operation:", |
|
|
["Addition", "Subtraction", "Multiplication", "Division", |
|
|
"Exponentiation", "Square Root", "Sine", "Cosine", "Tangent", "Logarithm"] |
|
|
) |
|
|
|
|
|
if operation == "Addition": |
|
|
num1 = st.number_input("Enter first number:", value=0.0) |
|
|
num2 = st.number_input("Enter second number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
result = num1 + num2 |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Subtraction": |
|
|
num1 = st.number_input("Enter first number:", value=0.0) |
|
|
num2 = st.number_input("Enter second number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
result = num1 - num2 |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Multiplication": |
|
|
num1 = st.number_input("Enter first number:", value=0.0) |
|
|
num2 = st.number_input("Enter second number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
result = num1 * num2 |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Division": |
|
|
num1 = st.number_input("Enter first number:", value=0.0) |
|
|
num2 = st.number_input("Enter second number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
if num2 != 0: |
|
|
result = num1 / num2 |
|
|
st.write(f"Result: {result}") |
|
|
else: |
|
|
st.write("Error: Cannot divide by zero!") |
|
|
|
|
|
elif operation == "Exponentiation": |
|
|
base = st.number_input("Enter base number:", value=0.0) |
|
|
exponent = st.number_input("Enter exponent:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
result = math.pow(base, exponent) |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Square Root": |
|
|
num = st.number_input("Enter number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
if num >= 0: |
|
|
result = math.sqrt(num) |
|
|
st.write(f"Result: {result}") |
|
|
else: |
|
|
st.write("Error: Cannot take square root of negative number!") |
|
|
|
|
|
elif operation == "Sine": |
|
|
angle = st.number_input("Enter angle in degrees:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
angle_rad = math.radians(angle) |
|
|
result = math.sin(angle_rad) |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Cosine": |
|
|
angle = st.number_input("Enter angle in degrees:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
angle_rad = math.radians(angle) |
|
|
result = math.cos(angle_rad) |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Tangent": |
|
|
angle = st.number_input("Enter angle in degrees:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
angle_rad = math.radians(angle) |
|
|
result = math.tan(angle_rad) |
|
|
st.write(f"Result: {result}") |
|
|
|
|
|
elif operation == "Logarithm": |
|
|
num = st.number_input("Enter number:", value=0.0) |
|
|
if st.button("Calculate"): |
|
|
if num > 0: |
|
|
result = math.log(num) |
|
|
st.write(f"Result: {result}") |
|
|
else: |
|
|
st.write("Error: Logarithm undefined for non-positive numbers!") |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
scientific_calculator() |
|
|
|