[ Pobierz całość w formacie PDF ]

zagnieżdżonych pętlach, z których zewnętrzna wyznacza kolejne kroki algorytmu, zaś
wewnętrzna obsługuje przeglądanie pozostałych jeszcze do uporządkowania rekordów.
Sama zamiana elementów wykorzystuje typowy schemat  podpierający się pomoc-
niczym rekordem służącym do tymczasowego przechowania danych. Zauważ wreszcie,
że aby posortować rekordy malejąco, wystarczy zmodyfikować warunek
if CzyWiekszy = 1
zastępując wartość 1 wartością  1.
Do dzieła! 99
Jak nietrudno się domyślić, operacja sortowania powinna poprzedzać wyprowadzenie
zawartości katalogu na ekran lub drukarkę. Procedura kojarząca obydwie operacje może
wyglądać następująco:
procedure WypiszKatalog;
var
Kryterium : integer;
begin
write('Sortowanie wedlug tytulow (1)',
' lub nazwisk autorow (2)');
readln(Kryterium);
Sortuj(Kryterium
Wypisz; { wypisz posortowany katalog }
end;
W ten sposób zakończyliśmy budowę zasadniczych klocków, z których składać się ma
nasz program. Pozostaje jeszcze napisanie ładnego menu:
function Menu : integer;
var
c : char;
begin
- Crt }
writeln('Program biblioteczny KATALOG, wersja 1.0, 1996');
writeln;
writeln('Wybierz funkcje:');
writeln('1: Wyszukiwanie pozycji wg tytulu',
' i obsluga wypozyczen');
writeln('2: Wyswietlenie wszystkich pozycji');
writeln('3: Dodanie ksiazki do katalogu');
writeln('5: Statystyka wypozyczen');
writeln('0: Koniec pracy');
writeln;
writeln;
repeat
until c in ['0'..'5']; { ignoruj po
Menu := ord(c)-ord('0');
end;
Sama część operacyjna programu jest również bardzo typowa. Wykorzystuje ona pętlę
repeat, cyklicznie wyświetlającą menu dostępnych operacji. Kod zwrócony przez
funkcję Menu jest wykorzystywany do wywołania odpowiedniej operacji w instrukcji
case. Zwrócenie przez funkcję Menu wartości 0 powoduje zakończenie działania pętli,
a tym samym całego programu.
begin
repeat
100 Turbo Pascal  programowanie
case Wybor of
1 : SprawdzKsiazki;
2 : begin
WypiszKatalog;
readln;
end;
3 : DodajKsiazke;
5 : Statystyka;
end;
until Wybor = 0; { opcja 0 = koniec pracy }
end. { program Biblioteka }
Jak zdążyłeś zapewne zauważyć, program nie umożliwia usunięcia książki z katalogu.
Przeznaczona jest do tego brakująca czwarta pozycja menu, której zaprogramowanie
proponuję Ci w ramach ćwiczeń.
Po poskładaniu opisanych w tym rozdziale fragmentów w jedną całość (najlepiej
w kolejności, w jakiej były cytowane) uzyskujesz gotowy program. Niestety, pełnię
szczęścia zakłócają dwa mankamenty, z których co najmniej jeden jest bardzo
poważny. Okazuje się mianowicie, że nasz katalog istnieje dopóty, dopóki użytkownik
nie wybierze opcji  Koniec pracy  kolejne uruchomienie programu wiąże się z
koniecznością wpisania wszystkich książek od nowa (co jest niedopuszczalne!!). No i
sama pojemność katalogu też mogłaby być większa...
Rozwiązaniem naszych problemów zajmiemy się już za chwilę, w dwóch kolejnych
rozdziałach traktujących o plikach oraz zmiennych dynamicznych.
Pliki, czyli jak uchronić dane przed zgubą 101
Pliki, czyli jak uchronić
dane przed zgubą
Pamięć operacyjna, wykorzystywana do przechowywania danych przetwarzanych przez
program, ma dwie zasadnicze wady: ograniczoną pojemność i ulotność (to poetyckie
słowo oznacza po prostu, że zawartość pamięci jest tracona w chwili wyłączenia zasi-
lania). Komputer umożliwiający przechowywanie danych wyłącznie podczas włączenia
do sieci byłby raczej mało użyteczny, dlatego też projektanci sprzętu opracowali szereg
urządzeń  tzw. pamięci masowych  pozwalających na trwałe przechowywanie
danych. Rolę pamięci masowej w komputerze osobistym pełnią dyskietki oraz dyski
twarde (oba rozwiązania wykorzystują identyczną metodę zapisu i różnią się rozwiąza-
niami technologicznymi). Z logicznego punktu widzenia, dane zapisywane na dyskach
organizowane są w pliki, a te z kolei przechowywane są w katalogach. Całością
zarządza system operacyjny, z którego usług korzystają programy użytkowe.
Rzecz jasna, również i Turbo Pascal dysponuje możliwością korzystania z plików.
Z trzech dostępnych w Pascalu rodzajów plików  elementowych (jednorodnych),
tekstowych i amorficznych  omówimy dwa pierwsze, mające największe zastoso-
wanie w praktyce.
Na początek nieco teorii. Sam plik jest pewną strukturą danych zapisaną na dysku
i identyfikowaną za pomocą nazwy (ściślej  ścieżki dostępu). Dane przechowywane
w pliku mogą mieć reprezentację binarną (taką samą, jak w pamięci komputera) lub
tekstową (taką, jaka używana jest do wprowadzania informacji z klawiatury i wyprowa-
dzania jej na ekran monitora lub drukarkę). Reprezentacjom tym odpowiadają w Pas-
calu pliki elementowe oraz tekstowe.
" Pliki elementowe przechowują dane w postaci binarnej, zaś pliki tekstowe 
w postaci wierszy tekstu zakończonych znakami końca wiersza. Zawartość
plików elementowych jest na ogół nieczytelna dla użytkownika, natomiast treść
pliku tekstowego daje się łatwo odczytać i zinterpretować. Z drugiej strony,
binarna reprezentacja danych jest bardziej zwarta i oszczędna.
102 Turbo Pascal  programowanie [ Pobierz całość w formacie PDF ]

  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • angela90.opx.pl
  • Archiwum