1. Программа для создания файла// PascalABC.NET 3.1, сборка 1239 от 08.05.2016type tBook=record author:string[30]; naim:string[50]; pages:integer; godizd:integer end;begin var f:file of tBook; Rewrite(f,'books.dat'); Writeln('Ввод данных по книгам'); var s1,s2:string; var i1,i2:integer; var book:tBook; repeat s1:=ReadlnString('Автор или * для окончания ввода:'); if s1<>'*' then begin s2:=ReadlnString('Название книги:'); i1:=ReadlnInteger('Количество страниц:'); i2:=ReadlnInteger('Год издания:'); (book.author,book.naim,book.pages,book.godizd):=(s1,s2,i1,i2); Write(f,book) end until s1='*'; Writeln('*** Ввод завершен ***'); f.Closeend.
Тестовое решениеВвод данных по книгамАвтор или * для окончания ввода: Жюль ВернНазвание книги: 80 тысяч километров под водойКоличество страниц: 573Год издания: 1951Автор или * для окончания ввода: Сергей ЛукьяненкоНазвание книги: ДозорКоличество страниц: 934Год издания: 2004Автор или * для окончания ввода: Жюль ВернНазвание книги: Властелин мираКоличество страниц: 104Год издания: 2011Автор или * для окончания ввода: **** Ввод завершен ***
2. Программа для выборки// PascalABC.NET 3.1, сборка 1239 от 08.05.2016type tBook=record author:string[30]; naim:string[50]; pages:integer; godizd:integer end;begin var f:file of tBook; Reset(f,'books.dat'); var s:=ReadlnString('Автор книги:'); var y:=Readinteger('Год издания, не ранее:'); var k:=0; var book:tBook; while not f.Eof do begin Read(f,book); if (book.author=s) and (book.godizd>=y) then begin Writeln(book); Inc(k) end; end; if k=0 then Writeln('Таких книг не найдено'); f.Closeend.
Тестовое решениеАвтор книги: Жюль ВернГод издания, не ранее: 2005(Жюль Верн,Властелин мира,104,2011)