Karmaşık sayıları kullanarak operatör aşırı yüklemesi örnek 2

Bu örnekte, bir karmaşık sayı sınıfı oluşturarak bu sınıf  için operatör aşırı yüklemesini nasıl kullanabileceğinizi ele alıyoruz.  Örnekte karmaşık  sayılar ile toplama,çıkarma ve bölme işlemlerini tanımlayacağız .

Toplama :

Karmaşık sayılar toplanırken reel kısımlar kendi aralarında ve sanal kısımlar kendi aralarında toplanır .

Çıkarma :

Karmaşık sayılar çıkarılırken  reel kısımların farkı  ve sanal kısımların farkı alınır .

Çarpma :

sayi1=a+ib ve sayi2=x+iy olmak üzere ;

sayi1*sayi2=(a*x-b*y) +i(a*y+b*x) şeklinde hesaplanır .

Aşağıdaki kodlarda oluşturulan karmaşık sayı sınıfı için operatör yüklenmesinin nasıl yapıldığı gösterilmektedir .

class Complex(object):
    def __init__(self, real, imag=0.0):
        self.real = real
        self.imag = imag

    def __add__(self, other):
        return Complex(self.real + other.real,
                       self.imag + other.imag)

    def __sub__(self, other):
        return Complex(self.real - other.real,
                       self.imag - other.imag)

    def __mul__(self, other):
        return Complex(self.real*other.real - self.imag*other.imag,
                       self.imag*other.real + self.real*other.imag)

    def __str__(self):
        return 'Sonuç = : (%d, %di)' % (self.real, self.imag)





cSayi1=Complex(1,4)
cSayi2=Complex(3,8)

topla=cSayi1+cSayi2
cikar=cSayi1-cSayi2
carp=cSayi1*cSayi2

print("Toplam   ",topla)
print("Çıkarma  ",cikar)
print("Çarpma   " , carp)

Ekran Çıktısı :

 

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir