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.
178 ROZDZIA 6 • PISANIE PROGRAMU<br />
inny da nam zadanie do wykonania, prób odszyfrowania, co dokadnie to oznacza.<br />
W tym momencie naley przyj punkt widzenia uytkownika (nie programisty czy<br />
implementatora). To znaczy, zamiast zastanawia si, jak rozwiza problem, pomyl, co<br />
program ma w ogóle robi. Zadawaj pytania typu: „Co ten program moe dla mnie zrobi?”<br />
albo „W jaki sposób chciabym komunikowa si z tym programem?”. Pamitaj, e<br />
wikszo z nas moe korzysta z wasnego bogatego dowiadczenia jako uytkownika<br />
komputerów.<br />
Czy problem zosta jasno nakrelony? W realnym wiecie nigdy nie jest. Nawet<br />
w takim wiczeniu trudno jest opisa go wystarczajco precyzyjnie. Dlatego staramy si<br />
wszystko wyjani. Szkoda by byo, gdybymy rozwizali nie ten problem, co trzeba.<br />
Inna puapka to wygórowane wymagania. Obmylajc, co bymy chcieli, atwo moemy<br />
ulec chciwoci lub nadmiernym ambicjom. Zawsze lepiej jest obniy wymagania,<br />
aby uatwi napisanie specyfikacji programu, jego zrozumienie, uytkowanie oraz<br />
(tak trzeba mie nadziej) implementacj. Gdy zadziaa, zawsze mona napisa<br />
wzbogacon wersj 2.0.<br />
Czy problem wydaje si moliwy do rozwizania w przewidzianym czasie oraz przy<br />
okrelonym zasobie umiejtnoci i dostpnych narzdziach? Nie ma sensu rozpoczyna<br />
projektu, którego nie mamy szans ukoczy. Jeli jest za mao czasu na implementacj<br />
(wcznie z testowaniem) wszystkich wymaganych funkcji programu,<br />
zazwyczaj lepiej jest go w ogóle nie zaczyna. Lepiej zamiast tego zdoby wicej<br />
zasobów (zwaszcza czasu) lub (idealnie) zmieni wymagania, aby uatwi zadanie.<br />
Spróbuj podzieli program na dajce si ogarn mylami czci. Nawet najmniejszy<br />
program rozwizujcy realny problem mona podzieli na czci.<br />
Znasz jakie narzdzia, biblioteki itp., które mog by pomocne? Odpowied prawie<br />
zawsze brzmi: tak. Od samego pocztku nauki programowania masz do dyspozycji<br />
zawarto standardowej biblioteki <strong>C++</strong>. Póniej poznasz znaczn jej cz<br />
i dowiesz si, jak poszukiwa jeszcze wicej. Bdziesz korzysta z bibliotek graficznych,<br />
macierzy itp. Majc odrobin dowiadczenia, bdziesz w stanie znale tysice<br />
bibliotek w internecie. Pamitaj — nie ma sensu wywaa otwartych drzwi, jeli<br />
tworzy si oprogramowanie do realnego uytku. Co innego w czasie nauki programowania.<br />
Wówczas takie dziaania w celu sprawdzenia, jak to zrobili inni, maj<br />
gboki sens. Cay czas, który oszczdzisz dziki wykorzystaniu istniejcych bibliotek,<br />
moesz powici na prac nad innymi czciami problemu albo na odpoczynek.<br />
Skd wiadomo, czy dana biblioteka spenia nasze wymagania i prezentuje<br />
odpowiedni jako? To trudne pytanie. Mona spyta znajomych, popyta na<br />
grupach dyskusyjnych i wypróbowa kilka krótkich przykadów, zanim si zdecydujemy.<br />
Wyodrbnij takie czci rozwizania, które mona opisa oddzielnie od reszty (i potencjalnie<br />
wykorzysta w kilku miejscach programu, a nawet w innych programach).<br />
Umiejtno znajdowania takich czci przychodzi z dowiadczeniem, dlatego w ksice<br />
tej przedstawiamy wiele takich przykadów. Uywalimy ju wektorów, acuchów<br />
i strumieni (cin i cout). W tym rozdziale po raz pierwszy przedstawimy przykady<br />
projektów, implementacji i wykorzystania czci programów dostpnych jako typy