Recursive Functions – Öz yinemeli -Kendi Kendini Çağıran Fonksiyonlara Örnekler ve Animasyonla anlatım
Kendi kendini çağıran fonksiyonları yazarken, aklınıza döngüler getiriniz.
Bir döngüde; başlangıç, bitiş koşulu ve artım(+-) gereklidir. Burada da bunlar geçerli olacak.
Tekrarlayan yapıları bildiğimiz gibi For/While gibi döngülerle yapılabilmektedir. Tekrarlı yapıları Recursive fonksiyon olarak da yazmak mümkündür. Recursive fonksiyonları içinde for/while yazmayınız, yazarsanız recursive mantığından uzaklaşıp, normal programlamaya girmiş olursunuz. İlk örneğimizi yazalım. Python ile yazdığımız aşağıdaki kodu diğer dillere uyarlamak zor olmasa gerek.
Örnek: x den 1 e kadar olan sayıları ekrana yazdıran recursive fonksiyon yapınız. Burada x=3 yerine istediğiniz sayıda olabilir. Animasyon kısa ve anlaşılır olsun diyerek 3 alındı.
def yaz(x): if x<=0: return 0 print(x) return yaz(x-1) print (yaz(4))
Animasyon
Örnek: 1 den x kadar olan sayıların toplamını recursive fonksiyonla yazalım. Burada x=3 alalım. Amaç 1+2+3 bulmak. Peki 3+2+1 de aynı sonucu verecektir. Azalan olarak recursive fonksiyon yazmak daha kolay olacaktır.
def topla(x): if x<=0: return 0 return x + topla(x-1) print (topla(3))
Animasyon
Burada başlangıç 3, artım durumu x-1 ve x<=0 çıkış koşulu olacaktır. Çıkış koşulunda “return 0” ifadesi, yazılan fonksiyona göre önemlidir. Eğer toplama yada çıkarma yapılan fonksiyonlarda “return 0” sıfır döndürmesi normal olurken, eğer çarpma yada bölme yapılan fonksiyonlarda “return 0″ yazılırsa sonucu etkiler. Bu durumda “return 1″ yazılması gerekebilir.
Şimdide çarpma işlemi için faktöriyel bulan recursive fonksiyonunu yazalım. Burada çıkış koşulunda “return 1” yazmamız gerektiği görülecektir. Eğer “return 0” yazılırsa sonuç sıfır olacaktır.
Örnek: x! faktöriyel değerini hesaplayan recursive fonksiyonu python dilinde yazalım ve çalışmasını da videomuzda canlandıralım.
def faktoriyel(x): if x==0: return 1 return x * faktoriyel(x-1) print (faktoriyel(3))
Animasyon