PDA

Zobacz pe┼én─ů wersj─Ö : Program Bibloteka w Pascalu



magda80
29-04-07, 16:29
Zad.
Zdefiniuj typ rekordowy opisuj▒cy ksiazke(tytul, autor, wydawca, rok wydania). Wykorzystaj typ w prostym programie obs│ugujacym mala bibloteke. Program powinien umozliwiac wprowadzenie danych ksiazek ich wypisanie i znalezienie ksiazki o zadanym tytule. Do przechowywania opisow ksiazek wykorzystaj tablice rekordow.

program Biblioteka;
uses Crt;
type
Ksiazka = record
Tytul : string [30];
Autor : string [25];
Wydawca : string [25];
RokWydania : string [4];
end;
const
MAX_PAMIEC = 63000;
POJEMNOSC = MAX_PAMIEC div SizeOf(Ksiazka);
var
Katalog : array[1..Pojemnosc] of Ksiazka;
LbPoz : integer;
procedure WprowadzDane(var r : Ksiazka);
begin
with r do
begin
write('Tytul: '); readln(Tytul);
write('Autor: '); readln(Autor);
write('Wydawca: '); readln(Wydawca);
write('RokWydania: '); readln(RokWydania);

end;
end;
procedure WypiszDane(r : Ksiazka);
begin
with r do
begin
write('Tytul: '); writeln(Tytul);
write('Autor: '); writeln(Autor);
write('Wydawca: '); writeln(Wydawca);
write('RokWydania: '); writeln(RokWydania);
end;
writeln;
end;
procedure DodajKsiazke;
begin
Inc(LbPoz);
writeln('Nowa pozycja w katalogu: ', LbPoz);
WprowadzDane(Katalog[LbPoz]);
Katalog[LbPoz].Licznik := 0;
end;
procedure UsunKsiazke(Numer : integer);
begin
Katalog[Numer] := Katalog[LbPoz];
Dec(LbPoz);
end;
procedure WypiszKatalog;
var
i : integer;
begin
for i := 1 to LbPoz do
begin
writeln('Pozycja katalogu nr ', i,':');
WypiszDane(Katalog[i]);
end;
end;
procedure SprawdzKsiazki(Tytul : string);
{ wyprowadza dane ksi▒┐ek o zadanym tytule }
var
i : integer;
Tytul : string;
begin
write('Podaj tytul szukanej ksiazki: ');
readln(Tytul);
i := 1;
repeat
i := Szukaj(Tytul, i);

if i <> -1 then
begin
writeln('Pozycja katalogu nr ', i,':');
WypiszDane(Katalog[i]);
Inc(i);
end;
until i = -1
end.
:hmmm: :hmmm: :hmmm:

Alpha
01-05-07, 03:25
... ale go chyba bardzo pogmatwałam
Hmmm,
nie nazwałbym tego pogmatwaniem.
Na wst─Öpie zatem wyja┼Ťnij sobie i nam:

Do jakiego licznika odwołujesz się w linii 43?
Chcesz w procedurze SprawdzKsiazki wprowadza─ç tytu┼é, czy chcesz go wcze┼Ťniej wprowadzi─ç, a do procedury przekaza─ç jako parametr?
Dlaczego nie umie┼Ťci┼éa┼Ť funkcji Szukaj i g┼é├│wnej cz─Ö┼Ťci programu na wydruku? Tylko dlatego, ┼╝e TY pogmatwa┼éa┼Ť?
Po co funkcji Szukaj parametr drugi i co ona zwraca według ciebie?
Czy nie lepiej najpierw ustali─ç indeks ksi─ů┼╝ki, a potem raz a dobrze j─ů wypisa─ç?

Do kodu stosuj tu taga CODE - nie strac─ů si─Ö wci─Öcia.