import tkinter as tk
import math

def add_to_expression(value):
    entry.insert(tk.END, value)

def delete_last_character():
    entry.delete(len(entry.get()) - 1, tk.END)

def calculate():
    expression = entry.get()
    try:
        # إضافة الأس
        expression = expression.replace("^", "**")
        # إضافة الجذر التربيعي
        expression = expression.replace("sqrt", "math.sqrt")
        
        result = eval(expression)
        result_label.config(text="Result: " + str(result), fg="green")
    except Exception as e:
        result_label.config(text="Error!", fg="red")

def clear():
    entry.delete(0, tk.END)
    result_label.config(text="")

# تهيئة النافذة الرئيسية
root = tk.Tk()
root.title("Scientific Calculator")
root.geometry("300x400")
root.configure(bg="lightblue")

# مربع النص لإدخال التعبيرات الحسابية
entry = tk.Entry(root, width=30, font=("Arial", 14))
entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)

# زر الأرقام
buttons = [
    '7', '8', '9',
    '4', '5', '6',
    '1', '2', '3',
    '0'
]

row = 1
col = 0
for button in buttons:
    tk.Button(root, text=button, width=5, command=lambda b=button: add_to_expression(b)).grid(row=row, column=col, padx=5, pady=5)
    col += 1
    if col > 2:
        col = 0
        row += 1

# زر الحذف
tk.Button(root, text="Del", width=5, command=delete_last_character).grid(row=5, column=0, padx=5, pady=5)
# زر الفاصلة
tk.Button(root, text=",", width=5, command=lambda: add_to_expression(".")).grid(row=5, column=1, padx=5, pady=5)

# زر الجمع
tk.Button(root, text="+", width=5, command=lambda: add_to_expression("+")).grid(row=1, column=3, padx=5, pady=5)
# زر الطرح
tk.Button(root, text="-", width=5, command=lambda: add_to_expression("-")).grid(row=2, column=3, padx=5, pady=5)
# زر الضرب
tk.Button(root, text="*", width=5, command=lambda: add_to_expression("*")).grid(row=3, column=3, padx=5, pady=5)
# زر القسمة
tk.Button(root, text="/", width=5, command=lambda: add_to_expression("/")).grid(row=4, column=3, padx=5, pady=5)

# زر الأس
tk.Button(root, text="^", width=5, command=lambda: add_to_expression("^")).grid(row=6, column=0, padx=5, pady=5)
# زر الجذر التربيعي
tk.Button(root, text="sqrt", width=5, command=lambda: add_to_expression("sqrt(")).grid(row=6, column=1, padx=5, pady=5)
# زر القوس البدئي
tk.Button(root, text="(", width=5, command=lambda: add_to_expression("(")).grid(row=6, column=2, padx=5, pady=5)
# زر القوس الختامي
tk.Button(root, text=")", width=5, command=lambda: add_to_expression(")")).grid(row=6, column=3, padx=5, pady=5)

# زر حساب النتيجة
tk.Button(root, text="Calculate", width=10, command=calculate).grid(row=7, column=0, columnspan=2, padx=5, pady=5)
# زر مسح المدخلات
tk.Button(root, text="Clear", width=10, command=clear).grid(row=7, column=2, columnspan=2, padx=5, pady=5)

# عرض النتيجة
result_label = tk.Label(root, text="", bg="lightblue", font=("Arial", 14))
result_label.grid(row=8, column=0, columnspan=4, padx=10, pady=10)

# تشغيل النافذة الرئيسية
root.mainloop()