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.

permtasyon-kombinasyon

 

 

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);
            }
        }
    }
}

 

Bunlar da hoşunuza gidebilir...

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir