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

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

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

Saved successfully!

Ooh no, something went wrong!