NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (09-10 ARALIK 2014)
ÖZ YİNELEMELİ (RECURSIVE) METOTLAR:
Kendi kendini tekrar çağırabilen metotlar
//herhangi bir tuşa basılıncaya kadar ekrana ali yazan prg. (recursive)
static void Main(string[] args)
{
Metot();
}
static void Metot()
{
if (Console.KeyAvailable) return;
Console.WriteLine("ali");
Metot();
}
//5'ten 1'e kadar sayıları ekrana yazan prg. (recursive)
static void Main(string[] args)
{
Metot(5);
}
static void Metot(int a)
{
if (a == 0) return;
Console.WriteLine(a);
Metot(a - 1);
}
//1'den - 5'e kadar sayıları ekrana yazan prg. (recursive)
static void Main(string[] args)
{
Metot(1);
}
static void Metot(int a)
{
if (a > 5) return;
Console.WriteLine(a);
Metot(a + 1);
}
//1-5 arasındaki sayıların toplamı (recursive)
//1+2+3+4+5 = 15
//Toplam(5) = 5 + Toplam(4) = 5 + 10 = 15
//Toplam(4) = 4 + Toplam(3) = 4 + 6 = 10
//Toplam(3) = 3 + Toplam(2) = 3 + 3 = 6
//Toplam(2) = 2 + Toplam(1) = 2 + 1 = 3
//Toplam(1) = 1
static void Main(string[] args)
{
Console.WriteLine(Toplam(5));
}
static int Toplam(int a)
{
if (a == 1) return 1;
return a + Toplam(a - 1);
}
//5-9 arasındaki sayıların toplamı (recursive)
//5+6+7+8+9 = 35
//Toplam(5,9) = 5 + Toplam(6,9) = 5 + 30 = 35
//Toplam(6,9) = 6 + Toplam(7,9) = 6 + 24 = 30
//Toplam(7,9) = 7 + Toplam(8,9) = 7 + 17 = 24
//Toplam(8,9) = 8 + Toplam(9,9) = 8 + 9 = 17
//Toplam(9,9) = 9
static void Main(string[] args)
{
Console.WriteLine(Toplam(5, 9));
}
static int Toplam(int a, int b)
{
if (a == b) return b;
return a + Toplam(a + 1, b);
}
//5 sayısının faktöriyeli (recursive)
//Faktöriyel:sayının kendisinden 1'e kadar çarpımı
//5!=5x4x3x2x1 = 120
static void Main(string[] args)
{
Console.WriteLine(Faktoryel(5));
}
static int Faktoryel(int a)
{
if (a == 1) return a;
return a * Faktoryel(a - 1);
}
//EBOB (en büyük ortak bölen)
//EKOK (en küçük ortak kat)
//ekok = a * b / ebob;
static void Main(string[] args)
{
Console.WriteLine(EBOB(24, 20));
Console.WriteLine(EKOK(24, 20));
}
static int EBOB(int a, int b)
{
if (b == 0) return a;
return EBOB(b, a % b);
}
static int EKOK(int a, int b)
{
return a * b / EBOB(a,b);
}
Download

NTP_DersUygulama2