Type tBook = record author: string[20]; title: string[30]; year: integer end;
var f1: file of tBook;
function k2000(): integer; { файл должен быт открыт на чтение } var k: integer; book: tBook; begin while not Eof(f1) do begin Read(f1, book); if book.year < 2000 then k := k + 1 end; k2000 := k end;
var B: tbook;
begin Assign(f1, 'books.000'); Rewrite(f1); Writeln('Для книги вводите в трех строках: автор, название, год издания'); Writeln('Введите * для завершения ввода'); repeat Readln(B.author); if B.author[1] <> '*' then begin Readln(B.title); Readln(B.year); Write(f1, B) end until B.author[1] = '*'; Close(f1); Write('Количество книг, изданных до 2000г равно '); Reset(f1); Writeln(k2000); Close(f1) end.
Пример диалога с программой: Для книги вводите в трех строках: автор, название, год издания Введите * для завершения ввода Александр Грин Бегущая по волнам 1984 Эдгар Аллан По Золотой жук 2002 Луи Буссенар Капитан Сорви-голова 1997 Гарри Гаррисон Крыса из нержавеющей стали 2007 А. и Б. Стругацкие Сказка о Тройке 1974 * Количество книг, изданных до 2000г равно 3
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1.
-56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается
tBook = record
author: string[20];
title: string[30];
year: integer
end;
var
f1: file of tBook;
function k2000(): integer;
{ файл должен быт открыт на чтение }
var
k: integer;
book: tBook;
begin
while not Eof(f1) do
begin
Read(f1, book);
if book.year < 2000 then k := k + 1
end;
k2000 := k
end;
var
B: tbook;
begin
Assign(f1, 'books.000');
Rewrite(f1);
Writeln('Для книги вводите в трех строках: автор, название, год издания');
Writeln('Введите * для завершения ввода');
repeat
Readln(B.author);
if B.author[1] <> '*' then
begin
Readln(B.title); Readln(B.year); Write(f1, B)
end
until B.author[1] = '*';
Close(f1);
Write('Количество книг, изданных до 2000г равно ');
Reset(f1);
Writeln(k2000);
Close(f1)
end.
Пример диалога с программой:
Для книги вводите в трех строках: автор, название, год издания
Введите * для завершения ввода
Александр Грин
Бегущая по волнам
1984
Эдгар Аллан По
Золотой жук
2002
Луи Буссенар
Капитан Сорви-голова
1997
Гарри Гаррисон
Крыса из нержавеющей стали
2007
А. и Б. Стругацкие
Сказка о Тройке
1974
*
Количество книг, изданных до 2000г равно 3
ответ:1. Таблицы сложения и умножения:
Вычисления во вложении. Последнее деление на самом деле можно было бы "в столбик" и не писать, и так понятно, какой будет результат.
2. Переводим в двоичную систему счисления и дописываем вперед незначащие нули, пока не наберётся 8 знаков:
3. Добавляется знаковый бит: дописываем вперед 0, если число положительное, и 1, если отрицательное. Для неотрицательных чисел по сути ничего не меняется, а отрицательные представляем в дополнительном коде: меняем все биты на противоположные и добавляем к результату 1.
-56: меняем биты на противоположные (получаем 11100011) и добавляем 1. Окончательно получается
Объяснение: