|
||
|
|||||||
| C / C++ / C# C / C++ / C# dilleri ve kullanımı hakkında paylaşım yapabileceğiniz kategorimiz. |
![]() |
|
|
Konu Seçenekleri | Modları Göster |
|
|
#1 | |||||
|
Tiryakisi oldu
|
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 |
![]() |
| Etiketler |
| recursion |
| Konuyu 1 kişi dikizliyor. Bu kişilerden 0 tanesi bizden, 1 tanesi tanrı misafiri. | |
| Konu Seçenekleri | |
| Modları Göster | |
|
|
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 |