C# Console ortamında benim yazdığım Recursive fonksiyonları kullanarak faktöriyel, fibonacci ve tribonacci değerlerini hesaplayan girilen taban ve üs değerlerine göre hesaplama yapan ve asal sayı kontrolü yapan bir programdır.
Recursive fonksiyonları dilimize Özyenilemeli Algoritmalar olarak çevirebiliriz. Peki nedir bu özyenilemeli algoritmalar?
Özyinemeli algoritmalar içine koyacağınız basit bir şart gerçekleşene kadar kendini çağıran ve yaptırmak istediğiniz işi yapan fonksiyonlardır. Recursive fonksiyonların yazımı ve kullanımı genel olarak methodlara benzer. Recursive fonksiyonlar tanımlanırken static veya public ve dönüş tipide mutlaka return ile ifade edilmelidir. Daha iyi anlamanız için aşağıda recursive fonksiyonlarla yazılmış, çeşitli işlemleri yapan kodları paylaşıyorum.
using System; using System.Collections.Generic; using System.Text; using System.Threading; namespace RecursiveFonksiyon { class Program { static int faktoriyel(int sayi) { if (sayi == 0) return 1; else return sayi*faktoriyel(sayi-1); } static int usalma(int taban, int us) { if (us == 0) return 1; else return taban*usalma(taban,us-1); } static int fibonacci(int sayi) { if (sayi < 1) { return 0; } else if (sayi == 1) { return 1; } else { return fibonacci(sayi - 1) + fibonacci(sayi - 2); } } static int tribonacci(int sayi) { if (sayi == 0 ) { return 0; } if (sayi == 1 || sayi == 2) { return 1; } else { return tribonacci(sayi - 1) + tribonacci(sayi - 2)+ tribonacci(sayi - 3); } } static void asalkontrol(int sayi) { int aklimda = 0; if (sayi == 0 || sayi == 1) { Console.WriteLine("En küçük asal sayı 2 dir."); } else { for (int i = 2; i < (sayi / 2) + 1; i++) { if (sayi % i == 0) { aklimda++; } } if (aklimda >= 1) { Console.WriteLine("Girilen {0} sayısı Asal sayı değildir.",sayi); } else { Console.WriteLine("Girilen {0} sayısı Asal sayıdır.",sayi); } } } static void Main(string[] args) { char cevap; try { int secim=0; int a=1; do { Console.Clear(); //------- Console.Title = "www.semihduran.com"; Console.WriteLine("<<<<< © 2011 Semih DURAN www.semihduran.com >>>>>"); Console.WriteLine(); Console.WriteLine("C# Recursive Fonksiyonları Kullanarak Faktöriyel-Üs Alma-Fibonacci-Tribonacci" + " " + "Hesaplama ve Asal Sayı Kontrol Programı"); Console.WriteLine(); //------ Console.WriteLine("1--> Faktöriyel Hesaplama"); Console.WriteLine("2--> Üs Alma"); Console.WriteLine("3--> Fibonacci Hesaplama"); Console.WriteLine("4--> Tribonacci Hesaplama"); Console.WriteLine("5--> Asal Sayı Kontrol Etme"); Console.WriteLine("6--> Çıkış"); do { Console.Write("Lütfen yukarıdaki işlemlerden birini seçerek ENTER'a basın :"); secim = Convert.ToByte(Console.ReadLine()); }while (secim<1 || secim>6); switch(secim) { case 1: Console.WriteLine(); Console.WriteLine("Faktöriyel hesaplama bölümüne hoş geldiniz."); Console.WriteLine("Lütfen faktöriyelini hesaplamak istediğiniz sayıyı girin :"); int x=Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0} sayısının faktöriyeli {1} olarak hesaplanmıştır.",x,faktoriyel(x)); break; case 2: Console.WriteLine(); Console.WriteLine("Üs alma bölümüne hoş geldiniz."); Console.WriteLine("Lütfen taban değerini girin :"); int taban = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("Lütfen üs değerini girin :"); int us = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0} üzeri {1} {2} olarak hesaplanmıştır.",taban,us,usalma(taban,us)); break; case 3 : Console.WriteLine(); Console.WriteLine("Fibonacci hesaplama bölümüne hoş geldiniz."); Console.WriteLine("Kaçıncı sıradaki fibonacci değerini görmek istiyorsunuz?"); int y = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}. sıradaki fibonacci değeri {1} olarak hesaplanmıştır.",y,fibonacci(y)); break; case 4 : Console.WriteLine(); Console.WriteLine("Tribonacci hesaplama bölümüne hoş geldiniz."); Console.WriteLine("Kaçıncı sıradaki tribonacci değerini görmek istiyorsunuz?"); int z = Convert.ToInt32(Console.ReadLine()); Console.WriteLine("{0}. sıradaki tribonacci değeri {1} olarak hesaplanmıştır.",z,tribonacci(z)); break; case 5 : Console.WriteLine(); Console.WriteLine("Asal sayı kontrol bölümüne hoş geldiniz."); Console.WriteLine("Asal sayı olup olmadığını kontrol etmek istediğiniz sayıyı girin :"); int n =Convert.ToInt32(Console.ReadLine()); asalkontrol(n); break; case 6 : a = 2; break; } if (a == 1) { Console.WriteLine(); Console.WriteLine("Programı kullanarak tekrar hesaplama yapmak ister misiniz? e/h"); cevap = Convert.ToChar(Console.ReadLine()); } else { Console.WriteLine(); Console.WriteLine("Daha fazlası için www.semihduran.com"); Thread.Sleep(2000); return; } } while (cevap == 'e' || cevap == 'E'); Console.WriteLine(); Console.WriteLine("Daha fazlası için www.semihduran.com"); Thread.Sleep(2000); } catch { Console.WriteLine("Geçersiz giriş yapıldı. Program 3 saniye sonra kapatılacak."); Thread.Sleep(3000); } } } }
Merhaba Arkadaşlar, Sizinle Türkiye'de faaliyet gösteren bankalar ve ödeme kuruluşlarının kartlarının güncel BIN numaraları listesini…
Bu yazımda size Asp.Net üzerinden bir api'ye nasıl dizi (Array List) veri gönderebileceğinizden bahsetmek istiyorum.…
Merhaba Arkadaşlar, Bu yazımda size Postman üzerinden bir diziyi (Array List) nasıl post olarak göndereceğinizden…
Merhaba Arkadaşlar, Google Sheet üzerinden hazırladığınız bir uygulamanızı nasıl belirli saatlerde çalışmasını sağlayabileceğinizi paylaşmak istiyorum.…
Merhaba Arkadaşlar, Google Sheet hepimizin kullandığı bir uygulama. Sizlerle Sheet üzerinden nasıl Mysql veritabanına bağlanıp…
Merhaba Arkadaşlar, İnternet sayfalarında aşağıdaki şekilde kolayca Whatsapp mesaj linki ekleyebilirsiniz.
View Comments
Tesekkürler öncellikle ancak bir türlü istediğimi yapamadım ödevim var ve yarın teslim etmem gerekiyor bayağı uğraştım kodlarla ancak bir yerlerde hata yapıyorum ödev şu : Klavyeden girilen sayılar üzerinde işlem tipine göre aşağıdaki işlemlerden birisi gerçekleştirilecektir.
İşlem tipleri
a - Aritmetik Ortalama
b- Geometrik Ortalama
c- Girilen Sayıların En Büyüğü
d- Girilen Sayıların En Küçüğü
Bu işlemleri gerçekleştiren programı C# konsol uygulaması ile yazınız. Bana yardımcı olabilirmisiniz? Basit birşey ama yapamadım üzgünüm.
Yardım ederseniz minnetar kalırım, etmezseniz de canınız sağolsun iyi çalışmalar