C# ile Çeşitli Matematiksel İşlemler
C# Console ortamında benim yazdığım, permütasyon, kombinasyon, küre alan-hacim, hipotenüs hesaplamalarını yapan, girilen kenar uzunluklarına göre üçgen türünü bulan (eşkenar, ikizkenar, çeşitkenar üçgen) ve dışarıdan girilen denkleme göre denklemin köklerini bulan bir programdır.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
namespace MatIs1
{
class Program
{
static int faktoriyel(int sayi)// Faktöriyeli hesaplamak için kullanacağız.
{
if (sayi == 0)
return 1;
else
return sayi * faktoriyel(sayi - 1);
}
static double us_al(double taban, double us)// Üs almak için kullanacağız.
{
if (us == 0)
return 1;
else
return taban * us_al(taban, us - 1);
}
static int permütasyon(int n, int r)// P(n,r)=n!/(n-r)! formulünü kullanarak hesaplayacağız. (r ve n pozitif ve r <= n şartıyla)
{
return faktoriyel(n) / faktoriyel(n - r);
}
static int kombinasyon(int n, int r)// C(n,r)=n!/r!*(n-r)! formulünü kullanarak hesaplayacağız. (r ve n pozitif ve n >= r şartıyla)
{
return faktoriyel(n) / (faktoriyel(r) * faktoriyel((n - r)));
}
static double kure_alan(double r)// Alan=4*pi*r(kare) formulü ile hesapladık. ( r kürenin yarıçapı)
{
return 4 * 3.14 * us_al(r, 2);
}
static double kure_hacim(double r)// Hacim=4*pi*r(küp)/3 formulü ile hesapladık. ( r kürenin yarıçapı)
{
return 4 * 3.14 * us_al(r, 3) / 3;
}
static double hipotenus(double a, double b)// Hipotenüsü hesaplamak için kullanacağız.
{
double hipotenus;
hipotenus= Math.Sqrt(a) + Math.Sqrt(b);
return hipotenus;
}
static void kontrol(int a, int b, int c)// Üçgen türünü öğrenmek için kullanacağız.
{
if (a == b && b==c)
{
Console.WriteLine("{0} {1} {2} kenarları ile oluşturulan üçgen Eşkenar üçgendir. ",a,b,c);
}
else if (a == b || a == c || b == c)
{
Console.WriteLine("{0} {1} {2} kenarları ile oluşturulan üçgen İkizkenar üçgendir. ", a, b, c);
}
else
{
Console.WriteLine("{0} {1} {2} kenarları ile oluşturulan üçgen Çeşitkenar üçgendir. ", a, b, c);
}
}
static void kok_bul(double a, double b, double c)// Denklem köklerini burayı kullanarak bulacağız.
{
double delta = us_al(b, 2) - 4 * a * c;
if (delta > 0)
{
double x1 = (-b - Math.Sqrt(delta)) / 2 * a;
double x2 = (-b + Math.Sqrt(delta)) / 2 * a;
Console.WriteLine("Girilen denklemin iki tane farklı reel kökü vardır.");
Console.WriteLine("Birinci Kök x1={0} İkinci Kök x2={1} olarak hesaplanmıştır. ", x1, x2);
}
else if (delta == 0)
{
double x3 = -b / 2 * a;
Console.WriteLine("Girilen denklemin iki tane eşit reel kökü vardır.");
Console.WriteLine("Eşit iki reel kök x1=x2={0} olarak hesaplanmıştır. ", x3);
}
else
{
Console.WriteLine("Delta<0 olduğu için denklemin reel kökü yoktur. Bu durumda denklemin karmaşık iki farklı kökü vardır.");
}
}
static void Main(string[] args)
{
char cevap;
try
{
int secim = 0;
int z = 1;
do
{
Console.Clear();
//-----------
Console.Title = "www.semihduran.com";
Console.WriteLine("<<<<< © 2011 Semih DURAN www.semihduran.com >>>>>");
Console.WriteLine();
Console.WriteLine(" Permütasyon Kombinasyon Küre Alan-Hacim Gauss Hipotenüs Hesaplama Üçgen türü bulma ve Denklem Kökü Bulma Programı ");
Console.WriteLine();
//-----------
Console.WriteLine("1 --> Permütasyon Hesaplama");
Console.WriteLine("2 --> Kombinasyon Hesaplama");
Console.WriteLine("3 --> Kürenin Alanını Hesaplama");
Console.WriteLine("4 --> Kürenin Hacmini Hesaplama");
Console.WriteLine("5 --> Hipotenüs Hesaplama");
Console.WriteLine("6 --> Üçgen türünü kontrol etme (eşkenar,ikizkenar,çeşitkenar)");
Console.WriteLine("7 --> Denklemin köklerini bulma");
Console.WriteLine("8 --> Çı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 > 8);
switch (secim)
{
case 1:
Console.WriteLine();
Console.WriteLine("Permütasyon hesaplama bölümüne hoş geldiniz.");
Console.WriteLine("P(n,r) Permütasyonun n değerini girin :");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("P(n,r) Permütasyonun r değerini girin :");
int r = Convert.ToInt32(Console.ReadLine());
if (n > 0 && r > 0 && r <= n)
{
Console.WriteLine("P({0},{1}) Permütasyonu {2} olarak hesaplanmıştır.", n, r, permütasyon(n, r));
}
else
{
Console.WriteLine("Girdiğiniz n veya r değeri permütasyon hesaplamak için uygun değildir. n>0 r>0 ve r<=n şartını sağlayın.");
}
break;
case 2:
Console.WriteLine();
Console.WriteLine("Kombinasyon hesaplama bölümüne hoş geldiniz.");
Console.WriteLine("C(n,r) Kombinasyonun n değerini girin :");
int en = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("C(n,r) Kombinasyonunun r değerini girin :");
int re = Convert.ToInt32(Console.ReadLine());
if (en >= 0 && re >= 0 && en >= re)
{
Console.WriteLine("C({0},{1}) Kombinasyonu {2} olarak hesaplanmıştır.", en, re, kombinasyon(en, re));
}
else
{
Console.WriteLine("Girdiğiniz n veya r değeri permütasyon hesaplamak için uygun değildir. n>0 r>0 ve r<=n şartını sağlayın.");
}
break;
case 3:
Console.WriteLine();
Console.WriteLine("Kürenin alanını hesaplama bölümüne hoş geldiniz.");
Console.WriteLine("Uyarı: Programda Pi sayısı 3,14 olarak sabit alınmıştır.");
Console.WriteLine("Lütfen kürenin yarıçap(r) değerini girin :");
double yaricap = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Kürenin alanı {0} olarak hesaplanmıştır.", kure_alan(yaricap));
break;
case 4:
Console.WriteLine();
Console.WriteLine("Kürenin hacmini hesaplama bölümüne hoş geldiniz.");
Console.WriteLine("Uyarı: Programda Pi sayısı 3,14 olarak sabit alınmıştır.");
Console.WriteLine("Lütfen kürenin yarıçap(r) değerini girin :");
double yaricap2 = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("Kürenin hacmi {0} olarak hesaplanmıştır.", kure_hacim(yaricap2));
break;
case 5:
Console.WriteLine();
Console.WriteLine("Dik Üçgende Hipotenüs hesaplama bölümüne hoş geldiniz.");
Console.WriteLine("a2+b2=c2 formulündeki a değerini girin :");
double aa = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("a2+b2=c2 formulündeki b değerini girin :");
double bb = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("a2+b2=c2 formulünde hipotenüs c2={0} olarak hesaplanmıştır.", hipotenus(aa, bb));
break;
case 6:
Console.WriteLine();
Console.WriteLine("Kenar uzunlukları kullanarak üçgen türü bulma bölümüne hoş geldiniz.");
Console.WriteLine("Kenar uzunluklarını a,b,c kabul ettiğimiz üçgenin a kenar uzunluğunu girin :");
int a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Kenar uzunluklarını a,b,c kabul ettiğimiz üçgenin b kenar uzunluğunu girin :");
int b = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Kenar uzunluklarını a,b,c kabul ettiğimiz üçgenin c kenar uzunluğunu girin :");
int c = Convert.ToInt32(Console.ReadLine());
kontrol(a, b, c);
break;
case 7:
Console.WriteLine();
Console.WriteLine("Denklem köklerini bulma bölümüne hoş geldiniz.");
Console.WriteLine("Uyarı: ax2+bx+c formulünde ax2 axkare anlamındadır.");
Console.WriteLine("ax2+bx+c denklemindeki a değerini girin :");
double birinci = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("ax2+bx+c denklemindeki b değerini girin :");
double ikinci = Convert.ToDouble(Console.ReadLine());
Console.WriteLine("ax2+bx+c denklemindeki c değerini girin :");
double ucuncu = Convert.ToDouble(Console.ReadLine());
kok_bul(birinci, ikinci, ucuncu);
break;
case 8:
z = 2;
break;
}
if (z == 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);
}
}
}
}

Son yorumlar