Konu Anlatımı
Fonksiyonlar
Fonksiyonlar, belirli bir görevi yerine getiren yeniden kullanılabilir kod bloklarıdır. Kod tekrarını önler, okunabilirliği artırır.
Fonksiyon Tanımlama
Function Declaration: function fonksiyonAdi(parametreler) { gövde } Function Expression: const fonksiyonAdi = function(parametreler) { gövde } Arrow Function: const fonksiyonAdi = (parametreler) => { gövde }
Parametreler ve Argümanlar
Parametreler fonksiyon tanımlanırken belirlenir. Argümanlar fonksiyon çağrılırken verilen değerlerdir. Varsayılan parametreler: function fn(x = 10) {}.
return İfadesi
return, fonksiyonun sonucunu döndürür ve fonksiyonu sonlandırır. return yazılmazsa undefined döner.
Scope (Kapsam)
Global Scope: Her yerden erişilebilir. Local/Fonksiyon Scope: Yalnızca fonksiyon içinde. Block Scope: {} içinde tanımlı let/const.
Callback Fonksiyonlar
Bir fonksiyona diğer fonksiyonun argüman olarak geçirilmesi. Array.map(), Array.filter(), Array.reduce() gibi yüksek seviyeli fonksiyonlarda yaygın kullanılır.
Fonksiyon Tanımı ve Çağrısı
Fonksiyon (yordam), belirli bir işi yapan ve gerektiğinde çağrılabilen kod bloğudur. Tanımı üç parçadan oluşur: dönüş tipi (geriye ne verileceği), fonksiyon adı ve parametre listesi (girdiler). Fonksiyon çağrılırken parantez içine gerçek (argüman) değerler yazılır; gövdede return ifadesi ile değer geri verilir ya da void ise yalnızca iş yapılır. Fonksiyon kullanmanın temel kazanımları kod tekrarını önlemek, programı parçalara ayırmak ve hatanın tek noktada toplanmasını sağlamaktır.
Parametre, Argüman ve Kapsam
- Parametre tanımdaki yer tutucudur (int a, int b), argüman ise çağrıda gönderilen gerçek değerdir (topla(3, 5)).
- Değer iletimi (by value) yollanırsa fonksiyon içindeki değişiklik çağıranı etkilemez; referans iletimi (by reference) ile değişiklik geri yansır.
- Fonksiyon içinde tanımlanan değişkenler yerel (local)dir; blok bitince erişilemez. Global değişkenler her yerden görünür olur ve izlemeyi zorlaştırır.
- Kendi kendini çağıran fonksiyona özyineleme (recursive) denir; her özyinelemede taban (base) koşulu verilmelidir, aksi hâlde sonsuz çağrı olur.
Adım Adım Fonksiyon Tasarımı
- Yapılacak işi tek cümlede tanımla ve girdi-çıktıyı belirle.
- Dönüş tipini seç: sonuç döndürüyorsa int/double, yalnızca işlem yapıyorsa void.
- Gövdeyi yaz; mümkün olduğunca tek fonksiyonda tek iş yaptır.
- Çağır, dönen değeri kaydet ve örnek değerlerle hem fonksiyonu hem çağıran kısmı test et.
Örnek Uygulama
notOrt hesaplayan bir fonksiyon 3 sayı alıp ortalamayı döndürür: toplam = n1 + n2 + n3, geri dönüş = toplam / 3. Aynı işlem iki ayrı yerde gerekiyorsa kod iki kez yazılmaz, fonksiyon iki kez çağrılır; düzeltme tek yerde yapılır.
Sınav Odaklı Noktalar
Sınavlar çoğunlukla fonksiyonun kaç kez çağrıldığını, dönen değeri ve parametre-argüman farkını sorar. Özyineleme sorularında taban koşulu ve çağrı sayısını adım adım yazmak çözümü verir.
Ne Öğreneceğiz
Programlama Temelleri dersi kapsamında Fonksiyonlar konusu. Bu konuda ögrenme çıktıları:
- Fonksiyonlar ile ilgili temel kavramları açıklar.
- Fonksiyonlar konusunun Programlama Temelleri dersi içindeki yerini ve önemini belirtir.
- Konuyla ilgili araç, gereç ve malzemeleri amacına uygun seçer.
- İş sağlığı ve güvenliği kurallarına uygun çalışır.
- Öğrendiği bilgi ve becerileri atölye/iş yeri uygulamalarında kullanır.
Ön Bilgi
Bu konuya başlamadan önce temel kavram ve ön koşulları kavramanız yardımcı olacaktır. Konunun çerçevesinde şu kavramlar dikkat ister:
- Fonksiyonlar yeniden kullanılabilir kod bloklarıdır; kod tekrarını önler
- Arrow Function: const fn = (param) => { gövde } kısa yazım sağlar
- return fonksiyon sonucunu döndürür; yazılmazsa undefined döner
- Callback fonksiyonlar argüman olarak geçirilir; map, filter, reduce'ta kullanılır
- Fonksiyon tanımda parametre, çağrıda argüman kullanır.
- Return ifadesi fonksiyonu anında sonlandırır; ardındaki kod çalışmaz.
- Void fonksiyon değer döndürmez, yalnızca işlem yapar.
- Global değişken yerine parametre ile veri aktarmak hata riskini azaltır.
- Özyinelemede taban koşulu yoksa çağrı zinciri sonsuza dek uzar.
Basit Örnek ve Günlük Yaşam
Günlük yaşamda ve mesleki bağlamda bir uygulama:
Soru: toplam(a, b) fonksiyonu iki tam sayı parametresi alıp toplamını döndürür. Fonksiyonu tanımlayıp toplam(4, 7) çağrısının sonucunu bulunuz.
- Adım 1: Dönüş tipi int, adı toplam olan ve int a, int b parametreli fonksiyonu tanımla.
- Adım 2: Gövdede return a + b ifadesiyle sonucu geri döndür.
- Adım 3: Fonksiyonu toplam(4, 7) biçiminde çağır: 4 + 7 = 11 hesaplanır.
Sonuç/cevap: 11
Karşılaştırma Tablosu
| Kavram | Açıklama |
|---|
| Fonksiyonlar yeniden kullanılabilir kod | Fonksiyonlar yeniden kullanılabilir kod bloklarıdır; kod tekrarını önler |
| Arrow Function: const fn = (param) => | Arrow Function: const fn = (param) => { gövde } kısa yazım sağlar |
| return fonksiyon sonucunu döndürür; yazı | return fonksiyon sonucunu döndürür; yazılmazsa undefined döner |
| Callback fonksiyonlar argüman olarak geç | Callback fonksiyonlar argüman olarak geçirilir; map, filter, reduce'ta kullanılır |
| Fonksiyon tanımda parametre, çağrıda arg | Fonksiyon tanımda parametre, çağrıda argüman kullanır. |
| Return ifadesi fonksiyonu anında sonland | Return ifadesi fonksiyonu anında sonlandırır; ardındaki kod çalışmaz. |
| Void fonksiyon değer döndürmez, yalnızca | Void fonksiyon değer döndürmez, yalnızca işlem yapar. |
| Global değişken yerine parametre ile ver | Global değişken yerine parametre ile veri aktarmak hata riskini azaltır. |
| Özyinelemede taban koşulu yoksa çağrı zi | Özyinelemede taban koşulu yoksa çağrı zinciri sonsuza dek uzar. |
Sık Yapılan Hatalar
Fonksiyonlar ile ilgili kavramları birbirine karıştırmak: Temel kavramları tablo veya zihin haritasıyla ayırt et.
Uygulamada standartlara ve iş güvenliği kurallarına uymamak: Her adımda güvenlik ve kalite kurallarını uygula.
Kullanılan araç-gereci amacına uygun seçmemek ve bakımını ihmal etmek: Doğru ekipmanı seç, kullanım öncesi ve sonrası kontrol et.
Parametre ile argümanı karıştırmak: Tanımdaki adlar parametre, çağrıdaki gerçek değerler argümandır; sınavda ikisi aynı sorulduğanda sıra önemlidir.
Return sonrası kod yazmak: Return fonksiyonu bitirir; ardındaki işlemler çalışmaz ve gereksiz kod olarak kalır.
Özyinelemede taban koşulunu unutmak: Koşul sağlanmadığı sürece fonksiyon sonsuz kez çağrılır ve yığın taşması oluşur.
Özet
Fonksiyonlar, Programlama Temelleri dersi kapsamında ele alınan temel konulardan biridir. Fonksiyonlar yeniden kullanılabilir kod bloklarıdır; kod tekrarını önler Arrow Function: const fn = (param) => { gövde } kısa yazım sağlar return fonksiyon sonucunu döndürür; yazılmazsa undefined döner Callback fonksiyonlar argüman olarak geçirilir; map, filter, reduce'ta kullanılır Bu bilgiler uygulama ve iş güvenliği kurallarıyla birlikte pekiştirilmelidir.
Kendini Dene
Soru: Yönerge: Üç sayının ortalamasını bulan bir fonksiyon tasarla. Tasarımda fonksiyonun adını, parametrelerini, dönüş tipini ve return satırını yaz; tanımdaki parametre ile çağrıdaki argüman farkını bir örnekle göster; fonksiyon içindeki değişkenin kapsamını açıkladıktan sonra bu fonksiyonun kod tekrarını nasıl azalttığını iki cümleyle yaz.
Örnek cevap: Puanlama anahtarı: fonksiyon adı ve üç parametrenin yazılması 4 puan; dönüş tipinin ondalık sayı olarak yazılması 3 puan; return ile (a + b + c) / 3 işleminin yazılması 4 puan; parametre-argüman farkının çağrı örneğiyle yazılması 4 puan; yerel değişkenin blok içinde kalıp dışarıdan erişilemediğinin yazılması 3 puan; kod tekrarının azaldığının iki cümleyle açıklanması 2 puan. Toplam 20 puan. Model cevap: Fonksiyon üç parametre alır, ortalama döndürür; tanımda parametre, çağrıda argüman vardır, yerel değişken blokla sınırlıdır ve çağrı yerinde kod tekrarı önlenir.