exploit paylaşım grubumuz: t.me/HTTPwnn

mala anlatır gibi C 6 (Fonksiyonlar)

Katılım
16 Haz 2026
Mesaj
111
Reaksiyon
83
xentr_thread_starter
╔════════════════════════════════════════════════════════════════════╗
║ C PROGRAMLAMA DİLİ EĞİTİM SERİSİ #6 ║
║ FONKSİYONLAR ║
║ (Mala Anlatır Gibi) ║
╚════════════════════════════════════════════════════════════════════╝

Önceki bölümlerde değişkenleri, operatörleri, karar yapılarını ve döngüleri öğrendik.

Artık program yazabiliyoruz.

Ama program büyüdükçe yeni bir sorun ortaya çıkıyor.

Kod karmaşası.

Örneğin:

Bir hesap makinesi yaptığını düşün.

Toplama işlemini 20 farklı yerde kullanıyorsun.

Her seferinde aynı kodları tekrar tekrar yazarsan:

• Kod uzar
• Hata yapma ihtimalin artar
• Düzenleme yapmak zorlaşır
• Program profesyonellikten uzaklaşır

İşte bu noktada fonksiyonlar devreye girer.

════════════════════════════════════════════════════════════════════

► FONKSİYON NEDİR?

Fonksiyon belirli bir görevi yerine getiren kod bloğudur.

Gerçek hayat örneği:

Kahve makinesi düşün.

Sen düğmeye basıyorsun.

Makine:

• Suyu ısıtıyor
• Kahveyi hazırlıyor
• Bardağa dolduruyor

Sen bunların hiçbirini tek tek yapmıyorsun.

Sadece komut veriyorsun.

Programlamada da durum aynıdır.

Örnek:

selamVer();

Bu satır çalıştığında bilgisayar gidip ilgili işi yapar.

════════════════════════════════════════════════════════════════════

► MAİN DE BİR FONKSİYONDUR

Şimdiye kadar sürekli gördüğümüz:

int main()
{
return 0;
}

aslında bir fonksiyondur.

Program ilk olarak main fonksiyonundan başlar.

Tüm programların giriş noktası burasıdır.

════════════════════════════════════════════════════════════════════

► İLK FONKSİYONUMUZ

#include <stdio.h>

void selamVer()
{
printf("Merhaba Dunya\n");
}

int main()
{
selamVer();

return 0;

}

ÇIKTI

Merhaba Dunya

Fonksiyon çağrıldı.

İçindeki kod çalıştı.

İşlem tamamlandı.

════════════════════════════════════════════════════════════════════

► VOID NEDİR?

Yeni başlayanların gözünü korkutan kelimelerden biridir.

Aslında anlamı çok basittir.

void = hiçbir şey döndürmeyeceğim

Örnek:

void mesaj()
{
printf("Merhaba");
}

Bu fonksiyon sadece ekrana yazı yazıyor.

Bir sonuç geri göndermiyor.

Bu yüzden void kullanılıyor.

════════════════════════════════════════════════════════════════════

► FONKSİYON ÇAĞIRMA

Fonksiyon tanımlamak başka şeydir.

Fonksiyonu çalıştırmak başka şeydir.

Tanımlama:

void selamVer()
{
printf("Merhaba");
}

Çağırma:

selamVer();

Tanımladığın halde çağırmazsan çalışmaz.

Bu yeni başlayanların sık yaptığı hatalardan biridir.

════════════════════════════════════════════════════════════════════

► PARAMETRE NEDİR?

Şimdi fonksiyonları güçlendirelim.

Bir pizza siparişi düşün.

pizzaYap();

yazarsan hangi pizza?

Kaşarlı mı?

Sucuklu mu?

Karışık mı?

Bilgi göndermen gerekir.

İşte fonksiyona gönderilen bilgilere parametre denir.

Örnek:

void selamVer(char isim[])
{
printf("Merhaba %s\n", isim);
}

Kullanım:

selamVer("Ahmet");
selamVer("Mehmet");
selamVer("Ayse");

ÇIKTI

Merhaba Ahmet
Merhaba Mehmet
Merhaba Ayse

Aynı fonksiyon.

Farklı veri.

Farklı sonuç.

════════════════════════════════════════════════════════════════════

► SAYI PARAMETRESİ

void kareAl(int sayi)
{
printf("%d\n", sayi * sayi);
}

kareAl(5);

ÇIKTI

25

Çünkü:

5 x 5 = 25

════════════════════════════════════════════════════════════════════

► BİRDEN FAZLA PARAMETRE

void topla(int a, int b)
{
printf("%d\n", a + b);
}

Kullanım:

topla(10,20);

ÇIKTI

30

Birden fazla bilgi gönderebilirsin.

Bu çok yaygın kullanılır.

════════════════════════════════════════════════════════════════════

► RETURN NEDİR?

Şimdi işin önemli kısmına geldik.

Bazı fonksiyonlar sadece işlem yapmaz.

Sonucu geri de verir.

Örnek:

int topla(int a, int b)
{
return a + b;
}

Buradaki return şunu söyler:

"Hesapladığım sonucu geri gönderiyorum."

════════════════════════════════════════════════════════════════════

► RETURN NASIL ÇALIŞIR?

#include <stdio.h>

int topla(int a, int b)
{
return a + b;
}

int main()
{
int sonuc;

sonuc = topla(5,7);

printf("%d", sonuc);

return 0;
}

ÇIKTI

12

Adım adım:

  1. topla(5,7) çağrılır
  2. Fonksiyon içine girilir
  3. 5 + 7 hesaplanır
  4. return 12 çalışır
  5. Sonuç geri döner
  6. sonuc değişkenine atanır
  7. Ekrana yazdırılır
════════════════════════════════════════════════════════════════════

► RETURN GELDİĞİNDE NE OLUR?

int test()
{
return 5;

printf("Merhaba");
}

Buradaki printf çalışmaz.

Çünkü return fonksiyonu sonlandırır.

Bu çok önemli bir kuraldır.

════════════════════════════════════════════════════════════════════

► YEREL DEĞİŞKENLER

void test()
{
int x = 10;
}

Buradaki x değişkeni sadece bu fonksiyonun içinde yaşar.

Fonksiyon bittiği anda yok olur.

Buna local variable yani yerel değişken denir.

════════════════════════════════════════════════════════════════════

► GLOBAL DEĞİŞKENLER

#include <stdio.h>

int sayi = 100;

void yazdir()
{
printf("%d\n", sayi);
}

int main()
{
yazdir();

return 0;
}

Buradaki sayi değişkeni tüm fonksiyonlardan erişilebilir.

Buna global değişken denir.

Ancak profesyonel projelerde gereksiz global kullanımından kaçınılır.

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - KARE HESAPLAMA

#include <stdio.h>

int kare(int sayi)
{
return sayi * sayi;
}

int main()
{
printf("%d", kare(8));

return 0;
}

ÇIKTI

64

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - EN BÜYÜK SAYI

int buyukBul(int a, int b)
{
if(a > b)
{
return a;
}

return b;
}

Kullanım:

printf("%d", buyukBul(15,20));

ÇIKTI

20

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - ÇİFT SAYI KONTROLÜ

int ciftMi(int sayi)
{
if(sayi % 2 == 0)
{
return 1;
}

return 0;
}

Kullanım:

if(ciftMi(8))
{
printf("Cift");
}

ÇIKTI

Cift

════════════════════════════════════════════════════════════════════

► YENİ BAŞLAYANLARIN HATALARI

HATA 1

int topla()
{
printf("10");
}

int döndürmesi gerekirken hiçbir şey döndürmüyor.

HATA 2

void test()
{
return 5;
}

void fonksiyon değer döndüremez.

HATA 3

topla(5);

Ama fonksiyon:

int topla(int a, int b)

şeklinde tanımlanmış.

Bir parametre eksik gönderilmiş.

════════════════════════════════════════════════════════════════════

► BÖLÜM ÖZETİ

Bu bölümde:

✓ Fonksiyon nedir
✓ main fonksiyonu
✓ void kullanımı
✓ Parametreler
✓ return mantığı
✓ Yerel değişkenler
✓ Global değişkenler
✓ Fonksiyon çağırma
✓ Mini projeler

konularını öğrendik.

Bir sonraki bölümde Diziler (Arrays) konusuna geçeceğiz ve yüzlerce veriyi tek bir yapı altında saklamayı öğreneceğiz.
 
╔════════════════════════════════════════════════════════════════════╗
║ C PROGRAMLAMA DİLİ EĞİTİM SERİSİ #6 ║
║ FONKSİYONLAR ║
║ (Mala Anlatır Gibi) ║
╚════════════════════════════════════════════════════════════════════╝

Önceki bölümlerde değişkenleri, operatörleri, karar yapılarını ve döngüleri öğrendik.

Artık program yazabiliyoruz.

Ama program büyüdükçe yeni bir sorun ortaya çıkıyor.

Kod karmaşası.

Örneğin:

Bir hesap makinesi yaptığını düşün.

Toplama işlemini 20 farklı yerde kullanıyorsun.

Her seferinde aynı kodları tekrar tekrar yazarsan:

• Kod uzar
• Hata yapma ihtimalin artar
• Düzenleme yapmak zorlaşır
• Program profesyonellikten uzaklaşır

İşte bu noktada fonksiyonlar devreye girer.

════════════════════════════════════════════════════════════════════

► FONKSİYON NEDİR?

Fonksiyon belirli bir görevi yerine getiren kod bloğudur.

Gerçek hayat örneği:

Kahve makinesi düşün.

Sen düğmeye basıyorsun.

Makine:

• Suyu ısıtıyor
• Kahveyi hazırlıyor
• Bardağa dolduruyor

Sen bunların hiçbirini tek tek yapmıyorsun.

Sadece komut veriyorsun.

Programlamada da durum aynıdır.

Örnek:

selamVer();

Bu satır çalıştığında bilgisayar gidip ilgili işi yapar.

════════════════════════════════════════════════════════════════════

► MAİN DE BİR FONKSİYONDUR

Şimdiye kadar sürekli gördüğümüz:

int main()
{
return 0;
}

aslında bir fonksiyondur.

Program ilk olarak main fonksiyonundan başlar.

Tüm programların giriş noktası burasıdır.

════════════════════════════════════════════════════════════════════

► İLK FONKSİYONUMUZ

#include <stdio.h>

void selamVer()
{
printf("Merhaba Dunya\n");
}

int main()
{
selamVer();

return 0;

}

ÇIKTI

Merhaba Dunya

Fonksiyon çağrıldı.

İçindeki kod çalıştı.

İşlem tamamlandı.

════════════════════════════════════════════════════════════════════

► VOID NEDİR?

Yeni başlayanların gözünü korkutan kelimelerden biridir.

Aslında anlamı çok basittir.

void = hiçbir şey döndürmeyeceğim

Örnek:

void mesaj()
{
printf("Merhaba");
}

Bu fonksiyon sadece ekrana yazı yazıyor.

Bir sonuç geri göndermiyor.

Bu yüzden void kullanılıyor.

════════════════════════════════════════════════════════════════════

► FONKSİYON ÇAĞIRMA

Fonksiyon tanımlamak başka şeydir.

Fonksiyonu çalıştırmak başka şeydir.

Tanımlama:

void selamVer()
{
printf("Merhaba");
}

Çağırma:

selamVer();

Tanımladığın halde çağırmazsan çalışmaz.

Bu yeni başlayanların sık yaptığı hatalardan biridir.

════════════════════════════════════════════════════════════════════

► PARAMETRE NEDİR?

Şimdi fonksiyonları güçlendirelim.

Bir pizza siparişi düşün.

pizzaYap();

yazarsan hangi pizza?

Kaşarlı mı?

Sucuklu mu?

Karışık mı?

Bilgi göndermen gerekir.

İşte fonksiyona gönderilen bilgilere parametre denir.

Örnek:

void selamVer(char isim[])
{
printf("Merhaba %s\n", isim);
}

Kullanım:

selamVer("Ahmet");
selamVer("Mehmet");
selamVer("Ayse");

ÇIKTI

Merhaba Ahmet
Merhaba Mehmet
Merhaba Ayse

Aynı fonksiyon.

Farklı veri.

Farklı sonuç.

════════════════════════════════════════════════════════════════════

► SAYI PARAMETRESİ

void kareAl(int sayi)
{
printf("%d\n", sayi * sayi);
}

kareAl(5);

ÇIKTI

25

Çünkü:

5 x 5 = 25

════════════════════════════════════════════════════════════════════

► BİRDEN FAZLA PARAMETRE

void topla(int a, int b)
{
printf("%d\n", a + b);
}

Kullanım:

topla(10,20);

ÇIKTI

30

Birden fazla bilgi gönderebilirsin.

Bu çok yaygın kullanılır.

════════════════════════════════════════════════════════════════════

► RETURN NEDİR?

Şimdi işin önemli kısmına geldik.

Bazı fonksiyonlar sadece işlem yapmaz.

Sonucu geri de verir.

Örnek:

int topla(int a, int b)
{
return a + b;
}

Buradaki return şunu söyler:

"Hesapladığım sonucu geri gönderiyorum."

════════════════════════════════════════════════════════════════════

► RETURN NASIL ÇALIŞIR?

#include <stdio.h>

int topla(int a, int b)
{
return a + b;
}

int main()
{
int sonuc;

sonuc = topla(5,7);

printf("%d", sonuc);

return 0;
}

ÇIKTI

12

Adım adım:

  1. topla(5,7) çağrılır
  2. Fonksiyon içine girilir
  3. 5 + 7 hesaplanır
  4. return 12 çalışır
  5. Sonuç geri döner
  6. sonuc değişkenine atanır
  7. Ekrana yazdırılır
════════════════════════════════════════════════════════════════════

► RETURN GELDİĞİNDE NE OLUR?

int test()
{
return 5;

printf("Merhaba");
}

Buradaki printf çalışmaz.

Çünkü return fonksiyonu sonlandırır.

Bu çok önemli bir kuraldır.

════════════════════════════════════════════════════════════════════

► YEREL DEĞİŞKENLER

void test()
{
int x = 10;
}

Buradaki x değişkeni sadece bu fonksiyonun içinde yaşar.

Fonksiyon bittiği anda yok olur.

Buna local variable yani yerel değişken denir.

════════════════════════════════════════════════════════════════════

► GLOBAL DEĞİŞKENLER

#include <stdio.h>

int sayi = 100;

void yazdir()
{
printf("%d\n", sayi);
}

int main()
{
yazdir();

return 0;
}

Buradaki sayi değişkeni tüm fonksiyonlardan erişilebilir.

Buna global değişken denir.

Ancak profesyonel projelerde gereksiz global kullanımından kaçınılır.

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - KARE HESAPLAMA

#include <stdio.h>

int kare(int sayi)
{
return sayi * sayi;
}

int main()
{
printf("%d", kare(8));

return 0;
}

ÇIKTI

64

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - EN BÜYÜK SAYI

int buyukBul(int a, int b)
{
if(a > b)
{
return a;
}

return b;
}

Kullanım:

printf("%d", buyukBul(15,20));

ÇIKTI

20

════════════════════════════════════════════════════════════════════

► MİNİ PROJE - ÇİFT SAYI KONTROLÜ

int ciftMi(int sayi)
{
if(sayi % 2 == 0)
{
return 1;
}

return 0;
}

Kullanım:

if(ciftMi(8))
{
printf("Cift");
}

ÇIKTI

Cift

════════════════════════════════════════════════════════════════════

► YENİ BAŞLAYANLARIN HATALARI

HATA 1

int topla()
{
printf("10");
}

int döndürmesi gerekirken hiçbir şey döndürmüyor.

HATA 2

void test()
{
return 5;
}

void fonksiyon değer döndüremez.

HATA 3

topla(5);

Ama fonksiyon:

int topla(int a, int b)

şeklinde tanımlanmış.

Bir parametre eksik gönderilmiş.

════════════════════════════════════════════════════════════════════

► BÖLÜM ÖZETİ

Bu bölümde:

✓ Fonksiyon nedir
✓ main fonksiyonu
✓ void kullanımı
✓ Parametreler
✓ return mantığı
✓ Yerel değişkenler
✓ Global değişkenler
✓ Fonksiyon çağırma
✓ Mini projeler

konularını öğrendik.

Bir sonraki bölümde Diziler (Arrays) konusuna geçeceğiz ve yüzlerce veriyi tek bir yapı altında saklamayı öğreneceğiz.
eline sağlık
 
Geri
En Üst