- Организовать файл, содержащий информацию о книгах.
Сведения о каждой из книг - это фамилия автора, название книги,
количество страниц и год издания. Найти название книг данного
автора, изданных не позднее определенного года. Фамилия автора и год
вводятся с клавиатуры
-
- Она приятна тем, что можно использовать
типизированный файл - запись и извлечение данных сложного типа (в
данном случае - запись) в/из него очень просты и не нужно
преобразовывать информацию из текстового формата, как пришлось бы
делать с текстовым файлом.
-
- uses
crt;
-
Type
Book = record {Запись описывающая книгу}
-
title
: string[20]; {Заголовок}
-
auname:
string[20]; {Автор}
-
pages
: word; {Количество страниц}
-
year
: word; {Год}
-
end;
-
cat
= file of book; {тип - каталог книг}
-
- Var
-
f
: cat;
-
a
: book;
-
fnm,
aut : string;
-
y :
word;
-
Begin
-
writeln
('Vvedite imia faila: ');
-
readln
(fnm); {Получаем имя файла для создания }
-
assign
(f, fnm); {связываем файл с именем на носителе}
-
rewrite
(f); {открываем файл для записи (создаём новый)}
-
writeln
('Najmite ''esc'' dlia vihoda');
-
repeat
{ввод данных}
-
writeln
('Avtor:');
-
readln
(a.auname);
-
writeln
('Zagolovok:');
-
readln
(a.title);
-
writeln
('Kol-vo stranitz:');
-
readln
(a.pages);
-
writeln
('God:');
-
readln
(a.year);
-
write
(f, a); {пишем структуру в файл}
-
until
readkey=#27; {пока не нажата клавиша esc (её код = 27)}
-
close
(f); {закрываем файл, чтобы сохранить изменения }
-
- reset
(f); {открываем файл для чтения }
-
writeln
('Vvedite avtora i god: ');
-
readln
(aut, y);
-
- while
not eof (f) do {читаем пока не конец файла}
-
begin
-
read
(f, a); {считываем очередную запись}
-
if
(a.auname=aut) and (a.year>=y) then {если она удовлетворяет
условиям}
-
writeln
(a.title); {выводим название книги}
-
end;
-
close
(f); {закрываем файл}
-
readkey;
-
end.
-
- Скачать решение.