а)
uses crt;
type fkniga=record
avtor:string[90];
name:string[30];
god:1000..2050;
end;
var ff:file of fkniga;kl:byte; imya:string;
procedure pr_sozid(ff:file of fkniga);
var i,n:byte; book:fkniga;
begin
rewrite(ff);
writeln('Количество создаваемых записей?');
readln(n);
for i:=1 to n do
with book do
begin
writeln('Введите автора книги');
readln(avtor);
writeln('Введите название книги');
readln(name);
writeln('Введите год издания книги');
readln(god);
write(ff,book);
ClrScr;
end;
writeln('Создание завершено');
end;
procedure pr_poisk(ff:file of fkniga);
var book:fkniga;avtor1:string;
begin
reset(ff);
writeln('Поиск книги с годом издания- 1960.');
writeln('Введите автора для поиска');
readln(avtor1);
writeln('Поиск книги автора-',avtor1,' года издания- 1960.');
while not eof(ff) do
begin
read(ff,book);
if (book.god=1960)and(book.avtor=avtor1) then begin
writeln('Информация о книге');
writeln('"',book.name,'"');
writeln('Автор книги- ',book.avtor);
writeln('Год издания- ',book.god);
end;
end;
end;
begin
writeln('Введите имя файла');
readln(imya);
assign(ff,imya);
writeln('Вы хотите');
repeat
writeln('1- Создать файл?');
writeln('2- Найти запись в файле');
readln(kl);
until kl in [1,2];
case kl of
1:pr_sozid(ff);
2:pr_poisk(ff);
end;
close(ff);
end.
б)
type
TBook = record
author : String[30];
name : String[50];
year : 1950..2014;
end;
var
f : File Of TBook;
book : TBook;
begin
Assign(f, 'BiBl'); Reset(f);
while Not(Eof(f)) do
begin
Read(f, book);
with book do
begin
WriteLn(name);
if (name = 'Информатика') then
WriteLn(author, ' ', year);
end;
end;
Close(f);
end.