Files
ornekler/dersler/19-fonksiyonlar.md
T
semih 494781e84f Dersler ve Temeller; web örnekleri PORT ortam değişkenini okur
- dersler/: 29 kısa ders (açıklama, çalıştırılabilir örnek, alıştırma). Her örneğin
  ve alıştırma çözümünün çıktısı Online IDE'nin hazırlık adımında gerçekten koşulup
  dosyadakiyle karşılaştırılır; biçim dersler/BICIM.md.
- temeller/: tek konulu 12 başlangıç programı.
- web/anket, web/kisalt, web/pano: port PORT ortam değişkeninden okunur (Online IDE
  önizlemesi 8080 verir), yoksa eski sabit port.
- README: öğrenme bölümü, Online IDE bağlantısı.
2026-10-17 22:07:47 +03:00

3.6 KiB

baslik, bolum, ozet
baslik bolum ozet
Fonksiyon tanımlama Fonksiyonlar Bir işi adlandırıp istediğin kadar çağırmak

Aynı kodu programın üç yerinde yazıyorsan, bir yerde hata yaptığında üç yerde düzeltmen gerekir. Fonksiyon, bir işi yapan ve bir adı olan kod bloğudur: bir kez yazarsın, istediğin kadar çağırırsın.

İlk fonksiyonun

Tanım fonksiyon ad(): ile başlar; gövdesi girintilidir. Fonksiyon tanımlandığında çalışmaz, çağrıldığında çalışır.

fonksiyon ayrac():
    yazdir("─".tekrarla(20))

ayrac()
yazdir("Günün menüsü")
ayrac()
────────────────────
Günün menüsü
────────────────────

Parametre almak

Parantez içine yazdığın ad bir parametredir. Çağırırken verdiğin değer onun yerine geçer.

fonksiyon selamla(ad):
    yazdir(f"Merhaba {ad}, hoş geldin.")

selamla("Zeynep")
selamla("Mehmet")
Merhaba Zeynep, hoş geldin.
Merhaba Mehmet, hoş geldin.

Birden çok parametre virgülle ayrılır; değerler aynı sırayla verilir.

fonksiyon fis_satiri(urun, adet, fiyat):
    yazdir(f"{urun:<10}{adet:>3} x {fiyat:>6.2f}")

fis_satiri("Ekmek", 2, 12.5)
fis_satiri("Peynir", 1, 149.0)
Ekmek       2 x  12.50
Peynir      1 x 149.00

Değer döndürmek: don

don sonucu çağıran yere geri verir. Dönen değeri bir değişkene atayabilir ya da doğrudan kullanabilirsin.

fonksiyon kare(x):
    don x * x

alan = kare(7)
yazdir(alan)
yazdir(kare(3) + kare(4))
49
25

don fonksiyonu orada bitirir; altındaki satırlar çalışmaz. Cevap belli olduğu anda çıkmak kodu sadeleştirir.

fonksiyon not_harfi(puan):
    eger puan >= 85:
        don "AA"
    eger puan >= 70:
        don "BA"
    eger puan >= 50:
        don "CC"
    don "FF"

yazdir(not_harfi(92))
yazdir(not_harfi(74))
yazdir(not_harfi(31))
AA
BA
FF

Fonksiyon fonksiyonu çağırabilir

fonksiyon cift_mi(n):
    don n % 2 == 0

fonksiyon ciftleri_yaz(son):
    dongu i icinde 1..son:
        eger cift_mi(i):
            konsol.yaz(f"{i} ")
    yazdir()

ciftleri_yaz(12)
2 4 6 8 10 12

Dikkat: Fonksiyonun içinde, programın başka bir yerinde kullandığın değişken adlarını kullanmamaya özen göster; her fonksiyonun içinde kendine özgü adlar seç. İyi bir alışkanlık da şudur: fonksiyonlarını dosyanın başına yaz, programın asıl işini altlarına koy.

Gerçek bir örnek

fonksiyon kdvli(fiyat):
    don fiyat * 1.20

fonksiyon fiyat_yaz(urun, fiyat):
    yazdir(f"{urun}: {fiyat:.2f} TL (KDV dahil {kdvli(fiyat):.2f} TL)")

fiyat_yaz("Kulaklık", 850.0)
fiyat_yaz("Kılıf", 120.0)
Kulaklık: 850.00 TL (KDV dahil 1020.00 TL)
Kılıf: 120.00 TL (KDV dahil 144.00 TL)

Alıştırma

`cevre(en, boy)` adında, bir dikdörtgenin çevresini döndüren bir fonksiyon yaz. Sonra `cevre(5, 3)` ve `cevre(10, 10)` sonuçlarını ayrı satırlarda yazdır.
%%%
# buraya yaz

yazdir(cevre(5, 3))
yazdir(cevre(10, 10))
%%%
fonksiyon cevre(en, boy):
    don 2 * (en + boy)

yazdir(cevre(5, 3))
yazdir(cevre(10, 10))
%%%
16
40
`buyuk_olan(a, b)` adında, iki sayıdan büyük olanı döndüren bir fonksiyon yaz. Sonra onu kullanarak üç sayının en büyüğünü bulup yazdır.
%%%
# buraya yaz

yazdir(buyuk_olan(buyuk_olan(14, 27), 9))
%%%
fonksiyon buyuk_olan(a, b):
    eger a > b:
        don a
    don b

yazdir(buyuk_olan(buyuk_olan(14, 27), 9))
%%%
27