// PascalABC.NET 3.1, сборка 1239 от 08.05.2016 type 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.Close end.
Тестовое решение Ввод данных по книгам Автор или * для окончания ввода: Жюль Верн Название книги: 80 тысяч километров под водой Количество страниц: 573 Год издания: 1951 Автор или * для окончания ввода: Сергей Лукьяненко Название книги: Дозор Количество страниц: 934 Год издания: 2004 Автор или * для окончания ввода: Жюль Верн Название книги: Властелин мира Количество страниц: 104 Год издания: 2011 Автор или * для окончания ввода: * *** Ввод завершен ***
2. Программа для выборки
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016 type 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.Close end.
Тестовое решение Автор книги: Жюль Верн Год издания, не ранее: 2005 (Жюль Верн,Властелин мира,104,2011)
Если бы билет был всего 1, то сообщение о том, что вытащили билет 1, вообще не несло бы никакой информации, потому что мы заранее знаем, что может выпасть ТОЛЬКО билет номер 1, и никакой другой. 1 = 2^0. Если бы билетов было 2, с номерами, то сообщение, что выпал билет 1, или что выпал билет 2, несло бы 1 бит информации, он может принимать значения 0 и 1. Условно можно обозначить билет 1 = 0, билет 2 = 1. 2 = 2^1. Продолжая также дальше, мы получим, что, если у нас есть 2^n билетов, то сообщение, что вынули один билет номер k, несет n бит информации. ответ: сообщение, что из 32 = 2^5 билетов вынули билет 23, несет 5 бит.
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota
Оформи подписку