Turbo Pascal. Programowanie

Turbo Pascal.
Programowanie

Autor: Tomasz M. Sadowski
Format: B5, stron: 136

Copyright © 1996 by Wydawnictwo Helion
wersja spakowana

helion.pl

Programowanie na poważnie

W kolejnych kilku rozdziałach zajmiemy się realizacją prostego acz pouczającego zadania: masz oto napisać program wspomagający obsługę małej biblioteki. Oprócz wyjaśnienia zasygnalizowanego uprzednio tematu przechowywania większych ilości danych (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ę biblioteki 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 (czyli osoby 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óle zastanawiać.

Aby ustalić listę wymagań (będącą podstawą do zaprojektowania poszczególnych funkcji programu), musimy skonsultować się z jego przyszłym użytkownikiem (co w znacznej mierze sprowadza się do tłumaczenia, dlaczego tego czy tamtego się nie da zrobić). Załóżmy, że w wyniku pertraktacji z bibliotekarką ustaliliśmy, że nasz komputerowy katalog powinien umożliwiać:

Dużo tego, ale jakoś sobie poradzimy. Mając do dyspozycji listę życzeń klienta możemy przystąpić do projektowania programu, którego zasadniczymi elementem będzie ustalenie sposobu przechowywania informacji (czyli struktur danych) oraz sposobu jej przetwarzania (czyli algorytmów). Ponieważ dane reprezentują pewne rzeczywiste obiekty (książki), musimy projektować nasz program pod kątem właściwości tych obiektów. Najpierw zatem utworzymy reprezentację danych, a następnie metody, za pomocą których będziemy je przetwarzać. Taka właśnie kolejność postępowania stosowana jest podczas projektowania większości programów.

Chociaż biblioteka zawiera wiele książek, wszystkie one mają pewien zestaw wspólnych cech. Kolejne uściślenie będzie polegało na opisaniu pojedynczej książki (rzecz jasna, 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 pojedynczej książki powinny wchodzić następujące informacje:

I tu pierwszy problem: jak reprezentuje się w programie ciąg znaków? W Turbo Pascalu sł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 jest np. tak:

tytul : string;

Aby nie naruszać ciągłości tego rozdziału, dokładniejszy opis właściwości i możliwości typu łańcuchowego przeniesiemy nieco dalej (zobacz rozdział Łańcuchy na stronie 110), 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ę:

  var
    tytul, autor, wypozyczajacy : string;
    l_wypozyczen : integer;

Niestety, biblioteka zawiera znacznie więcej niż jedną książkę. Rzecz jasna, deklarowanie dla każdej pozycji oddzielnych zmiennych typu Tytul1, Tytul2... jest całkowicie bez sensu, wymagałoby bowiem utworzenia ogromnej liczby zmiennych (pomijając fakt, że nie zawsze wiadomo, z iloma obiektami będziemy mieli do czynienia). Problem ten 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.

Poprzedni | Spis treści | Następny | Wersja spakowana |