Informatika2-2013/Hazi09

A MathWikiből
(Változatok közti eltérés)
 
(egy szerkesztő 4 közbeeső változata nincs mutatva)
1. sor: 1. sor:
 
[http://math.bme.hu/~kkovacs/info2/szamol_kezdet.py kezdeti file]
 
[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, melyben az értékét tárolja és egy '''szamolas''' adattagja (ez egy string) melyben az eddigi számolás menetét tárolja.
+
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:
 
Erre egy példa:
8. sor: 8. sor:
 
a = Szamol(5.0)
 
a = Szamol(5.0)
 
b = Szamol(6.0)
 
b = Szamol(6.0)
c = Szamol(2.0)
 
  
 
d = a * b
 
d = a * b
18. sor: 17. sor:
 
A precedenciával sokat nem kell törõdnünk ezt a python tudja magától.
 
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:
+
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)
+
* '''__init__(self, szam)''': egy számot kap mellyel létrehozza a '''szam''' adattagot és a '''szamolas'''-t (a '''szamolas'''-hoz tanultuk, hogy az str függvény mindenféle dolgot string-é alakít és kezdetben a '''szamolas'''-ban csak az alap '''szam''' van benne string-ként)
 
* '''__add__(self, jobboldal)''': az összeg megvalósítása  
 
* '''__add__(self, jobboldal)''': az összeg megvalósítása  
 
* '''__sub__(self, jobboldal)''': a különbség 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  
+
* '''__mul__(self, jobboldal)''': a szorzás megvalósítása  
* '''__div__(self, jobboldal)''': az hányados megvalósítása  
+
* '''__div__(self, jobboldal)''': a hányados megvalósítása  
* '''__pow__(self, jobboldal)''': az hatványozás megvalósítása  
+
* '''__pow__(self, jobboldal)''': a 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:
 
* '''__repr__(self)''': hogy print-el szépen ki lehessen írni a számolásunkat, a következõ módon kell kinéznie:
  
31. sor: 30. sor:
 
a = Szamol(5.0)
 
a = Szamol(5.0)
 
b = Szamol(6.0)
 
b = Szamol(6.0)
c = Szamol(2.0)
 
  
 
d = a * b
 
d = a * b

A lap jelenlegi, 2013. május 7., 04:31-kori változata

kezdeti file

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 szamolas-hoz tanultuk, hogy az str függvény mindenféle dolgot string-é alakít és kezdetben a szamolas-ban csak az alap szam van benne string-ként)
  • __add__(self, jobboldal): az összeg megvalósítása
  • __sub__(self, jobboldal): a különbség megvalósítása
  • __mul__(self, jobboldal): a szorzás megvalósítása
  • __div__(self, jobboldal): a hányados megvalósítása
  • __pow__(self, jobboldal): a 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)
 
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
Személyes eszközök