Informatika2-2013/Hazi09
A MathWikiből
(Változatok közti eltérés)
8. sor: | 8. sor: | ||
a = Szamol(5.0) | a = Szamol(5.0) | ||
b = Szamol(6.0) | b = Szamol(6.0) | ||
− | |||
d = a * b | d = a * b |
A lap 2013. május 7., 04:29-kori változata
A feladat egy olyan osztály megírása ami tárolja a számolásunkat. (Kezdeti file elsõ sorban link.) 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) 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 (nem kell megijedni, hogy ilyen sok, hisz ha megvan az __add__, a többi mûvelet csak egy-két karakterben tér el tõle):
- __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