Informatika2-2016/Gyakorlat12
A MathWikiből
(Változatok közti eltérés)
(→Feladatok) |
(→Feladatok) |
||
1. sor: | 1. sor: | ||
=Feladatok= | =Feladatok= | ||
− | A feladatok megoldásához szükség lesz az előadáson használt kódra. Az előadás anyagát [http://www.math.bme.hu/~nyida/info2/e11_16i2.html innen] | + | A feladatok megoldásához szükség lesz az előadáson használt kódra. Az előadás anyagát [http://www.math.bme.hu/~nyida/info2/e11_16i2.html innen] lehet letölteni. |
==Bevezető== | ==Bevezető== | ||
+ | Másoljuk be a bináris fa definícióját. Ezen az osztályon fogunk dolgozni. | ||
+ | * Írjunk egy count(self) metódust, ami megszámolja a fa elemeinek a számát! | ||
+ | * Írjunk egy sum(self) metódust, ami a fa összes csúcsában lévő értékeket összegzi! | ||
+ | * Írjunk egy height(self) metódust, ami megmondja, hogy milyen magas a fa! | ||
+ | * Írjunk egy is_list(self) metódust, ami megmondja, hogy a bináris fa listává fajult-e. Egy bináris fa akkor fajult listává, ha minden csúcsának legfeljebb egy gyereke van. | ||
+ | |||
+ | ==Számológép== | ||
+ | Az előadáson mutatott számológép-kezdeményt feljesztjük tovább. Kezdjük új fájlba. Először hozzunk létre egy üres Node osztályt! | ||
+ | * Írjuk meg a konstruktort a következőképp. A bemenet egy sztring, ezt kell értelmeznünk. | ||
+ | ** Ha a sztring egy szám, akkor egyszerűen eltároljuk a self.data változóban mint számot. | ||
+ | ** Ha nem szám (azaz a négy alapművelet egyike szerepel a sztringben), akkor szétvágjuk a sztringet két részre a legalacsonyabb precedenciaszintű művelet mentén. Mivel zárójeleket nem engedünk meg, a legalacsonyabb szintű művelet az első + vagy - jel, ha nincs ilyen, akkor pedig az első * vagy /. |
A lap 2016. május 4., 20:00-kori változata
Feladatok
A feladatok megoldásához szükség lesz az előadáson használt kódra. Az előadás anyagát innen lehet letölteni.
Bevezető
Másoljuk be a bináris fa definícióját. Ezen az osztályon fogunk dolgozni.
- Írjunk egy count(self) metódust, ami megszámolja a fa elemeinek a számát!
- Írjunk egy sum(self) metódust, ami a fa összes csúcsában lévő értékeket összegzi!
- Írjunk egy height(self) metódust, ami megmondja, hogy milyen magas a fa!
- Írjunk egy is_list(self) metódust, ami megmondja, hogy a bináris fa listává fajult-e. Egy bináris fa akkor fajult listává, ha minden csúcsának legfeljebb egy gyereke van.
Számológép
Az előadáson mutatott számológép-kezdeményt feljesztjük tovább. Kezdjük új fájlba. Először hozzunk létre egy üres Node osztályt!
- Írjuk meg a konstruktort a következőképp. A bemenet egy sztring, ezt kell értelmeznünk.
- Ha a sztring egy szám, akkor egyszerűen eltároljuk a self.data változóban mint számot.
- Ha nem szám (azaz a négy alapművelet egyike szerepel a sztringben), akkor szétvágjuk a sztringet két részre a legalacsonyabb precedenciaszintű művelet mentén. Mivel zárójeleket nem engedünk meg, a legalacsonyabb szintű művelet az első + vagy - jel, ha nincs ilyen, akkor pedig az első * vagy /.