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


         Merhaba, şimdi de derslerimizde sizlerle sık sık function şeklinde başlayan tanımlamalardan yani fonksiyonlardan kısaca ve mümkün olduğu kadar basit örneklerle bahsedeceğim ki sizler derslerimizde bunlardan çok daha karmaşık fonksiyonları yazmıştınız. Fonksiyonlar kabaca aynı işlemi farklı veriler üzerinde tekraren gerçekleştirmek ya da aynı işlemi program akışı içerisinde farklı noktalarda tekrarlamak gereken durumlarda kullandığımız yapılardır. Temelde her fonksiyonun bir adı ve duruma göre aldığı ve yine duruma göre geri döndürdüğü/döndürebileceği parametreleri vardır. Aynen matematikte olduğu gibi parametre girişlerimiz var fonksiyon olarak isimlendirdiğimiz yapı bunlar üzerinde bizim istediğimiz komutları işletiyor ve işlem sonunda da bir çıktı ya da bir geri dönüş değeri üretiyor. Burada iki noktaya dikkat etmememiz gerekiyor:

  1. Fonskiyon adı tek/benzersiz olmalıdır ve bu adı belirlerken değişken isimledirme kurallarına burada da uymak zorundayız.
  2. Fonksiyonun tanımlandığı yer ki ona olan erişilebilirliği belirleyecektir.

        Fonksiyonlar konusunu birkaç bölümde inceleyeceğiz ilk bölüme ait kodları ve açıklamaları okuyarak konuyu kavramaya çalışabilirsiniz. Unutmayın sizler yıl içerisinde bunlardan çok daha karmaşık örnekler ile muhatap oldunuz. Şimdiden sizlere kolay gelsin diyorum. Mutlu kodlama günleri dilerim.

<title>..:: Fonksiyonlar Bölüm-1 ::..</title>
<meta name="generator" content="Geany 1.32" />
<script language="javascript" type="text/javascript">
    //Dikkat! Fonksiyonlar isimlendirillirken degisken isimlendirme kullarina riayet ediyoruz
    //A. Hiç bir parametre almayan ve geriye hiçbir şey döndürmeyen bir fonksiyon yazalim
    //A-1. yontem
    const selamlama=function(){
        console.log("Merhaba acaba evreni kim? Hangi dilde kodladi?");
    }
    //simdim fonskiyonumuz cagiralim
    selamlama();  
    //A-2. yontem
    function ilgincSorular(){
        console.log("Sadece 5 duyu organı ile algılayabildiğimiz kadar bildiğimiz evren gerçekte nasıl bir yer?");
    }
    //simdim fonskiyonumuz cagiralim
    ilgincSorular();    
    //B. Kendisine verilen sayinin karesini hesaplayan fakat deger dondurmeyen  fonksiyon tanimliyoruz
    //B-1. yontem
    const karesiAl=function(sayi){
        console.log(sayi*sayi);
    }
    //fonskiyon 10 için cagriliyor
    karesiAl(10);

    //B-2. yontem
    function karesiniHesapla(sayi){
        console.log(sayi*sayi);
    }
    //fonksiyon 5 icin cagirliyor
    karesiniHesapla(5);
    //C. Kendisine verilen yaricapa sahip dairenin  cevresini hesaplayan ve sonucu döndüren fonksiyon yaziyoruz
    //geriye deger donduren fonksiyonlar tek baslarina cagrilip kullanilmamalidirlar ya bir deger atama ya da bir
    //baska islem icin parametre olarak bir baska fonskiyon icinde kullanilmalidirlar. Bunu unutmuyoruz :)
    //C-1: Dikkat edin lutfen yazdigimiz fonksiyon console.log() icinde kullanilmaktadir.
    const cevre=function(yCap){
        return(2* Math.PI*yCap);
    }
    console.log("1.yöntem: Yarıçapı 5 cm olan dairenin çevresi=" + cevre(5) + " 'dir");
    //C-2: Ayni islemi farkli bir bicimde yazalim yazdigimiz fonksiyon console.log() icinde kullanilmaktadir.
    function cevreHesapla(yCap){
        return(2* Math.PI*yCap);
    }
    console.log("2.yöntem: Yarıçapı 5 cm olan dairenin çevresi=" + cevreHesapla(5) + " 'dir");
    //Dikkat! Aşağıdaki gibi bir tanımlama yapmamalisiniz yani surekli birbiri cagiran yapilardan uzak durmalısınız
    // zira bu anlamsız bir kisir dongu olusturucaktir.
    const tavuk=function(){
        console.log("Tavuk mu yumurtadan çıkmıştır?");
        yumurta();
    }
    const yumurta=function(){
        console.log("Yumurta mı tavuktan çıkmıştır?");
        tavuk();
    }
    //simdi sacma kisir donguyu tetikleyelim. Bu durum web tarayıcınızı cevap veremez hale getirecektir.
    //tavuk();
    //D. Fonksiyonda kullandiginiz parametreler sadece o fonksiyonda gecerli olacaktır
    //deger olarak degiskene dikkat edin lutfen
    const ikiKati=function(deger){
        return(2*deger);
    }
    let deger=100;
    console.log("300 ün iki katı =" +ikiKati(300));
    //simdi degerin sakladigi bilgiyi yazdiralim ve sakladigi bilginin degismedigi gorelim
    console.log("deger=" + deger.toString());
    //E. Fonksiyonlar ic ice kullanilabilirler bu durumda en ustte tanimlanan fonksiyonda 
    // kullandiginiz parametreler o fonksiyon icinde tanimlana diger fonksiyonlarda da 
    // gecerlidirler ve kullanilabilirler nitekim kenar parametresi
    // hesapla() icindeki alanHacim() fonksiyonunda da kullanilmistir.
    const hesapla = function(kenar) {
        const alanHacim = function() {
            console.log("Yüzey alanı=" + (6*kenar*kenar));
            console.log("Hacmi=" + (kenar*kenar*kenar));
        }
        alanHacim();
    }
    //kupun yuzey alanini ve hacmini hesaplatiyoruz
    hesapla(10);
</script>