Fonksiyonların incelenmesi (Bölüm-2)


Merhaba fonksiyonları incelemeye devam ediyoruz. Bu defaki makalemizde sizlerle:

  1. => ile fonksiyon nasıl tanımlanır?
  2. Fonksiyon larda parametre kullanımı ve isteğe bağlı parametreler ile son olarak,
  3. Recursive / Kendini çağıranfonksiyonlar konularını işlemeye çalışacağız.

Aşağıdaki örnekte konuya ilişkin gerekli kodlar ve bu kodların açıklamaları verilmiştir. Bunları inceleyerek benzer kodları sizler de yazmaya çalışınız. Yardımcı olması dileğiyle hepinize mutlu kodlama günleri dilerim.

<script language="javascript" type="text/javascript">
    //F. FONKSIYONLARDA => KULLANIMI
    // => ile fonksiyon tanimlamak bizim daha once yaptigimiz tanimlamalardan biraz farklidir
    // zira burada function() biçimden bir tanimlayici kullanilmaz. function() yerine => kullanilir.
    // => simgesi genellikle parametre listesinden sonra gelir ve kismen şunu ifade eder; bunlar giriş parametreleridir
    // ve bu parametreler ile (fonskiyon blogunu isaret ederek) "bu" sonuclari dogurur. Şimdi basit orneklerle bunu
    // daha anlaşilir hale getirelim 
    //rasgele iki adet sayi tutuyoruz
    var tb=Math.round(Math.random()*10);
    var kuvvet=Math.round(Math.random()*10);
    //F-1. => ile fonksiyon tanimlama
    const usAlma= (taban,us) => {
        let sonuc=1;
        for(let tekrar=0;tekrar<us;tekrar++){
            sonuc*=taban;
        }
        return sonuc ;
    };
    //simdi fonksiyonumuz cagiralim
    //console.log(usAlma(tb,kuvvet)); // ya da
    console.log(tb + " sayisinin " + kuvvet + " . inci kuvveti= " + usAlma(tb,kuvvet) + " 'dir.");
    
    //F-2. function ile ayni fonksiyonu yeniden tanimlayalim. Farklarini gözlemleyin lütfen.
    const usAlma2= function(taban,us){
        let sonuc=1;
        for(let tekrar=0;tekrar<us;tekrar++){
            sonuc*=taban;
        }
        return sonuc ;
    };
    console.log(tb + " sayisinin " + kuvvet + " . inci kuvveti= " + usAlma2(tb,kuvvet) + " 'dir.");
     //F-3. function ile ayni fonksiyonu yeniden tanimlayalim. Farklarini gözlemleyin lütfen.
    function usAlma3(taban,us){
        let sonuc=1;
        for(let tekrar=0;tekrar<us;tekrar++){
            sonuc*=taban;
        }
        return sonuc ;
    };
    console.log(tb + " sayisinin " + kuvvet + " . inci kuvveti= " + usAlma3(tb,kuvvet) + " 'dir.");   
    ///////////////////////////////////////////////////////////////////////////////////////////////
    //Dikkat!
    // => ile yapilan tanimlamalarda eger fonksiyona sadece bir tane parametre geliyorsa  bu durumda
    // parantez kullanmaya gerek yoktur. Yani parametreler icin (,) ve sayet tek satirdan oluşan bir
    // fonskiyon gövdeniz varsa {,} kullanilmayabilir.
    ///////////////////////////////////////////////////////////////////////////////////////////////
    const karesiniAl=(sayi)=>{ return sayi*sayi};
    const karesiniAl2=sayi=> { return sayi*sayi};
    const karesiniAl3=sayi=> sayi*sayi;
    console.log("5 in karesi = " + karesiniAl(5));
    console.log("7 in karesi = " + karesiniAl(7));
    console.log("13 in karesi = " + karesiniAl(13));
    
    //G. ISTEGE BAGLI PARAMETRELER ////////////////////////////////////////////////////////////////
    //karesiniAl() fonksiyonunu alakasiz parametreler ile cagiralim bu durumda "merhaba" ve 500
    //görmezden gelinecektir.
    console.log(karesiniAl(4,"merhaba",500));
    //veya fonskiyonu eksik parametre ile cagiralim
    function cikartma(sayi1,sayi2){
        if(sayi2== undefined)return(-sayi1);
        else return(sayi1-sayi2);
    };
    //simdi fonksiyonumuzu cagiralim
    console.log(cikartma(10,4));
    //simdi ise eksik parametre ile cagiralim
    console.log(cikartma(10));
    //H. KENDINI CAGIRAN FONKSIYONLAR (RECURSIVE)
    //bu tip fonksiyonlara ornek olarak sinifimizda genellike faktoriyel ornegini yazariz ama bu defa
    //farklı bir ornek yazmak istiyorum. 
    function ustelKuvvet(taban, us) {
        if (us == 0) {
            return 1;
        } else {
            return taban * ustelKuvvet(taban, us-1);
        }
    };
    //simdi fonksiyonumuzu cagiralim
    console.log("2 nin 5. kuvveti = " + ustelKuvvet(2, 5));    
</script>