Informatika2-2013/Gyakorlat11

A MathWikiből
A lap korábbi változatát látod, amilyen Kkovacs (vitalap | szerkesztései) 2013. április 23., 02:23-kor történt szerkesztése után volt.

Ismétlés

  • Osztályok:
class Test:
    def fv(self, n): # self mindig az elsõ paramétere a metódusoknak
        self.v = n   # ha itt csak azt írnám, hogy v = n az nem jó, mert a v egy lokális változó lenne
 
t = Test()           # Test típusú objektum létrehozása
t.fv(4)              # meghívjuk a fv metódusát t-nek
print t.v            # ekkor a v adattagja 4 lesz
print t.__dict__     # megnézhetjük az adattagokat
  • Hibakezelés:
l = [1, 2, 3]
try:
    print l[1]
except:
    print "ide nem jutunk, mer nem lesz hiba"
 
 
try:
    print l[5]
except:
    print "ide jutottunk, de nem lett futas kozben hiba"
  • Mátrix osztály:

Elkezdtünk írni egy mátrix osztályt, jelenleg elég kezdetleges, ezt fogjuk folytatni a mai gyakorlaton.

Feladat

Mátrix folytatása

Innnen letölthetitek az eddigi osztályt, a következõ sorokban leírt metódusok leírásának fejeivel kiegészítve.

  • __init__(self, n = 5): az __init__ metódus akkor fut le amikor létrehozunk egy objektumot (tehát pl az ismétlésben amikor azt írjuk t = Test()), ezzel tudjuk egy kezdõállapotba állítani az objektumunkat. Itt most az lenne a feladat, hogy a kapott n számnak megfelelõen egy n x n-es csupa 0 mátrix legyen a létrehozott mátrixunk. Mint korábban most is az A adattagjába tároljuk a mátrixot (listák listája). Most még pluszban vegyünk fel egy n adattagot is, amiben a mátrix dimenzióját tároljuk. A függvénydefiniálásban az n = 5 azt jelenti, hogy ha nem adjuk meg ezt a paramétert, akkor automatikusan 5-nek veszi, tehát írhatjuk ezeket:
m1 = Matrix(2)   # 2 x 2-es csupa 0 mátrixot készít
m2 = Matrix()    # 5 x 5-ös csupa 0 mátrixot készít
  • __add__(self, jobboldal): az __add__ függvény akkor hívódik meg, ha összeadunk két ilyen objektumot, tehát ha m1 és m2 is Matrix típusú, akkor m1 + m2 utasításnál fut le. Méghozzá úgy, hogy m1-et veszi self-nek, az m2-t pedig a második paraméternek, szóval jobboldal-nak ebben az esetben. A függvénynek tehát egy Matrix típusú objektumot kell visszaadnia. (Ezt a függvényt megírtam, hogy példaként szolgáljon a továbbiakhoz.)
Személyes eszközök