Bilgi-Sayar.NET Menu

ADRES:

ASP’de Basit Hesap Makinesi

ASP’de basit bir şekilde, form yardımıyla 4 temel işlemi yapalım(toplama,çıkarma,çarpma,bölme). Bu şekilde hesap makinelerini javascript,java,jquery gibi dillerde de yapabilirsiniz. Burdaki amaç basit şekilde asp de görelim.Öncelikle formu yerleştireceğimiz bir giriş sayfası yapalım(HTML yardımı ile). Adı “HesapMakinesi.asp” olsun. Başına standart kodları koyarsınız. Direkt form kısmına gelelim.

<form action=”Hesapla.asp” method=”post”>
<b>İlk Sayı:</b> <input type=”text” name=”ilksayi” /><br />
<b>İkinci Sayı:</b> <input type=”text” name=”ikincisayi” /><br />
<b>İşlem:</b> <select name=”islem”><option value=”toplama”>Toplama</option><option value=”cikarma”>Çıkarma</option><option value=”carpma”>Çarpma</option><option value=”bolme”>Bölme</option></select><br />
<input type=”submit” value=”Hesapla” />
</form>

Bu şekilde formumuzu hazırladık. Burda birinci sayıyı giricek, altına ikinci sayı ve onun altından işlemi seçip hesaplaya bastığında sonucu versin. Şimdide formun gideceği “Hesapla.asp” dosyamızı yapalım.

<%
‘ Once formları tanimlayalim
Birinci = Cint(Request.Form(“ilksayi”))  ‘ilksayi degerini aldik
Sonuncu = Cint(Request.Form(“ikincisayi”)) ‘ikincisayi degerini aldik
Napim = Request.Form(“islem”) ‘hangi islemi yapacagini cektik
‘ Simdi kutucukları doldurmus mu kontrol edelim

If Birinci=”” Then ‘ Eger Birinci Sayi Girilmediyse
Response.Write “<script>javascript:alert(‘Birinci Sayıyı Girmediğinde Vericek Hata Mesajı’)</script>”
Response.Write “<br />” ‘ alt satira gecsin
Response.Write “<script>location=’HesapMakinesi.asp'</script>” ‘ HesapMakinesi.asp ye gitsin
Response.End ‘ Sayfanın devamını gostermiyelim Cunku birinci sayi yok
End If ‘ Girildiyse birsey yapma

If Sonuncu=”” Then ‘ Eger ikinci sayi girilmediyse
Response.Write “<script>javascript:alert(‘İkinci Sayıyı Girmediğinde Vericek Hata Mesajı’)</script>”
Response.Write “<script>location=’HesapMakinesi.asp'</script>” ‘ HesapMakinesi.asp ye gitsin
Response.End ‘ Sayfanın devamını gostermiyelim Cunku ikinci sayi yok
End If ‘ Girildiyse birsey yapma

If Napim=”toplama” Then ‘toplama istiyorsa
Response.Write “Buraya sonuç tarzı yazmak istediğiniz yazı: “& Birinci + Sonuncu ‘sayilari topla ve ekrana yaz
Response.End ‘ toplama istediyse gerisine bakmasin
End If ‘ islem toplama ise bu kismi gosterdik

If Napim=”cikarma” Then ‘cikarma istiyorsa
Response.Write “Sonuç: “& Birinci – Sonuncu ‘ birinciden ikinciyi cikar ve ekrana yazdir
Response.End
End If

If Napim=”carpma” Then ‘carpma istiyorsa
Response.Write “Sonuç: “& Birinci * Sonuncu ‘ sayilari carp ve ekrana yazdir
Response.End
End If

If Napim=”bolme” Then ‘bolme istiyorsa
Response.Write “Sonuç: “& Birinci / Sonuncu ‘ birinciyi ikinciye bol ve ekrana yazdir
Response.End
End If
%>

Yukarıda formdan gelen verileri tanımlarken Cint diye bir dönüştürücü kullandık, bu olmadan toplama işleminde sayıları yan yana yazar ve toplamaz (Mesela: Birinci Sayı 1, ikinci sayı 2 olsun, Cint kullanmadan önce toplama işleminde sonuç 12dir. Cint’i kullandığımızda sonuç 3 olucaktır).

Örnek Uygulamayı İndir

Bir önceki yazımız olan ASP'de Global.asa ile Aktif Kişi Sayacı başlıklı makalemizde ASP ve ASP'de Global.asa ile Aktif Kişi Sayacı hakkında bilgiler verilmektedir.

  • By_vezir

    Asp’de yeni olduğum için yeni yeni öğreniyorum herşeyi sayenizde 🙂

  • Havacı

    Asp de pek bir bilgim yok öğrenmek isteyene büyük imkan 🙂

  • Kelli

    Thanks for wiritng such an easy-to-understand article on this topic.

  • nyzr

    Sayenizde hesap makinemi yaptım, teşekkürler !

  • Emir hattab

    peki mesala ben işlemi devam ettirmek istiyorum yani 2*5=10 sonucunu verdi ve ben üstüne 5 daha eklemek istiyorum işlemi devam eetirmek istiyorum onu yasıl yapabiilirim ??

    • Bilgi-Sayar.NET

      İşlem sayınız sınırlı olacaksa yani örnekteki gibi bir işlemden sonra 1 tane daha işlem olacaksa çıkan sonucu bir input alanına yazdırıp işlemi tekrarlatabilirsiniz.
      Veya işlemler sürekli devam etsin isterseniz işlem sonucunu ilksayi input alanına yazıp kullanıcının tekrar işlemi ve işlem yapılacak sayıyı girmesini sağlıyabilirsiniz.

  • Emir Hattab

    Anladım İlginize Çok Teşekkür ederim ancak sizden küçük bir istirhamım olacak sadece input kodunu yazabilirmisiniz acaba ?? Çünkü yarın ödevi teslim etmem lazım yazdığınız kod çok işime yaradı size minnettarım tekrar tekrar teşekkür ederim ..

    • Bilgi-Sayar.NET

      Response.Write "Sonuç" yazan yerler yerine aşağıdaki şekilde asp sonucunda
      tekrar form yazırabilirsiniz. Daha kolay olması için öncelikle işlem sonucunu
      ekrana yazmak yerine değişkene atayalım. Örnek olarak toplama işlemi için
      yapıyorum:

      <% TOPLAMA ISLEMINE KADAR OLAN KISIMLARDA DEGISIKLIK YAPMAYA GEREK YOK

      If Napim=”toplama” Then ‘toplama istiyorsa
      IslemSonucu = Birinci + Sonuncu ‘sayilari topla ve IslemSonucu değişkenine ata
      End If ‘ islem toplama ise bu kismi gosterdik
      %>

      * Hesapla.asp sayfasına ilksayi input alanına value=”< %=IslemSonucu%>” ekleyerek gelen değeri otomatik birinci alana yazdırabilirsiniz.

      * işlem sonuçlarında response.end ile devamını gösterme demiştik eğer response.end kaldırmazsak formu aşağıda yazmaz. Her işlem If – End If şeklinde tek tek belirtilmişti daha kolay gösterebilmek için, onun yerine If – ElseIf – End If şeklinde kullanırsanız daha sağlıklı olacaktır.