![]() |
| | #1 (permalink) |
Member | Bu işlemimiz ilerideki birçok buyuk ve komplex algoritma için temel sayılabilecek bir nitelikte.Grafik,veri yapıları,ağaç yapıları,yıgın, kuyruk yapıları,sistem yazılımları gibi bir çok alanda sıklıkla kullanılan bi algoritmadır.Çok fazla pratik ve kullanşlı olmasına rağmen en buyuk handikapı stack taşması olayıdır.Hatta bazı algoritmalar o kadar recursive fonksiyonları için uygundur ki algoritmanın ilgilendiği konu stack kontrolu halibe gelmiştir.Özellikle iyi kod yazmanın temel araçlarındandır recursive fonksiyonlar.Bu kadar soz ettikten sonra nedir bu recursive fonksiyonlar? void bas() { listBox.items.Add("ekle"); bas(); } burada bir recursive fonksiyon örneği var. Kodun sonucu ne olur dersek? stack taşana kadar listbox'a "ekle" yazısnı yazar.Sonra da taskbardan kapatırsınız uygulamayı:) bunu belli bir şartla çağırırsak mesela 100 kez "ekle" yazdıktan sonra işlemi bitirsin dersek sadece şunu ekleriz i++ if(i<100)> { listbox.items.add("ekle") bas(); } else return; deriz ve kontrolu sağlarız.Şimdi bununla en klasik işlemi yapalım 1- fibonacci serisi 2-faktoriyel hesaplama recursive olan kısım --> faktoriyel hesaplama public int fakt(int say1) { if (j <= say1) { sonuc *= j; j++; fakt(say1); } return sonuc; //sırasıyla değer gönderir ve en son gönderdiği değer geçerli olur } fibonacci serisi public int fibo(int say) { if (i < say) { top = sayi1 + sayi2; sayi1 = sayi2; sayi2 = top; i++; fibo(say); } return top; } İşlemleri oldukça basit seçtik.Sayıları topla, toplamı bir değişkene, onceki sayıyı diğer değişkene at işlem tamam.Faktoriyel de keza basit.Sırayla çarpıyorsun. Ta ki (i==say1) olana kadar en son değeri yolluyorsun |
|
| | #2 (permalink) |
Member | ww.mail.ru one of leaders among servers of free mail which also has set of other interesting services, for example love@майл.ру, news, a horoscope, a chat, a photo and others。
__________________ ww.mail.ru |
|
![]() |
| Bookmarks |
| Konuyu Toplam 1 Üye okuyor. (0 Kayıtlı üye ve 1 Misafir) | |
| Seçenekler | |
| Stil | |
| |