1. Ana Sayfa
  2. C Sharp

C# Recursive Metot Nasıl Kullanılır? Faktoriyel ve Fibonacci Hesaplama

Recursive metot yani kendini çağıran metot tam çevirisi için öz yinelemeli metot bir şart sağlanana kadar kendisini çağıran metotlardır.

C# Recursive Metot Nasıl Kullanılır? Faktoriyel ve Fibonacci Hesaplama
C# Recursive Metot Nasıl Kullanılır? Faktoriyel ve Fibonacci Hesaplama
+ - 0

Merhaba, C# Recursive Metot Nasıl Kullanılır? yazım ile genellikle okullarda anlatılan ve sınavlarda sorulan bir konu olan recursive yani kendini çağıran metot konusunu anlatmak istedim. Bir bakıma döngü amacı ile kullanılan bu işlemi şahsen ben hiç kullanmadım. Geçenlerde bir tanıdığım bu konuda yardım istemişti ve bilmediğimi o zaman fark etmiştim. Biraz araştırma yapınca tabi ki öğrendim ve bu konu ile ilgili yazı yazmak istedim.

C# Recursive Metot Nasıl Kullanılır?

Recursive metot yani kendini çağıran metot tam çevirisi için öz yinelemeli metot bir şart sağlanana kadar kendisini çağıran metotlardır. Bu konuyu daha önce hiç anlatmamıştım. Kısa bir konu ama okullarda anlatılan bir konudur.  Sadece okullarda anlatılan bir konu olmasının dışında genellikle faktöriyel ve fibonacci gibi işlemleri yaparken sık kullanılan bir işlemdir.

Şimdi, az önce verdiğim örneklerin kodlarını görelim. Benim matematiksel işlemler adında bir projem vardı github’da bu konuları da oraya atacağım.

Faktoriyel Hesaplama

Formumuza üç label, iki textbox ve bir button ekliyoruz. Kodlar aşağıdaki gibidir.

using System;
using System.Windows.Forms;

namespace Matematiksel_Islemler_Projesi
{
    public partial class faktoriyel : Form
    {
        public faktoriyel()
        {
            InitializeComponent();
        }
        private void faktoriyel_Load(object sender, EventArgs e)
        {
        }
        int Faktoriyel_Hesaplama(int sayi)
        {
            if (sayi == 0)
                return 1;
            else
                return sayi * Faktoriyel_Hesaplama(sayi - 1);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                label2.Text = Faktoriyel_Hesaplama(Convert.ToInt32(textBox1.Text)).ToString();
            }
            catch
            {
                MessageBox.Show("Sayı Giriniz.");
            }
        }
    }
}

Fibonacci Hesaplama

Formumuza üç label, bir button, iki textbox ekliyoruz. Kodlar aşağıdaki gibidir.

using System;
using System.Windows.Forms;
namespace Matematiksel_Islemler_Projesi
{
    public partial class fibonacci : Form
    {
        public fibonacci()
        {
            InitializeComponent();
        }
        private void fibonacci_Load(object sender, EventArgs e)
        {
            label3.Text = "Kaçıncı sıradaki fibonacci değerini görmek istiyorsunuz?";
        }
        int Fibonacci_Hesapla(int sayi)
        {
            if (sayi < 1)
                return 0;
            else if (sayi == 1)
                return 1;
            else
                return Fibonacci_Hesapla(sayi - 1) + Fibonacci_Hesapla(sayi - 2);
        }
        private void button1_Click(object sender, EventArgs e)
        {
            textBox2.Text = "";
            try
            {
                textBox2.Text += Fibonacci_Hesapla(Convert.ToInt32(textBox1.Text)).ToString() + Environment.NewLine;
            }
            catch
            {
                MessageBox.Show("Sayı Giriniz");
            }
        }
    }
}

Recursive metot kullanımı bu örneklerle görebilirsiniz.


C# Recursive Metot Nasıl Kullanılır? yazımda bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere.

Diğer yazılarımda görüşmek üzere. Umarım faydalı olmuştur. Aşağıdaki linklerden eğitim seti sayfasına ve github projesine ulaşabilirsiniz. C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.  Matematiksel işlemler için özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…  Ayrıca bu yazının PDF’ine buraya ve ya buraya tıklayarak ulaşabilirsiniz. Discord’a katılmayı unutmayın.

Sağlıcakla ve kodla kalın….

Bu yazıya tepkiniz ne oldu?

Yazar Hakkında

Lise Ağ Sistemleri ve Yönetimi bölümü, üniversite Bilgisayar Programcılığı bölümü Ön Lisans, Yönetim Bilişim Sistemleri Lisans öğrenimi aldım. Askerlik görevimi tamamladım. Uzmanlık alanım; C# ve SQL Programlama dilleri ile müşteri odaklı, kullanıcı dostu ERP ve CRM gibi sistemleri geliştirmektir. Ayrıca şuanda PHP ve MYSQL alanında projeler geliştirmekteyim. C++, Phyton, Xamarin, MVC gibi konuları öğrenmek ve kendimi geliştirme çabası içerisindeyim. Discord için: https://discord.gg/FBxZeHu9

Değerli yorumlarınızı bekliyorum. :)