16.07.2014 Views

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

Programowanie. Teoria i praktyka z wykorzystaniem C++

SHOW MORE
SHOW LESS

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:

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!