Özyinelemeli fonksiyonlar(recursive)

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Onaylı Üye
Katılım
28 Mar 2019
Mesajlar
111
Çözümler
1
Tepki puanı
17
Ödüller
5
Yaş
29
7 HİZMET YILI
Merhaba arkadaşlar. Konuyu başlıktan anlayacağınız gibi bir miktar açıklamak istiyorum. Öncelikle şunu belirteyim boş yorumları repliyorum çünkü konuları kendi başıma herhangi bir yerden alıntı yapmadan uğraşarak yazıyorum. Gerçi konularımdan spammerları rep yağmuruyla nasıl savuşturduğumu forumdaki modlar daha iyi bilmekte :) neyse konuya dönelim. Özyinelemeli fonksiyon bir diğer adıyla recursive fonk adındanda anlaşılacağı üzere kendini çağırmak üzere tanımlaması yapılmakta hemen örnek üzerinde faktöriyel alan bir fonksiyon yaratalım.

C++:
int faktoriyelAl(int x)
{
if(x!=1)
return x*faktoriyelAl(x-1);
else
return 1;

}
int main()
{
    cout << faktoriyelAl(4);
}

hemen fonksiyonu anlatalım main'in içinde fonksiyona 4 değerini gönderdik
faktoriyelAl(4)=4*faktoriyelAl(3) // oldu çünkü x=1 olmadığı sürece bu şekilde döndürme yapıcaktır
faktoriyelAl(3)=3*faktoriyelAl(2)
faktoriyelAl(2)=2*faktoriyelAl(1)
faktoriyelAl(1)=1 // buraya çok dikkat x 1 oldu dolayısıyla if in içine girmicek else in içine giricek ve fonksiyonAl(1) değerini 1 olarak döndürecek değerleride yerine yazdıktan sonrası çok kolay


faktoriyelAl(2)=2*1 //fonksiyonAl(1) =1 di yerine yazdım
faktoriyelAl(3)=3*2 //faktoriyelAl(2)=2 oldu hemen yukarıdaki işlemden yerine yazdım
faktoriyelAl(4)=4*6 //faktoriyelAl(3)=6 oldu gene yukarıdaki işlemden ve faktoriyelAl(4) fonksiyonunun sonucunu 6*4=24 olarak bize döndürmüş oldu.

bu çok basit bir örnekti daha detaylı işlemler yapılabilir.
Öneri: Recursive fonksiyon kullanmak iyi birşey değildir tavsiye edilmez çünkü fonksiyonun sürekli ve sürekli çağırılması söz konusudur performansı olumsuz etkilemesi içten bile değildir.
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst