JavaScript ile yapılan hesap makinesi doğru çalışmıyor

Frendallpear

Femtopat
Katılım
22 Mart 2022
Mesajlar
51
Daha fazla  
Cinsiyet
Erkek
Selam, ben JavaScript ile bir hesap makinesi yaptım, fakat anlayamadığım bir sebepten ötürü doğru çalışmıyor, hesaplamalardan bahsediyorum. Mesela bazı hesaplamalar da sonucu düzgün gösterirken, bazılarında yanlış gösteriyor.

 
Son düzenleme:
JavaScript:
numbers.forEach(numberbtn => {
        numberbtn.addEventListener("click", nums);

        function nums() {

            if (_screen.textContent == "0") {
                _screen.textContent = "";
            }

            _screen.textContent += this.value;

            if (selectedOperators == "") {
                leftPart = this.value
            }
            if (selectedOperators != "") {
                rightPart = this.value
            }
        }
    });

Problem inputu doğru şekilde alamamanızdan kaynaklanıyor. Örneğin 45+25= girdisi sonuç olarak 10 dönüyor. Aynı şekilde 15+65= girdisi de.
Bunun nedeni leftPart = this.value ve rightPart = this.value satırları. Eşittirden önce basılan son rakam sağ değer, operatörden önce basılan son rakam sol değer oluyor. Haliyle 45+25= girdisi 5+5'in sonucunu dönüyor.

Girdiyi sol, operatör ve sağ olarak üçe ayırmışsınız bu yaklaşım biraz yanlış çünkü kullanıcı 15+5+7= şeklinde bir input oluşturabilir. Eşittir butonuna basıldıktan sonra tüm girdiyi parçalayarak sonuç üretmeniz daha doğru.
 

Cevap için teşekkürler. Javascript'i yeni yeni öğreniyorum diyebilirim, bir örnek tarzı bir şey ile gösterme şansınız var mı dediğinizi?
 
Cevap için teşekkürler. Javascript'i yeni yeni öğreniyorum diyebilirim, bir örnek tarzı bir şey ile gösterme şansınız var mı dediğinizi?
İki algoritma önereyim, siz beğendiğinizi yapmaya çalışın.
  • Kullanıcı bir işlem operatörüne basmadığı sürece rakamları ekrana yazdırın. Operatöre bastığı anda ekrandaki değer ilk sayınız olacak. (Bu aşamada işlem butonlarını pasif hale getirirseniz yanlış girdi yapılması önlenmiş olur.) İkinci sayıyı tespit etmek için basılan rakamları farklı bir değişkende tutun. Eşittir butonuna basıldığında sonucu hesaplayabilirsiniz.
  • Kullanıcı eşittir butonuna basıncaya kadar sadece ekrana yazdırma işlemi yapın. Eşittir butonuna basıldığında girdiyi alın ve operatörlere göre parçalayıp (Girdideki karakterleri tek tek inceleyerek sayıları ve operatörleri tespit etmeniz gerek) sonucu hesaplayın.
 
Buna ek olarak, parçaladıktan sonra işlem önceliğine göre işlemleri gerçekleştirmen gerekiyor.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…