سلام وقت بخیر
من در ابتدا سوال رو به روش خودم حل کردم که خطا داد که گفتم شاید مشکل از منه.
بعد روش استاد رو اعمال کردم که اون رو هم خطا اعلام کرد.
راهنمایی بفرمایید ممنون میشم
سلام،
کامران جان سورس کد رو همینجا قرار بده تا تست و بررسی کنم.
از روی تصویر نمیشه دیباگش کرد.
سورس کدو داخل بلاک کد قرار بده:
import math class Complex(object): def __init__(self, real, imaginary): self.real = real self.imaginary = imaginary def __add__(self, no): return complex(self.real + no.real , self.imaginary + no.imaginary) def __sub__(self, no): return complex(self.real - no.real , self.imaginary - no.imaginary) def __mul__(self, no): return complex(self.real * no.real - self.imaginary * no.imaginary , self.real * no.imaginary + self.imaginary * no.real) def __truediv__(self, no): d = math.sqrt(no.real**2 + no.imaginary**2)**2 return complex((self.real * no.real + self.imaginary * no.imaginary)/d , (-self.real * no.imaginary + self.imaginary * no.real)/d) def mod(self): return complex(math.sqrt(self.real**2 + self.imaginary**2),0) def __str__(self): if self.imaginary == 0: result = "%.2f+0.00i" % (self.real) elif self.real == 0: if self.imaginary >= 0: result = "0.00+%.2fi" % (self.imaginary) else: result = "0.00-%.2fi" % (abs(self.imaginary)) elif self.imaginary > 0: result = "%.2f+%.2fi" % (self.real, self.imaginary) else: result = "%.2f-%.2fi" % (self.real, abs(self.imaginary)) return result if __name__ == '__main__': c = map(float, input().split()) d = map(float, input().split()) x = Complex(*c) y = Complex(*d) print(*map(str, [x+y, x-y, x*y, x/y, x.mod(), y.mod()]), sep='\n')
Complex رو با C بزرگ بنویسید:
import math class Complex(object): def __init__(self, real, imaginary): self.real = real self.imaginary = imaginary def __add__(self, no): return Complex(self.real + no.real, self.imaginary + no.imaginary) def __sub__(self, no): return Complex(self.real - no.real, self.imaginary - no.imaginary) def __mul__(self, no): real_part = self.real * no.real - self.imaginary * no.imaginary imaginary_part = self.real * no.imaginary + self.imaginary * no.real return Complex(real_part, imaginary_part) def __truediv__(self, no): denominator = no.real ** 2 + no.imaginary ** 2 real_part = (self.real * no.real + self.imaginary * no.imaginary) / denominator imaginary_part = (self.imaginary * no.real - self.real * no.imaginary) / denominator return Complex(real_part, imaginary_part) def mod(self): return Complex(math.sqrt(self.real ** 2 + self.imaginary ** 2), 0) def __str__(self): if self.imaginary == 0: result = "%.2f+0.00i" % (self.real) elif self.real == 0: if self.imaginary >= 0: result = "0.00+%.2fi" % (self.imaginary) else: result = "0.00-%.2fi" % (abs(self.imaginary)) elif self.imaginary > 0: result = "%.2f+%.2fi" % (self.real, self.imaginary) else: result = "%.2f-%.2fi" % (self.real, abs(self.imaginary)) return result if __name__ == '__main__': c = map(float, input().split()) d = map(float, input().split()) x = Complex(*c) y = Complex(*d) print(*map(str, [x + y, x - y, x * y, x / y, x.mod(), y.mod()]), sep='\n')