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.
6.3. WRACAJC DO KALKULATORA 179<br />
zdefiniowane przez uytkownika (Token i Token_stream). Jeszcze wicej takich przykadów<br />
znajduje si w rozdziaach 8. oraz 13. – 15., w których zostan opisane techniki<br />
ich tworzenia. Na razie zastanów si nad tak analogi — gdybymy projektowali<br />
samochód, zaczlibymy od opisu jego podzespoów, takich jak koa, silnik, fotele,<br />
klamki do drzwi itp. Kad z nich wyprodukowalibymy osobno, aby nastpnie<br />
uy jej do zoenia caego pojazdu. W nowoczesnym samochodzie wykorzystuje<br />
si dziesitki tysicy takich czci. Realne programy nie róni si w niczym od<br />
samochodów pod tym wzgldem (poza tym, e czciami s fragmenty kodu). Nie<br />
przyszo by nam do gowy budowa samochodu z surowych materiaów, jak elazo,<br />
plastik i drewno. Analogicznie nie tworzymy powanych programów, bezporednio<br />
uywajc wyrae, instrukcji typów wbudowanych w jzyk. Projektowanie i implementowanie<br />
takich czci jest najwaniejszym tematem tej ksiki, a nawet w ogólne<br />
programowania. Zajrzyj te do rozdziaów 9. (typy definiowane przez uytkownika),<br />
14. (hierarchie klas) oraz 20. (typy ogólne).<br />
Zbuduj niewielk wersj programu z ograniczon funkcjonalnoci, która rozwizuje<br />
najwaniejsz cz problemu. Rzadko si zdarza, abymy od samego pocztku dokadnie<br />
znali charakter problemu. Czsto nam si tak wydaje (chyba wiadomo, co to jest program<br />
kalkulator?), ale w rzeczywistoci jest inaczej. Tylko dziki wytonemu myleniu<br />
o problemie (analiza) i eksperymentowaniu (projekt i implementacja) mona na tyle<br />
dokadnie zrozumie problem, aby napisa dobry program. Dlatego tworzymy ograniczon<br />
wersj, aby:<br />
Odkry wasne braki w rozumowaniu, pojmowaniu problemu oraz narzdziach.<br />
Sprawdzi, czy nie trzeba zmieni niektórych szczegóów w specyfikacji problemu,<br />
aby zadanie byo wykonalne. Rzadko si zdarza, aby w czasie analizy i we wstpnej<br />
fazie projektowania udao si przewidzie wszystkie moliwe trudnoci. Naley<br />
skorzysta z informacji, które zyskujemy podczas pisania i testowania kodu.<br />
Tak wstpn wersj o ograniczonej funkcjonalnoci czasami nazywa si prototypem.<br />
Jeli (co jest prawdopodobne) ta pierwsza wersja nie dziaa lub jest tak brzydka, e nie<br />
mamy ochoty si ni duej zajmowa, wyrzucamy j i tworzymy nowy prototyp, tym razem<br />
wzbogaceni o nowe dowiadczenia. Powtarzamy ten proces a do uzyskania zadowalajcego<br />
wyniku. Nie kontynuuj pracy w baaganie, który z czasem tylko si pogorszy.<br />
Zbuduj pen wersj, najlepiej wykorzystujc w tym celu czci z wersji wstpnej.<br />
Chodzi o to, aby program tworzy z dziaajcych czci, a nie pisa cay kod na raz.<br />
Mona oczywicie mie nadziej, e jakim cudem nieprzetestowane fragmenty kodu<br />
bd dziaa i na dodatek robi to, co zaplanowano.<br />
6.3. Wracajc do kalkulatora<br />
W jaki sposób bdziemy komunikowa si z kalkulatorem? To atwe — wiemy ju, jak posugiwa<br />
si strumieniami cin i cout, a graficzne interfejsy uytkownika (GUI) zostan opisane<br />
dopiero w rozdziale 16. W zwizku z tym wybór pad na okno konsoli. Program bdzie pobiera<br />
z klawiatury wyraenia, oblicza ich warto i drukowa wynik na ekranie. Na przykad: