Informatika2-2013/Hazi09
A MathWikiből
(Változatok közti eltérés)
(Új oldal, tartalma: „[http://math.bme.hu/~kkovacs/info2/szamol_kezdet.py kezdeti file] A feladat egy olyan osztály megírása ami tárolja a számolásunkat. Van egy '''szam''' adattagja,…”) |
|||
20. sor: | 20. sor: | ||
A függvények amiket meg kell írni: | A függvények amiket meg kell írni: | ||
− | * '''__init__(self, szam) | + | * '''__init__(self, szam)''': egy számot kap mellyel létrehozza a szam adattagot és a szamolas-t (a számolhoz tanultuk, hogy az str függvény mindenféle dolgot string-é alakít és kezdetben a szamolas-ban csak az alap szám van benne) |
+ | * '''__add__(self, jobboldal)''': az összeg megvalósítása | ||
+ | * '''__sub__(self, jobboldal)''': a különbség megvalósítása | ||
+ | * '''__mul__(self, jobboldal)''': az szorzás megvalósítása | ||
+ | * '''__div__(self, jobboldal)''': az hányados megvalósítása | ||
+ | * '''__pow__(self, jobboldal)''': az hatványozás megvalósítása | ||
+ | * '''__repr__(self)''': hogy print-el szépen ki lehessen írni a számolásunkat, a következõ módon kell kinéznie: | ||
+ | |||
+ | <python> | ||
+ | a = Szamol(5.0) | ||
+ | b = Szamol(6.0) | ||
+ | c = Szamol(2.0) | ||
+ | |||
+ | d = a * b | ||
+ | |||
+ | print d # (5.0 * 6.0) = 30.0 | ||
+ | </python> | ||
+ | |||
+ | Tehát a '''szamolas''' adattag, utána egy egyenlõség és a '''szam''' adattag. | ||
+ | |||
+ | Amit ne felejtsünk el semmiképp, hogy a zárójeleket minden mûveletnél tegyük ki a '''szamolas'''-ba. | ||
+ | |||
+ | A kezdeti file-ban megadott tesztekre a teljes kimenet a következõ (ha ez egyezik akkor 99%, hogy jó a kódotok): | ||
+ | |||
+ | (5.0 + 6.0) = 11.0 | ||
+ | (5.0 - 6.0) = -1.0 | ||
+ | (5.0 * 6.0) = 30.0 | ||
+ | (5.0 / 6.0) = 0.833333333333 | ||
+ | (5.0 ** 6.0) = 15625.0 | ||
+ | ========== | ||
+ | (5.0 + (6.0 * 2.0)) = 17.0 | ||
+ | ((5.0 - 6.0) / 2.0) = -0.5 | ||
+ | ========== | ||
+ | ((5.0 ** 5.7) + (((1.5 * 2.4) - 8.9) / 1.2)) = 9636.73743833 |
A lap 2013. május 7., 04:26-kori változata
A feladat egy olyan osztály megírása ami tárolja a számolásunkat. Van egy szam adattagja, melyben az értékét tárolja és egy szamolas adattagja (ez egy string) melyben az eddigi számolás menetét tárolja.
Erre egy példa:
a = Szamol(5.0) b = Szamol(6.0) c = Szamol(2.0) d = a * b print d.szam # 30.0 print d.szamolas # (5.0 * 6.0)
A precedenciával sokat nem kell törõdnünk ezt a python tudja magától.
A függvények amiket meg kell írni:
- __init__(self, szam): egy számot kap mellyel létrehozza a szam adattagot és a szamolas-t (a számolhoz tanultuk, hogy az str függvény mindenféle dolgot string-é alakít és kezdetben a szamolas-ban csak az alap szám van benne)
- __add__(self, jobboldal): az összeg megvalósítása
- __sub__(self, jobboldal): a különbség megvalósítása
- __mul__(self, jobboldal): az szorzás megvalósítása
- __div__(self, jobboldal): az hányados megvalósítása
- __pow__(self, jobboldal): az hatványozás megvalósítása
- __repr__(self): hogy print-el szépen ki lehessen írni a számolásunkat, a következõ módon kell kinéznie:
a = Szamol(5.0) b = Szamol(6.0) c = Szamol(2.0) d = a * b print d # (5.0 * 6.0) = 30.0
Tehát a szamolas adattag, utána egy egyenlõség és a szam adattag.
Amit ne felejtsünk el semmiképp, hogy a zárójeleket minden mûveletnél tegyük ki a szamolas-ba.
A kezdeti file-ban megadott tesztekre a teljes kimenet a következõ (ha ez egyezik akkor 99%, hogy jó a kódotok):
(5.0 + 6.0) = 11.0 (5.0 - 6.0) = -1.0 (5.0 * 6.0) = 30.0 (5.0 / 6.0) = 0.833333333333 (5.0 ** 6.0) = 15625.0 ========== (5.0 + (6.0 * 2.0)) = 17.0 ((5.0 - 6.0) / 2.0) = -0.5 ========== ((5.0 ** 5.7) + (((1.5 * 2.4) - 8.9) / 1.2)) = 9636.73743833