Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
214 ROZDZIA 6 • PISANIE PROGRAMU<br />
23. Kiedy powinno si zacz testowanie programu?<br />
24. Co to jest „typ zdefiniowany przez uytkownika”? Do czego moe si przyda?<br />
25. Co to jest interfejs do „typu zdefiniowanego przez uytkownika” w jzyku <strong>C++</strong>?<br />
26. Dlaczego powinno si uywa kodu z bibliotek?<br />
Terminologia<br />
analiza implementacja przypadek uycia<br />
analizator skadniowy interfejs pseudokod<br />
class parser public<br />
dzielenie przez zero private skadowa klasy<br />
funkcja skadowa projekt token<br />
gramatyka prototyp zmienna skadowa klasy<br />
Praca domowa<br />
1. Jeli jeszcze tego nie zrobie, rozwi wszystkie wiczenia Wypróbuj.<br />
2. Dodaj moliwo uywania w programie zarówno nawiasów okrgych (), jak i klamrowych<br />
{}, aby mona byo pisa wyraenia typu {(4+5)*6}/(3+4).<br />
3. Dodaj operator silni ! jako operator przyrostkowy. Na przykad 7! oznacza 7*6*5*4*3*2*1.<br />
Niech operator ten wie mocniej ni * i /. To znaczy, 7*8! powinno oznacza 7*(8!) ,<br />
a nie (7*8)!. Zacznij od dodania operatora wyszego poziomu do gramatyki. Aby pozosta<br />
w zgodzie ze standardow matematyczn definicj silni, niech 0! wynosi 1.<br />
4. Zdefiniuj klas Name_value przechowujc acuch i warto. Utwórz konstruktor (podobny<br />
jak w klasie Token). Zmodyfikuj wiczenie 19. z rozdziau 4., uywajc vector<br />
zamiast dwóch wektorów.<br />
5. Dodaj do gramatyki jzyka angielskiego z podrozdziau 6.4.1 przedimek the, aby mona<br />
byo za jej pomoc opisywa zdania typu „The birds fly but the Fish swim”.<br />
6. Napisz program sprawdzajcy poprawno zdania zgodnie z gramatyk z podrozdziau<br />
6.4.1. Przyjmij zaoenie, e kade zdanie koczy si kropk otoczon biaymi znakami, np.<br />
birds fly but the fish swim . jest zdaniem, a birds fly but the fish swim (brak kropki<br />
na kocu) i birds fly but the fish swim. (brak spacji przed kropk) nie. Dla kadego<br />
wpisanego zdania program niech zwraca tylko prost odpowied Dobrze lub le. Wskazówka:<br />
nie zawracaj sobie gowy tokenami, wystarczy wczyta dane do acucha za pomoc operatora<br />
>>.<br />
7. Napisz gramatyk dla wyrae logicznych. S one podobne do arytmetycznych, tylko posuguj<br />
si operatorami ! (nie), ~ (uzupenienie), & (i), | (lub) oraz ^ (lub wyczajce).<br />
Operatory ! i ~ s jednoargumentowe i prefiksowe. Operator ^ ma pierwszestwo przed |<br />
(podobnie jak * przed +), a wic x|y^z oznacza x|(y^z), a nie (x|y)^z. Operator & ma<br />
pierwszestwo przed ^, a wic x^y&z oznacza x^(y&z).<br />
8. Przerób gr „Byki i krowy” z wiczenia 12. w rozdziale 5., uywajc liter zamiast cyfr.<br />
9. Napisz program wczytujcy cyfry i skadajcy z nich liczby cakowite. Na przykad 123<br />
zostanie wczytane jako znaki 1, 2 i 3. Odpowied programu powinna by nastpujca: