Ana sayfa » Javascipt ile Faktöriyel Algoritması
Algoritma Javascript Yazılım Dilleri

Javascipt ile Faktöriyel Algoritması

Yazılıma yeni adım atanlar için öğrenme aşamasındaki bir başka algoritma faktöriyel algoritmasıdır. Faktöriyel algoritması aslında bir sayının 1’den kendisine kadar olan sayıların çarpımıdır. Bu tanım itibariyle de bakıldığında faktöriyel algoritması recursive yani Türkçe karşılığı ile özyineli bir fonksiyondur

Matematiksel formülüne baktığımızda faktoriyel fonksiyonunun tanımı bu şekilde yapılabilir:

n! = n.(n-1).(n-2) … 1

Yani basitçe faktöriyel fonksiyonu herhangi bir sayı için 1’den o sayıya kadar olan ardışık tam sayıların çarpımına eşittir.

Örneğin 4 için : 4!= 4.3.2.1 = 24
5 için : 5! = 5.4.3.2.1 = 120

Recurive tanımı yani özyineli tanımı olarak ifademiz aşağıdaki gibi olabilir:

n! = n (n-1)!

Faktöriyel Algoritmasını değişik dillerde kodlara dökelim.

Javascript ve HTML kullanırken hangi kod kısımların önce hangisinin sonra olduğu bazen önemli olabiliyor. Genel kullanımda Javascript kodları ilgili HTML kodlarının üstünde yazılır.

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script type="text/javascript">
    function faktoriyelHesapla(){
	var sayi =document.getElementById("sayi").value;
	var sonuc=1;
	for(var i = 1; i<= sayi; i++)
	sonuc =sonuc*i;
	document.getElementById("sonuc").value = sonuc;
    }
</script>

Bu kodları aşağıdaki HTML kodları için kullanarak kullanıcıdan veriyi alabilir, aldığımız verileri işleyebilir ve sonucu ekrana yazdırabiliriz

<div>
    <h3>Faktoriyel Hesapla</h3>
    <label>Sayı giriniz : </label>
    <input type="text" id="sayi" name="sayi">
    </br>
    <button class="button-fluid" onclick = "faktoriyelHesapla()">Hesapla</button>
    </br>
    <label>Sonuç : </label>
    <input type="text" id="sonuc" name="sonuc" readonly>
</div>

Burada yazdığın ve recursive olmayan kodlara https://js.do/suleymanduzgun/faktoriyel-hesaplama linkinden erişebilirsiniz.

Javascript Recursive (Özyineli) Faktöriyel Fonksiyonu

Recursive (Özyineli) olarak faktöriyel fonksiyonunu HTML kodları ile birlikte şöyle yazabiliriz.

<link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
<script type="text/javascript">
    function faktoriyelHesapla(){
        var sayi =document.getElementById("sayi").value;
	var sonuc=RecursiveFaktoriyelHesapla(sayi);
	document.getElementById("sonuc").value = sonuc;
    }

function RecursiveFaktoriyelHesapla(sayi){
    if(sayi == 1){
        return 1;
    }
    else{
        return sayi*RecursiveFaktoriyelHesapla(sayi-1);
    }
}
</script>

<div>
    <h3>Faktoriyel Hesapla</h3>
    <label>Sayı giriniz : </label>
    <input type="text" id="sayi" name="sayi">
    </br>
    <button onclick = "faktoriyelHesapla()">Hesapla</button>
    </br>
    <label>Sonuç : </label>
    <input type="text" id="sonuc" name="sonuc" readonly>
</div>

Javascipt ile ilgili kodları online olarak çalıştırmak için Js.do sitesini ücretsiz kullanabilirsiniz, yukarıda yazdığım kodlara https://js.do/suleymanduzgun/recursive-factoriyel linkinden erişebilirsiniz.. Burada yazdığım kodları da orada teyit edebilirsiniz. Herkese iyi çalışmalar dilerim.

Süleyman Düzgün

Ankara Ünv. Bilgisayar Müh.
Kıdemli Yazılım Geliştirici

Yorum Ekle

Yorum yazmak için tıklayın.