/ Yazılım Dilleri/ C# .NET/ Ders 3 - Fonksiyonlar

#1 Ders 3 - Fonksiyonlar Okunma : 36
Yazan
2 ay önce yazıldı
Servet
Site Kurucusu
resim
Toplam Mesaj : 17
Kayıt Tarihi : 2019-05-06
8 defa değiştirildi. | En son Servet tarafından 2019-06-21 18:13:13 tarihinde değiştirildi.

3 – FONKSİYONLAR

Fonksiyonlar programlama dillerinde bir değişkende tutulamayacak işlemler topluluğunu tutmak için kullanılır. Örneğin; int a=1; şeklinde a değişkeninde sayı değerini tutabiliriz ve a değişkenini 1 sayısal değerini kullanmak istediğimiz yerlerde çağırarak kullanabiliriz ve 1 değeri yerine 4 kullanmak istersek sadece a değişkeninin değerini a=4; şeklinde değiştirmemiz yeterli olacaktır.

Peki, iki sayının toplamlarının karesi yani (a+b)^2 şeklinde bir işlem yapmak isteyelim ve bu işlemi birden fazla yerde kullanmamız gereksin. Sonra ise karesi değil de küpünü almak istersek bir de üstüne a+b değerini eklemek istersek yani işlemin (a+b)^3+(a+b)  şeklinde olmasını istersek bunu her yerde değiştirebilmek arada gözlerimizden kaçan kodlar olmasına sebep olabilir. Ya da örneğimizdeki gibi tek satır kod yerine diyelim 100 satırlık bir kod olsun ve bu kod 1000 tane yerde kullanılsın. Sonra ise 100 satırlık kodun birkaç yerinde değişiklik yapmamız gereksin. 1000 tane tekrarlı yerde bu değişiklikleri bulup düzeltmek hem gözden kaçan kısımlardan dolayı hatalara sebep olur hem de zaman kaybı olur.

Peki, biz bu 100 satır kodu bir kere yazıp bir yerde tutsak ve kullanacağımız 1000 yerde de tuttuğumuz yerden çağırıp kullansak ve değişiklik yapacağımız zaman 100 satır kodun tutulduğu yerde değişiklik yapsak nasıl olur?  İşte burada fonksiyonlar devreye giriyor. Fonksiyonları değişkenlerin gelişmiş bir çeşidi olarak düşüne biliriz. Mantık olarak aynı şekilde sadece fonksiyonlarda değer yerine kod parçalarını tutuyoruz.

Fonksiyonların tanımlanma şekli;

[fonksiyon_tipi] [fonksiyon_adı] ([varsa_fonksiyon_girdileri])

                {

                               ….

                               Fonksiyon içinde yapılacaklar buraya yazılır.

                               ….

                }


Değişken tanımla kuralları fonksiyon adı yazarken de geçerlidir. Bir kodun fonksiyon olup olmadığını anlamanın en basit yolu kodda “(“ ve “)” operatörlerinin olup olmadığına bakmaktır. Araları boş veya dolu oldun “(“ ve “)” varsa o kod bir fonksiyondur.

Fonksiyonlar da değişkenler gibi tiplerin olabilir. Ve fonksiyonlara özel “void” yani “boş” anlamında bir fonksiyon tipi vardır. “void”i daha iyi anlamak için önce fonksiyon çeşitlerini öğrenelim. Dört farklı fonksiyon çeşidi vardır. Bunlar örnekleri ile birlikte;

  1. Değer almayan değer döndürmeyen:  Dışarıdan herhangi bir değer almaz ve dışarıya bir değer döndürmez.

void deneme1()

{

                label1.text=”bu bir denemedir”;

}

  1. Değer alan değer döndürmeyen: Dışarıdan en az bir değer alır ama dışarıya bir değer döndürmez.

void deneme2(int a)

{

                label1.text=”a^4 = ”+(a^4).ToString();

}

  1. Değer almayan değer döndüren: Dışarıdan herhangi bir değer almaz ama dışarıya değer döndürür.

string deneme3()

{

                return “bu bir deneme metnidir.”;

}

  1. Değer alan değer döndüren: Dışarıdan en az bir değer alır ve dışarıya değer döndürür.

int deneme4(int a, int b)

{

                return (a+b)^2;

}

 

Görüldüğü üzere “void” fonksiyon tipi 1 ve 2’deki gibi dışarı değer döndürmeyen fonksiyonların tiplerini belirtmek için kullanılıyor. 3 ve 4’e bakacak olursak değer döndüren fonksiyonların döndürdüğü değer türünden fonksiyon tipi aldığı görülmektedir.

Verilen örneklerdeki bazı kodlar açıklayacak olursak 1 ve 2’de kullanılan “label1.Text” kodu Visual Studio Windows Form nesnelerinin anlatımında açılanacaktır. “ ”a^4 = ”+(a^4); ” kodu string türündedir.  Operatörler konusunda “+” operatörünün stringlerde birleştirme matematiksel işlemlerde ise toplama anlamına geldiğini söylemiştik. ”a^4 = ” ifadesi bir stringtir, (a^4) ifadesi ise int türünde bir değerdir. C#’ta matematikte olduğu gibi kodlarda da parantez içleri önceliklidir. Yani önce (a^4) ifadesinin sonucunu buluyor, sonra bunu ”a^4 = ” string ifadesinin sonuna ekliyor. “ToString()”  fonksiyonu özel fonksiyonlar kısmında açıklanacaktır. 3 ve 4’te kullanılan “return” ifadesi ise fonksiyonlarda geriye değer döndürmek için kullanılan özel bir ifadedir.  Geri döndürülen değerin fonksiyonun tipinde olmasına dikkat edilmesi gerekmektedir.

Yazılan fonksiyonları nasıl kullanacağımıza gelirsek;

Değer döndürmeyen fonksiyonlar için sadece fonksiyonun adının yazılması yeterli olacaktır.

deneme1();

deneme2(4);

Değer döndüren fonksiyonlar iki şekilde kullanılabilir.

  • Fonksiyonun tipinden bir değişkene atanarak;

string metin=deneme3();

 int sayi = deneme4(4, 6);

  • Değer döndürmeyen fonksiyon şeklinde;

bu şekilde kullanıldığı zaman dikkat edilmesi gereken nokta geri dönen değeri alabilecek bir değişken olmadığından “return” ifadesi ile geri döndürülmeye çalışılan değer haricindeki kodlar çalışacaktır, özel fonksiyonlar konusunda bu durumla ilgili bir istisna anlatılacaktır.

deneme3();

 deneme4(4, 6);

C#’ta tanımlı fonksiyonları ben özel fonksiyonlar olarak isimlendiriyorum. Bunları;

şeklinde 3 başlıkta topluyacağım.


KIZIL EJDER FORUMU

Servet ÖKSÜZ

Yazılım Mühendisi

Fırat Üniversitesi 2018 Mezunu