помогите исправить программу.
Создать файл, содержащий сведения о коллекции книг. Каждая запись содержит поля: автор, название, год издания, номер стеллажа. Количество записей произвольное. Написать программу, выводящую на экран следующую информацию:
-местонахождения книги такого-то названия;
- список имеющихся книг такого-то автора;
- общее число книг
выводится почему-то не нужный стеллаж,а все.(прогромма на паскале)
Program workfile;
uses crt;
Type
book=record
author:string;
title:string;
year:word;
stack:byte;
end;
var
st:array[byte] of book;
F:file of book;
i,n,k1,k2,k3:byte;
x,y,z:char;
BEGIN
clrscr;
write (' введите количество книг n='); readln(n);
for i:=1 to n do
begin
write('автор:'); readln(st.author);
write('название:'); readln(st.title);
write('год издания:'); readln(st.year);
write('номер стеллажа:'); readln(st.stack);
end;
Assign(F,'book.txt');
Rewrite(F);
For i:=0 to n do
write(F, st);
Close(F);
i:=0;
Assign(F,'book.txt');
Reset(F);
write('введите название книги:'); readln(x);
while not eof(F) do
begin
read(F,st);
k1:=pos(x,st.title);
if (k1<>0)then
writeln('местонахождение книги:',st.stack);
end;
close(F);
i:=0;
Assign(F,'book.txt');
Reset(F);
write('список книг автора:'); readln(z);
while not eof(F) do
begin
read(F,st);
k2:=pos(z,st.author);
if k2<>0 then
begin
writeln('название книги:',st.title);
writeln('год издания:',st.year);
writeln('местонахождение книги:',st.stack);
end;
end;
writeln('общее число книг n=',n);
Close(F);
END.