Normal bir hesap makinesi programından farklı olarak(gerçeklerine yakın olmayanlardan) sin(30) , log(18) gibi değerleri de hesaplayabilecek ve bunları iç içe yapabilecek bir program yaptım.
Programı c++ ile yazdım. Çünkü stl sayesinde hızlı bir şekilde gerçekleştiriyorum. Kuyruk ve yığın veri yapıları kullandım. Öncelikle kullanıcının girdiği string ifadeyi sırasıyla inceliyor. Eğer sayı ise yığına aktarıyor operatörse işlem sırasını bekliyor. Yani tpn(ters polonyalı notasyonu – reverse polish notation) formatıyla aktarıyorum. Bu algoritmayı vikipediden görebilirsiniz.
Daha sonra string ifadesindeki fonksiyonları da birer operatör olarak düşünüp üstteki algoritmayı kullandım ve sonuçları kuyruk yardımıyla hesapladım. Kuyrukta kalan son eleman benim sonucum olduğu için ekrana yazdırdım.
Kodları github adresimde bulabilirsiniz. https://github.com/ffahri/RPNCalculator
Social
About Me
Working as Site Reliability Engineer at Atlassian Opsgenie. Sharing personal ideas, personal projects here…
Topics are mostly about Kubernetes, Cloud and OSS
admin(at)webischia.com
-
Recent Posts
Recent Comments
Archives
Categories
Meta