Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Programowanie. Teoria i praktyka z wykorzystaniem C++
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
188 ROZDZIA 6 • PISANIE PROGRAMU<br />
przesady z liczb funkcji. Wstpna wersja zawsze powinna by prosta i zawiera tylko najwaniejsze<br />
funkcje. Kiedy uda Ci si zmusi co do dziaania, moesz postawi sobie bardziej ambitne<br />
wymagania. Budowa programu etapami jest znacznie atwiejsza ni wszystkiego na raz.<br />
Odpowied „tak” na pytanie 6. miaaby jeszcze jeden zy wynik: mogoby by trudno oprze<br />
si pokusie dodania jeszcze innych funkcji. Moe warto pomyle o funkcjach matematycznych<br />
albo o ptlach? Gdy zacznie si dodawa kolejne „fajne” funkcje, trudno przesta.<br />
Z programistycznego punktu widzenia najbardziej kopotliwe s punkty 1, 3 i 4. Ponadto<br />
s ze sob powizane, poniewa gdy znajdziemy ju 45 i +, co mamy z nimi zrobi? Tzn., jak<br />
zapisa je w programie? Oczywicie czciowym rozwizaniem tego problemu jest podzia na<br />
tokeny, ale tylko czciowym.<br />
Co zrobiby dowiadczony programista? Gdy mamy do rozwizania jaki trudny techniczny<br />
problem, czsto mona znale jakie standardowe rozwizanie. Wiemy, e ludzie pisz kalkulatory,<br />
przynajmniej od kiedy istniej komputery przyjmujce dane symboliczne z klawiatury,<br />
a wic od 50 lat. Musi by jakie standardowe rozwizanie! W takiej sytuacji dowiadczony<br />
programista konsultuje si z kolegami i przeszukuje dostpn literatur. Byoby gupstwem<br />
myle, e w jeden dzie uda si wymyle co lepszego, ni inni wymylili przez 50 lat.<br />
6.4. Gramatyki<br />
Istnieje standardowa odpowied na pytanie, jak rozszyfrowa znaczenie wyraenia: najpierw<br />
wprowadzone znaki naley zebra i podzieli na tokeny (to ju sami odkrylimy). Jeli uytkownik<br />
wpisze:<br />
45+11.5/7<br />
program powinien utworzy nastpujc list tokenów:<br />
45<br />
+<br />
11.5<br />
/<br />
7<br />
Token to sekwencja znaków, któr uwaamy za jak jednostk, np. operator lub liczb.<br />
Po utworzeniu tokenów program musi upewnia si, e cae wyraenie jest poprawnie<br />
rozumiane. Na przykad wiemy, e wyraenie 45+11.5/7 oznacza 45+(11.5/7), a nie<br />
(45+11.5)/7. Sk w tym, jak nauczy program tej przydatnej zasady (dzielenie „wie mocniej”<br />
ni dodawanie)? Standardowa odpowied jest taka, e piszemy gramatyk definiujc skadni<br />
naszych danych wejciowych, a nastpnie piszemy program, w którym implementujemy zasady<br />
tej gramatyki. Na przykad:<br />
// Prosta gramatyka wyrae:<br />
Expression:<br />
Term<br />
Expression "+" Term // dodawanie<br />
Expression "–" Term // odejmowanie<br />
Term:<br />
Primary