Recursion Nedir ?

Geri Dön   Ekshi forum | Bizigidibizi > http://www. > Programlama > C / C++ / C#

C / C++ / C# C / C++ / C# dilleri ve kullanımı hakkında paylaşım yapabileceğiniz kategorimiz.

Cevapla
 
Konu Seçenekleri Modları Göster
Eski 12-01-2007, 22:30   #1
Tiryakisi oldu
 
BlackMagic666 - ait Avatar

Exclamation Recursion Nedir ?


Tag: Recursion Nedir ? indir Recursion Nedir ? resimleri Recursion Nedir ? izle
RECURS.C:
================================================== ==

main()
{
int index;

index = 8;
geri_say(index);
}

geri_say(rakam)
int rakam;
{
rakam--;
printf("rakam degeri %d dir.n",rakam);
if (rakam > 0)
geri_say(rakam);
printf("Simdi rakam %d oldu..n",rakam);
}

================================================== =

Recursion, ilk karsilasildiginda cok korkutucu gorunen bir kavramdir.
Fakat RECURS.C isimli programa bakarsaniz, recursion'un butun zorlugunu
yenebiliriz. Aslinda fazla basit ve dolayisi ile aptal olan bu program,
bize recursion'un kullanimini gostermesi bakimindan cok yararlidir.

Recursion, kendini cagiran bir fonksiyondan baska birsey degildir. Yani,
bitmek icin bir kontrol mekanizmasina ihtiyaci olan bir dongudur.
Karsinizdaki programda "index" degiskeni 8 e atanir, ve "geri_say"
fonksiyonunun parametresi olarak kullanilir. Bu fonksiyon da, bu
degiskenin degerini teker teker azaltir, ve bize bu degeri gosterir. Sonra
tekrar kendisini cagirir, degeri bir kez daha azalir, tekrar, tekrar..
Sonunda deger sifira ulasir, ve dongu artik kendini cagirmaz. Bunun
yerine, daha onceki cagirmada kaldigi yere geri doner, tekrar geri doner,
en sonunda ana programa geri doner, ve program sona erer.


NE OLDU ?

Fonksiyon kendisini cagirdiginda, butun degiskenlerini,ve cagirilan
fonksiyonun islemesi bittiginde donmesi gereken yeri hafizaya sakladi.
Bir dahaki sefere kendinin tekrar cagirdiginda, yine ayni seyi yapti, ta
ki kendisini tekrar cagirmasi bitene kadar. Daha sonra tekrar bu
bilgileri, ayni koyus sirasi ile geri okudu.

Hatirlamaniz gereken nokta, recursion'un bir noktada bitmesi gerektigidir,
sayet sonsuz bir donguye girerseniz, bilgisayarin hafizasi bitecek ve bir
hata mesaji cikacaktir.

ODEVLER

1. Daha once yazdigimiz Santigrad'dan Fahrenheit'a karsilik tablosundaki
derece hesaplamasini bir fonksiyona geciriniz.
2. Ekrana isminizi 10 kere yazan bir program yaziniz. Yazma isini yapmak
icin bir fonksiyon cagiriniz. Daha sonra bu fonksiyonu main() in basina
alarak, derleyicinin bunu kabul edip etmedigini kontrol ediniz.

c++ dersleri 5.bölüm

C Dili - 6. Konu

==================================================

#define BASLA 0 /* Dongunun baslangic noktasi */
#define BITIR 9 /* Dongunun bitis noktasi */
#define MAX(A,B) ((A)>(B)?(A) B)) /* Max makro tanimlanmasi */
#define MIN(A,B) ((A)>(B)?(B) A)) /* Min makro tanimlanmasi */

main()
{
int index,mn,mx;
int sayac = 5;

for (index = BASLA;index <= BITIR;index++) {
mx = MAX(index,sayac);
mn = MIN(index,sayac);
printf("Max simdi %d ve min de %d ..n",mx,mn);
}
}

==================================================

Bu programda, ilk defa define lara ve makrolarla tanisacaksiniz. Ilk dort
satirdaki "#define" sozcuklerine dikkat edin. Butun makrolar ve define'lar
bu sekilde baslar. Derleme baslamadan, on-derleyici (preprocessor) bu
tanimlari alir, ve programda bu sembolleri gercek degerleri ile
degistirir. Ornegin, BASLA sembolunu heryerde sifir ile degistirir.
Derleyicinin kendisi, bu BASLA yada BITIR sembollerini gormez bile.

Boyle ufak bir programda bu sekilde semboller tanimlamak luzumsuzdur,
fakat ikibin satirlik bir programda, yirmiyedi yerde BASLA olsa idi,
sayede #define'i degistirmek, programdaki rakamlari degistirmekten daha
kolay olurdu.

Ayni sekilde on-derleyici, BITIS sembolu gordugu heryere 9 rakamini
koyar.

C de alisilmis bir teknik de, BASLA yada BITIR gibi sembolik sabitlerin
buyuk harfle, ve degisken isimlerinin de kucuk harfle yazilmasidir.
Destekleyenler & Desteklenenler
Cevapla

Etiketler
recursion


Konuyu 1 kişi dikizliyor. Bu kişilerden 0 tanesi bizden, 1 tanesi tanrı misafiri.
 
Konu Seçenekleri
Modları Göster

Yetkileriniz
Yeni konular açamazsınız
Yeni cevaplar yazamazsınız
Eklenti gönderemezsiniz
Mesajlarınızı değiştiremezsiniz

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı

Okuduğunuz Konuya Benzer Konular
Konu Konuyu Açan Forum Cevaplar Son Mesaj
Uyku nedir? Derya Ne nedir? 2 27-08-2008 12:48
PHP nedir ? Yunus PHP 2 23-09-2007 12:06
Xoops nedir? Yunus Xoops 0 12-01-2007 00:34
Javascript nedir ? Yunus Javascript / DHTML / Ajax 0 11-01-2007 23:21
C/C++ nedir ? Yunus C / C++ / C# 0 11-01-2007 23:17


Sistem bilgileri İpuçları
Forum yazılımı ve sürümü Güzel bir söz
Forum yazılımı olarak vBulletin v3.7.4 sürümünü kullanmaktayız.
Telif hakları vBulletin © 2000-2009 Jelsoft Enterprises Ltd.'e aittir.
Kuruluş 2005 © Ekshi.net - Konnektın pipıl.
Tema adı Yeni Hayat Tasarım ogogi
Bu site buradaki kişilerin marifetidir.

Bütün Zaman Ayarları WEZ +3 olarak düzenlenmiştir. Şu Anki Saat: 11:26 .



Search Engine Friendly URLs by vBSEO 3.2.0