aW1wb3J0IHRraW50ZXIgYXMgdGsKCiMg2KXZhti02KfYoSDZhtin2YHYsNipINin2YTYqti32KjZitmCCnJvb3QgPSB0ay5UaygpCnJvb3QudGl0bGUoJnF1b3Q72KLZhNipINit2KfYs9io2Kkg2KjYs9mK2LfYqSZxdW90OykKCiMg2KXYr9iu2KfZhCDYp9mE2KjZitin2YbYp9iqCmVudHJ5ID0gdGsuRW50cnkocm9vdCwgd2lkdGg9NDAsIGJvcmRlcndpZHRoPTUpCmVudHJ5LmdyaWQocm93PTAsIGNvbHVtbj0wLCBjb2x1bW5zcGFuPTQsIHBhZHg9MTAsIHBhZHk9MTApCgojINiv2KfZhNipINmE2KXYttin2YHYqSDYp9mE2KPYsdmC2KfZhSDYpdmE2Ykg2KfZhNmF2K/YrtmE2KfYqgpkZWYgYnV0dG9uX2NsaWNrKG51bWJlcik6CiAgICBjdXJyZW50ID0gZW50cnkuZ2V0KCkKICAgIGVudHJ5LmRlbGV0ZSgwLCB0ay5FTkQpCiAgICBlbnRyeS5pbnNlcnQoMCwgY3VycmVudCArIHN0cihudW1iZXIpKQoKIyDYr9in2YTYqSDZhNiq2YbZgdmK2LAg2KfZhNi52YXZhNmK2Kkg2KfZhNit2LPYp9io2YrYqQpkZWYgYnV0dG9uX2VxdWFsKCk6CiAgICB0cnk6CiAgICAgICAgcmVzdWx0ID0gZXZhbChlbnRyeS5nZXQoKSkKICAgICAgICBlbnRyeS5kZWxldGUoMCwgdGsuRU5EKQogICAgICAgIGVudHJ5Lmluc2VydCgwLCBzdHIocmVzdWx0KSkKICAgIGV4Y2VwdDoKICAgICAgICBlbnRyeS5kZWxldGUoMCwgdGsuRU5EKQogICAgICAgIGVudHJ5Lmluc2VydCgwLCAmcXVvdDvYrti32KMmcXVvdDspCgojINiv2KfZhNipINmE2YXYs9itINin2YTZhdiv2K7ZhNin2KoKZGVmIGJ1dHRvbl9jbGVhcigpOgogICAgZW50cnkuZGVsZXRlKDAsIHRrLkVORCkKCiMg2KXZhti02KfYoSDYp9mE2KPYstix2KfYsQpidXR0b25zID0gWwogICAgKCc3JywgMSwgMCksICgnOCcsIDEsIDEpLCAoJzknLCAxLCAyKSwgKCcvJywgMSwgMyksCiAgICAoJzQnLCAyLCAwKSwgKCc1JywgMiwgMSksICgnNicsIDIsIDIpLCAoJyonLCAyLCAzKSwKICAgICgnMScsIDMsIDApLCAoJzInLCAzLCAxKSwgKCczJywgMywgMiksICgnLScsIDMsIDMpLAogICAgKCcwJywgNCwgMCksICgnLicsIDQsIDEpLCAoJz0nLCA0LCAyKSwgKCcrJywgNCwgMyksCl0KCiMg2KXYttin2YHYqSDYp9mE2KPYstix2KfYsSDYpdmE2Ykg2KfZhNmI2KfYrNmH2KkKZm9yIHRleHQsIHJvdywgY29sIGluIGJ1dHRvbnM6CiAgICBpZiB0ZXh0ID09ICZxdW90Oz0mcXVvdDs6CiAgICAgICAgYnRuID0gdGsuQnV0dG9uKHJvb3QsIHRleHQ9dGV4dCwgd2lkdGg9MTAsIGhlaWdodD0yLCBjb21tYW5kPWJ1dHRvbl9lcXVhbCkKICAgIGVsc2U6CiAgICAgICAgYnRuID0gdGsuQnV0dG9uKHJvb3QsIHRleHQ9dGV4dCwgd2lkdGg9MTAsIGhlaWdodD0yLCBjb21tYW5kPWxhbWJkYSB0PXRleHQ6IGJ1dHRvbl9jbGljayh0KSkKICAgIGJ0bi5ncmlkKHJvdz1yb3csIGNvbHVtbj1jb2wsIHBhZHg9NSwgcGFkeT01KQoKIyDYstixINmF2LPYrSDYp9mE2KjZitin2YbYp9iqCmJ0bl9jbGVhciA9IHRrLkJ1dHRvbihyb290LCB0ZXh0PSZxdW90O0MmcXVvdDssIHdpZHRoPTEwLCBoZWlnaHQ9MiwgY29tbWFuZD1idXR0b25fY2xlYXIpCmJ0bl9jbGVhci5ncmlkKHJvdz01LCBjb2x1bW49MCwgY29sdW1uc3Bhbj00LCBwYWR4PTUsIHBhZHk9NSwgc3RpY2t5PSZxdW90O3dlJnF1b3Q7KQoKIyDYqti02LrZitmEINin2YTYqti32KjZitmCCnJvb3QubWFpbmxvb3AoKQ==
import tkinter as tk
# إنشاء نافذة التطبيق
root = tk.Tk()
root.title("آلة حاسبة بسيطة")
# إدخال البيانات
entry = tk.Entry(root, width=40, borderwidth=5)
entry.grid(row=0, column=0, columnspan=4, padx=10, pady=10)
# دالة لإضافة الأرقام إلى المدخلات
def button_click(number):
current = entry.get()
entry.delete(0, tk.END)
entry.insert(0, current + str(number))
# دالة لتنفيذ العملية الحسابية
def button_equal():
try:
result = eval(entry.get())
entry.delete(0, tk.END)
entry.insert(0, str(result))
except:
entry.delete(0, tk.END)
entry.insert(0, "خطأ")
# دالة لمسح المدخلات
def button_clear():
entry.delete(0, tk.END)
# إنشاء الأزرار
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),
]
# إضافة الأزرار إلى الواجهة
for text, row, col in buttons:
if text == "=":
btn = tk.Button(root, text=text, width=10, height=2, command=button_equal)
else:
btn = tk.Button(root, text=text, width=10, height=2, command=lambda t=text: button_click(t))
btn.grid(row=row, column=col, padx=5, pady=5)
# زر مسح البيانات
btn_clear = tk.Button(root, text="C", width=10, height=2, command=button_clear)
btn_clear.grid(row=5, column=0, columnspan=4, padx=5, pady=5, sticky="we")
# تشغيل التطبيق
root.mainloop()