All pastes #2112498 Raw Edit

Mine

public text v1 · immutable
#2112498 ·published 2012-02-08 16:13 UTC
rendered paste body
//KOMPLEX SAYI MATEMATİĞİ
//Bu program Hüseyin ÇAKANLI tarafından
//08.02.2012 Tarihinde Komplex Sayı Matematiğine Çözüm amaçlı
//Operator Override Metodu kullanılarak yazıldı.
//Visual Studio 2010 ile test edilmiştir.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


// Operatörlerin Aşırı Yüklenmesi (Operator Override)

namespace OperatorAsiriYukleme
{

    //Komplex Sayı Tanımı
    //Matematiksel olarak bir komplex sayı =  a + bi şeklinde tanımlanan sayılardır.
    //Komplex sayılarla işlem diğer sayılarla olan işlemlerden biraz daha karmaşıktır.

    public struct KomplexSayi
    {
        public int GercelKisim;
        public int SanalKisim;

        public KomplexSayi (int GercelKisim, int SanalKisim)
        {
            this.GercelKisim = GercelKisim;
            this.SanalKisim = SanalKisim;
        }

        // (+) operatörünün komplex sayılar için override edilmesi
        // Dönüş değeride gene komplex sayı tipinde olacaktır.

        public static KomplexSayi operator +(KomplexSayi c1, KomplexSayi c2)
        {
            return new KomplexSayi(c1.GercelKisim + c2.GercelKisim, c1.SanalKisim + c2.SanalKisim);
        }
        
        // ToString(); metodunun komplex sayılarla kullanımı için aşırı yüklenmesi
        public override string ToString()
        {
            if (SanalKisim < 0)
            {
                int Sayi = -SanalKisim;
                return (String.Format("{0} - {1}i", GercelKisim, Sayi));
            }
            else return (String.Format("{0} + {1}i", GercelKisim, SanalKisim));
        }

        // (-) operatörünün komplex sayılar için override edilmesi
        // Dönüş değeride gene komplex sayı tipinde olacaktır.
        public static KomplexSayi operator -(KomplexSayi c1, KomplexSayi c2)
        {
            return new KomplexSayi(c1.GercelKisim - c2.GercelKisim, c1.SanalKisim - c2.SanalKisim);
        }

        // (*) operatörünün komplex sayılar için override edilmesi
        // Dönüş değeride gene komplex sayı tipinde olacaktır.
        public static KomplexSayi operator *(KomplexSayi c1, KomplexSayi c2)
        {
            return new KomplexSayi(c1.GercelKisim * c2.GercelKisim - c1.SanalKisim*c2.SanalKisim , c1.SanalKisim*c2.GercelKisim + c1.GercelKisim*c2.SanalKisim);
        }

        // (==) operatörünün komplex sayılar için override edilmesi
        // Dönüş değeride True veya False olacak.
        public static Boolean operator ==(KomplexSayi c1, KomplexSayi c2)
        {
            if ((c1.GercelKisim != c2.GercelKisim) && (c1.SanalKisim != c2.SanalKisim))
            {
                return false;
            }
            else return true;
         }

        // (!=) operatörünün komplex sayılar için override edilmesi
        // Dönüş değeride True veya False olacak.
        public static Boolean operator !=(KomplexSayi c1, KomplexSayi c2)
        {
            if ((c1.GercelKisim != c2.GercelKisim) && (c1.SanalKisim != c2.SanalKisim))
            {
                return true;
            }
            else return false;
        }

        public static void Main()
        {
            KomplexSayi Sayi1 = new KomplexSayi(2, 3);
            KomplexSayi Sayi2 = new KomplexSayi(3, 4);

            // Add two Complex objects (num1 and num2) through the
            // overloaded plus operator:
            KomplexSayi ToplamSonucu = Sayi1 + Sayi2;
            KomplexSayi CikarmaSonucu = Sayi1 - Sayi2;
            KomplexSayi CarpmaSonucu = Sayi1 * Sayi2;
            Boolean EsitMi = (Sayi1 == Sayi2);
            Boolean EsitDegilMi = (Sayi1 != Sayi2);

            // Print the numbers and the sum using the overriden ToString method:
            Console.WriteLine("İlk Komplex Sayımız :  {0}", Sayi1);
            Console.WriteLine("İkinci Komplex Sayımız : {0}", Sayi2);
            Console.WriteLine();
            Console.WriteLine("İki Komplex Sayının Toplamı...... : {0}", ToplamSonucu);
            Console.WriteLine("İki Komplex Sayının Farkı.........: {0}", CikarmaSonucu);
            Console.WriteLine("İki Komplex Sayının Çarpımı.......: {0}", CarpmaSonucu);
            Console.WriteLine(); 
            Console.WriteLine("İki Komplex Sayı Eşit mi?.........: {0}", EsitMi);
            Console.WriteLine("İki Komplex Sayı Eşit Değil mi?...: {0}", EsitDegilMi);

            Console.ReadLine();
        }
    }

}