JavaScript hesap makinesi parçalama işlemi nasıl yapılır?

00PARZIVAL00

Picopat
Katılım
23 Temmuz 2022
Mesajlar
519
Çözümler
1
Daha fazla  
Cinsiyet
Diğer
Merhaba, ben JavaScript üzerinden bir hesap makinesi yaptım, fakat bu hesap makinesi sadece sağ ve solu, yani tek şeyli işlem yapabiliyor, fakat kulalnıcı birden çok işlem yapmak istediğinde bunları nasıl parçalara ayırıp, hesap yaptıracağımı anlayamadım, YouTube'dan da bulamadım, bana anlatabilir misiniz? Yani kullanıcı mesela 50+23 işlemini yapabiliyor, fakat 50+23*64-43 gibi bir işlemi nasıl parçalara ayıracağımı anlayamadım. Şu an yaptığım hesap makinesi şöyle bir şey, sol + operatör + sağ şeklinde işlem yapıyor, bunu nasıl yukarıda dediğim gibi parçalayarak işlemi yaptırabilirim?
 

Çok gelişmiş değil ama böyle bir şey diyorsunuz sanırım.

JavaScript:
 display.innerText += e.target.innerText;

Evet bu şekilde çalışan bir hesap makinesi, fakat bunu eval() ile değilde kendim yapmak istiyorum. Yani eval()'ın yaptıklarını kod halinde yazmak. Ama bana sadece hesap yaptığı kısım yeterli şu an için.
 
String şeklideki matematiksel bir ifadeyi eval() kullanmadan kendiniz parse edip işlem önceliğine göre yürütmek için bTree veya Stack tipinde bir veri yapısı üzerinde tutup işlemleri gerçekleştirmeniz gerekiyor.

Derleyicilerin çalışma mantığını da az çok buna benzerdir.

Bkz: Parsing math expressions with JavaScript
 
Merhaba, ben JavaScript üzerinden bir hesap makinesi yaptım, fakat bu hesap makinesi sadece sağ ve solu, yani tek şeyli işlem yapabiliyor, fakat kulalnıcı birden çok işlem yapmak istediğinde bunları nasıl parçalara ayırıp, hesap yaptıracağımı anlayamadım, YouTube'dan da bulamadım, bana anlatabilir misiniz? Yani kullanıcı mesela 50+23 işlemini yapabiliyor, fakat 50+23*64-43 gibi bir işlemi nasıl parçalara ayıracağımı anlayamadım. Şu an yaptığım hesap makinesi şöyle bir şey, sol + operatör + sağ şeklinde işlem yapıyor, bunu nasıl yukarıda dediğim gibi parçalayarak işlemi yaptırabilirim?

Hocam infix işlemi postfix veya Prefix'e dönüştürerek veri yapılarına aşinaysanız yaparsınız. Başarılar.
 

Yeni konular

Geri
Yukarı