C Öğreticisi 25 (Rekürsiyon (Özyineleme))
Last updated
Was this helpful?
Last updated
Was this helpful?
Bu yazılar adresindeki yazı dizilerinin çevirileridir.
Özyineleme, öğeleri kendine benzer bir şekilde tekrarlama işlemidir. Programlama dillerinde, bir program aynı fonksiyon içindeki bir fonksiyonu çağırmanıza izin veriyorsa, fonksiyonun özyinelemeli çağrısı olarak adlandırılır.
void ozYineleme() {
ozYineleme(); /* fonksiyon kendisini cagirir */
}
int main() {
ozYineleme();
}
C programlama dili özyinelemeyi, yani kendini çağıracak bir fonksiyonu destekler. Ancak özyineleme kullanırken, programcıların fonksiyondan bir çıkış koşulu tanımlamaya dikkat etmeleri gerekir, aksi takdirde sonsuz bir döngüye girer.
Özyinelemeli fonksiyonlar, bir sayının faktöriyelini hesaplama, Fibonacci dizileri oluşturma, vb. gibi birçok matematiksel problemi çözmek için çok yararlıdır.
Aşağıdaki örnek verilen numaranın faktöriyelini özyinelemeli fonksiyonla hesaplar -
#include <stdio.h>
unsigned long long int faktoriyel(unsigned int i) {
if(i <= 1) {
return 1;
}
return i * faktoriyel(i — 1);
}
int main() {
int i = 12;
printf(“ %d’nin faktoriyeli = %d \n”, i, faktoriyel(i));
return 0;
}
Yukarıdaki kod derlenip çalıştırıldığında -
12’nin faktoriyeli = 479001600
Aşağıdaki örnek, yinelemeli bir fonksiyon kullanarak belirli bir sayı için Fibonacci dizisini oluşturur -
#include <stdio.h>
int fibonacci(int i) {
if(i == 0) {
return 0;
}
if(i == 1) {
return 1;
}
return fibonacci(i-1) + fibonacci(i-2);
}
int main() {
int i;
for (i = 0; i < 10; i++) {
printf(“%d\t\n”, fibonacci(i));
}
return 0;
}
Yukarıdaki kod derlenip çalıştırıldığında -
0
1
1
2
3
5
8
13
21
34