[ Pobierz całość w formacie PDF ]
.ÿþ Programowanie na poważnie 75Programowaniena poważnieW kolejnych kilku rozdziaÅ‚ach zajmiemy siÄ™ realizacjÄ… prostego acz pouczajÄ…cegozadania: masz oto napisać program wspomagajÄ…cy obsÅ‚ugÄ™ maÅ‚ej biblioteki.OpróczwyjaÅ›nienia zasygnalizowanego uprzednio tematu przechowywania wiÄ™kszych iloÅ›cidanych (i kilku innych rzeczy), spróbujemy na tym przykÅ‚adzie przedstawić metodykÄ™projektowania programu realizujÄ…cego pewne rzeczywiste i praktyczne zadanie.SformuÅ‚owanie naszego zadania brzmi Napisz program wspomagajÄ…cy obsÅ‚ugÄ™ biblio-teki szkolnej i jest oczywiÅ›cie zbyt ogólnikowe, by daÅ‚o siÄ™ skutecznie przetÅ‚umaczyćna program.Aby je uÅ›ciÅ›lić, musimy sprecyzować wymagania użytkownika (czyliosoby obsÅ‚ugujÄ…cej bibliotekÄ™) oraz okreÅ›lić ograniczenia programu, czyli rzeczy,których z definicji nie bÄ™dzie on w stanie zrobić i nad którymi nie bÄ™dziemy siÄ™ w ogólezastanawiać.Aby ustalić listÄ™ wymagaÅ„ (bÄ™dÄ…cÄ… podstawÄ… do zaprojektowania poszczególnychfunkcji programu), musimy skonsultować siÄ™ z jego przyszÅ‚ym użytkownikiem (cow znacznej mierze sprowadza siÄ™ do tÅ‚umaczenia, dlaczego tego czy tamtego siÄ™ nie dazrobić).Załóżmy, że w wyniku pertraktacji z bibliotekarkÄ… ustaliliÅ›my, że naszkomputerowy katalog powinien umożliwiać:" wprowadzenie z klawiatury i wyÅ›wietlenie na ekranie informacji o autorzei tytule książki;" wyÅ›wietlenie listy książek uporzÄ…dkowanych alfabetycznie wedÅ‚ug nazwiskaautora lub tytuÅ‚u;" wyszukanie książki wedÅ‚ug pierwszych liter tytuÅ‚u;" sprawdzenie, czy książka jest na półce, czy też zostaÅ‚a wypożyczona (jeÅ›li tak to komu);" wyszukanie książki najczęściej i najrzadziej wypożyczanej.76 Turbo Pascal programowanieDużo tego, ale jakoÅ› sobie poradzimy.MajÄ…c do dyspozycji listÄ™ życzeÅ„ klienta może-my przystÄ…pić do projektowania programu, którego zasadniczymi elementem bÄ™dzieustalenie sposobu przechowywania informacji (czyli struktur danych) oraz sposobu jejprzetwarzania (czyli algorytmów).Ponieważ dane reprezentujÄ… pewne rzeczywisteobiekty (książki), musimy projektować nasz program pod kÄ…tem wÅ‚aÅ›ciwoÅ›ci tychobiektów.Najpierw zatem utworzymy reprezentacjÄ™ danych, a nastÄ™pnie metody, zapomocÄ… których bÄ™dziemy je przetwarzać.Taka wÅ‚aÅ›nie kolejność postÄ™powania stoso-wana jest podczas projektowania wiÄ™kszoÅ›ci programów.Chociaż biblioteka zawiera wiele książek, wszystkie one majÄ… pewien zestaw wspól-nych cech.Kolejne uÅ›ciÅ›lenie bÄ™dzie polegaÅ‚o na opisaniu pojedynczej książki (rzeczjasna, należy pominąć informacje majÄ…ce maÅ‚e znaczenie dla użytkownika, jak np.liczba stron).Po przyjrzeniu siÄ™ liÅ›cie życzeÅ„ można stwierdzić, że w skÅ‚ad opisu poje-dynczej książki powinny wchodzić nastÄ™pujÄ…ce informacje:" tytuÅ‚ (ciÄ…g znaków);" nazwisko autora (ciÄ…g znaków);" nazwisko osoby, która książkÄ™ wypożyczyÅ‚a (ciÄ…g znaków);" licznik wypożyczeÅ„ (liczba caÅ‚kowita).I tu pierwszy problem: jak reprezentuje siÄ™ w programie ciÄ…g znaków? W Turbo PascalusÅ‚uży do tego celu specjalny typ Å‚aÅ„cuchowy, z angielska string.Zmienna typuÅ‚aÅ„cuchowego może przechowywać ciÄ…g o dÅ‚ugoÅ›ci do 255 znaków i deklarowana jestnp.tak:tytul : string;Aby nie naruszać ciÄ…gÅ‚oÅ›ci tego rozdziaÅ‚u, dokÅ‚adniejszy opis wÅ‚aÅ›ciwoÅ›ci i możliwoÅ›citypu Å‚aÅ„cuchowego przeniesiemy nieco dalej (zobacz rozdziaÅ‚ AaÅ„cuchy na stronie110), na razie zaÅ› wrócimy do biblioteki.Skoro mamy już do dyspozycji wÅ‚aÅ›ciwe typy,możemy zadeklarować w programie zmienne opisujÄ…ce książkÄ™:vartytul, autor, wypozyczajacy : string;l_wypozyczen : integer;Niestety, biblioteka zawiera znacznie wiÄ™cej niż jednÄ… książkÄ™.Rzecz jasna, deklarowa-nie dla każdej pozycji oddzielnych zmiennych typu Tytul1, Tytul2.jest caÅ‚kowiciebez sensu, wymagaÅ‚oby bowiem utworzenia ogromnej liczby zmiennych (pomijajÄ…cfakt, że nie zawsze wiadomo, z iloma obiektami bÄ™dziemy mieli do czynienia).Problemten zostaÅ‚ jednak już dawno rozwiÄ…zany: aby móc obsÅ‚użyć w programie dużą liczbÄ™jednakowych (pod wzglÄ™dem struktury) obiektów, musisz wykorzystać tablice.Tak oto przechodzimy do bardzo ważnego zagadnienia, jakim sÄ… typy strukturalne. [ Pobierz caÅ‚ość w formacie PDF ]