import tkinter as tk

# دالة لإضافة النص إلى مدخل التعبير
def add_to_expression(value):
    expression_entry.insert(tk.END, value)

# دالة لحذف النص الأخير من التعبير
def delete_last_character():
    current_text = expression_entry.get()
    expression_entry.delete(0, tk.END)
    expression_entry.insert(tk.END, current_text[:-1])

# دالة لحساب التعبير وإظهار النتيجة
def calculate_expression():
    expression = expression_entry.get()
    try:
        result = eval(expression)  # حساب التعبير
        expression_entry.delete(0, tk.END)
        expression_entry.insert(tk.END, str(result))
    except Exception as e:
        expression_entry.delete(0, tk.END)
        expression_entry.insert(tk.END, "خطأ")

# دالة لإعادة تعيين التعبير
def clear_expression():
    expression_entry.delete(0, tk.END)

# إنشاء نافذة رئيسية
root = tk.Tk()
root.title("آلة حاسبة")

# مربع النص لإدخال التعبير
expression_entry = tk.Entry(root, width=20, font=('Arial', 14), justify='right')
expression_entry.grid(row=0, column=0, columnspan=4)

# تعريف الأزرار
buttons = [
    ('7', 1, 0), ('8', 1, 1), ('9', 1, 2), ('/', 1, 3),
    ('4', 2, 0), ('5', 2, 1), ('6', 2, 2), ('*', 2, 3),
    ('1', 3, 0), ('2', 3, 1), ('3', 3, 2), ('-', 3, 3),
    ('0', 4, 0), ('.', 4, 1), ('+', 4, 2), ('=', 4, 3),
    ('C', 5, 0), ('DEL', 5, 1)
]

# إنشاء الأزرار وإضافتها إلى الشبكة
for (text, row, col) in buttons:
    if text == '=':
        button = tk.Button(root, text=text, command=calculate_expression, width=5)
    elif text == 'C':
        button = tk.Button(root, text=text, command=clear_expression, width=5)
    elif text == 'DEL':
        button = tk.Button(root, text=text, command=delete_last_character, width=5)
    else:
        button = tk.Button(root, text=text, command=lambda value=text: add_to_expression(value), width=5)
    button.grid(row=row, column=col, padx=5, pady=5)

# تشغيل التطبيق
root.mainloop()