BİLİŞİM - BİLGİSAYAR - EĞİTİM
  Özyinelemeli (Recurcive) İşlevler
 

4.1 Özyineleme (Recursive) İşlevler:  Kendini çağıran fonksiyonlardır.

 

        Örnek 4.2.1: Faktoriyel hesabı

 

long fakt(long i)

/* fakt = i! */

{

  if (i<2)

     return 1;

  else

     return i*fakt(i-1);

}

 

Örneğin n=4 için fonksiyonun kendisini çağırdığı satır şöyledir:

 

       4 * fakt(3),  3 * fakt(2),  2 * Fakt(1)

24 = 4 *   6  <--  3 *   2  <--   2 *   1  

 

Örnek 4.2.2: Ortak bölenlerin en büyüğünü bulan program (Euklid yöntemi).

 

gcd = greatest common divisor

long gcd (long m, long n )

/* m ve n sayılarının ortak bölenlerinin en büyüğü*/

{

  if (n == 0)

     return m;

  else

     return gcd( n, m % n);

}

 

Örnek 4.2.3:    İki sayı göreceli asal olup olmadığını veren fonksiyon (relativeli prime = gcd() = 1 )

 

Örnek 4.2.4:    Sayının 9 un katı olup olmadığının basamak toplamlarının 9 olması ile bulunması (Özyinelemeye örnek olsun)

 

  int kati9(long s)

{

  int t;

  if ( s < 10)

     return ( s == 9);

  else {

       t = 0;

       while ( s > 0) {

             t = t + s % 10;

             s = s  / 10;

       }

       s = kati9(s);

  }

}
 
 
  Bugün 125 ziyaretçi (188 klik) www.bilisim-egitim.tr.gg  
 
Bu web sitesi ücretsiz olarak Bedava-Sitem.com ile oluşturulmuştur. Siz de kendi web sitenizi kurmak ister misiniz?
Ücretsiz kaydol