На этой странице мы решаем задачи boolean8 - boolean11 из задачника Абрамяна. В этих примерах речь идет об определении чётности или нечётности двух чисел. Чтобы проверить нечетность числа, будем использвать функцию odd(n), возвращающую True, если n нечетное, и False – в противном случае. Например, odd(33) возвратит True, а odd(22) возвратит False.
Вместо указанной функции можно использовать операцию mod нахождения остатка. Так, в для примеров выше (33 mod 2 = 1) возвратит True, а значение выражения (22 mod 2 = 1) будет False, так как в последнем примере остаток будет 0.
Boolean8. Даны два целых числа: A, B. Проверить истинность высказывания: «Каждое из чисел A и B нечетное».
var
A, B: integer;
begin
writeln('Введите целые числа A, B:');
readln(A, B); { <-- Вводим целые A и B }
writeln;
{ Если A и B нечетны, то odd(A) и odd(B) возвращают True. Но
поскольку условия нечетности должны выполнятся одновременно,
то мы должны использовать логический оператор and: }
writeln('Каждое из чисел нечетное? ', odd(A) and odd(B));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно Boolean9. Даны два целых числа: A, B. Проверить истинность высказывания: «Хотя бы одно из чисел A и B нечетное».
var
A, B: integer;
begin
write('A = ');
readln(A);
write('B = ');
readln(B);
writeln;
{ Если A и B нечетны, то odd(A) и odd(B) возвращают
True. Но поскольку условие нечетности должно выполнятся
хотя бы для одного числа (A или B), то здесь используем
логический оператор or: }
writeln('Хотя бы одно из чисел нечетное? ', odd(A) or odd(B));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно Boolean10. Даны два целых числа: A, B. Проверить истинность высказывания: «Ровно одно из чисел A и B нечетное».
var
A, B: integer;
begin
writeln('Введите целые числа A, B:');
readln(A, B);
writeln;
{ Среди двух чисел A и B нечетным будет одно тогда и
только тогда, когда их сумма нечетна. Поэтому будем
проверять число odd(A + B) на нечетность: }
writeln('Ровно одно из чисел нечетное: ', odd(A + B));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно Во втором варианте решения используем оператор xor:
var
A, B: integer;
begin
writeln('Введите целые числа A, B:');
readln(A, B);
writeln;
{ Поскольку из чисел odd(A) и odd(B) только одно должно
возвращать True (быть нечетным), то здесь уместно
использование логического оператора xor (M xor N - возвращает
true, если только лишь одно M или N возвращает True): }
writeln(' ', odd(A) xor odd(B));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно Boolean11. Даны два целых числа: A, B. Проверить истинность высказывания: «Числа A и B имеют одинаковую четность».
var
A, B: integer;
begin
writeln('Введите числа целые A, B:');
readln(A, B);
writeln;
{ Если числа A и B имеют одинаковую четность, тогда
их сумма будет четна и odd(A + B) возвратит false.
Поэтому оператор not odd(A + B) возвратит true: }
writeln(not odd(A + B));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно Второй вариант решения задачи Boolean11:
var
A, B: integer;
begin
writeln('Введите целые числа A, B:');
readln(A, B);
writeln;
{ Числа A и B будут иметь одинаковую четность тогда и
только тогда, когда их сумма четна. Поэтому, увеличив
сумму на 1, получим нечетное число A + B + 1: }
writeln(odd(A + B + 1));
readln
end.
**type** integer;
: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647**function** Odd(i: integer): boolean;
: Возвращает True, если i нечетно