Informatika2-2021/Sz¼tGyak07

A MathWikiből
A lap korábbi változatát látod, amilyen Csonkab (vitalap | szerkesztései) 2021. március 22., 17:39-kor történt szerkesztése után volt.

Osztály

Komplex

A feladat az előadáson elkezdett Komplex osztályt befejezni:

class Komplex(object):
    def __init__(self, real, imaginary):
        self.re = real
        self.im = imaginary
 
    def __add__(self, k2):
        uj_re = self.re + k2.re
        uj_im = self.im + k2.im
        return Komplex(uj_re, uj_im)
 
    def __str__(self):
        s = ""
        s += str(self.re)
        s += " + "
        s += str(self.im)
        s += "i"
        return s
 
k1 = Komplex(4, 3)
k2 = Komplex(-2, 1)
k3 = k1 + k2
 
print(k3)
  • Az előző órán megvalósítottuk a kivonásés szorzás műveleteket, most írjuk meg osztás műveletet is. (__truediv__) Az osztás előtt érdemes lehet a következő részt megoldani először.
  • Valósítsuk meg a norm metódust, mely a komplex szám hosszát adja meg.
  • Javítsuk ki a __str__ metódust, hogy szépen írja ki a számokat, pl:
2 - 4i
5i
2

Teszteléshez használhatjuk pl ezt a kódot, de írjunk saját teszteket is!

k1 = Komplex(4, 3)
k2 = Komplex(-2, 1)
k3 = Komplex(4, 1)
 
print k1 + k2
print k1 - k3
print k2 * k1
print k3 / k1
print k1.norm()

Iterálhatók

Íjunk olyan iterálható osztályt, mint a range, de ne egy listát járjon be, hanem csak az aktuális elemet tárolja.

 class Range:
     def __init__( ... ):
         ...
     def __iter__( ... ):
         ...
     def __next__( ... ):
         …
  • konstruktora egy számot vagy sztringet kapjon. Addig a számig lehessen iterálni rajta, nullától, egyesével.
  • Ha a szám nem pozitív, akkor 0 hosszan lehessen iterálni rajta.
  • Ha sztringet kap a konstruktor és az nem értelmezhető egészként, akkor emeljünk ValueError kivételt.
    • Ha értelmezhető egészként, akkor alakítsuk át egésszé és számoljunk azzal.
  • Ha "inf" sztringet kap a konstruktor, akkor végtelen sokáig lehessen rajta iterálni!
Személyes eszközök