2026
Gelişmiş Hesap Makinesi
- Python
- Tkinter
- unittest
- PyInstaller
- Inno Setup
Genel bakış
Python ve Tkinter ile geliştirilmiş, Windows hesap makinesinden esinlenen standart ve bilimsel masaüstü hesap makinesi. İfadeler eval() kullanılmadan, sıfırdan yazılmış bir ayrıştırıcıyla (recursive descent parser) işlem önceliğine göre hesaplanır. Trigonometrik fonksiyonlar (derece/radyan), logaritma, faktöriyel, yüzde ve örtük çarpma desteklenir. Geçmiş paneli, bellek tuşları, açık/koyu tema ve Windows ile aynı klavye kısayolları bulunur. 17 birim testiyle doğrulanmış, PyInstaller ve Inno Setup ile kurulum dosyası olarak dağıtılmaktadır.
01 · Problem
Çoğu hesap makinesi projesi ifadeleri eval() ile hesaplıyor. Bu hem güvensiz hem de işlem önceliği, örtük çarpma ve kayan nokta hataları gibi asıl zor kısımları atlıyor.
02 · Çözüm
İfadeyi önce token'lara ayıran, ardından her öncelik seviyesi için ayrı bir fonksiyonu olan bir recursive descent parser yazdım. Hesaplama, biçimlendirme, geçmiş ve arayüz ayrı modüllerde duruyor; Tkinter arayüzü standart ve bilimsel mod, geçmiş paneli, bellek tuşları, açık/koyu tema ve Windows ile aynı klavye kısayollarını destekliyor.
03 · Sonuç
17 birim testiyle doğrulanan hesaplama motoru 0.1 + 0.2 = 0.3 ve sin(180°) = 0 gibi sonuçları doğru gösteriyor. Uygulama, PyInstaller ve Inno Setup ile Python kurulu olmayan bilgisayarlarda da çalışan bir kurulum dosyası olarak yayınlandı.