ВВЕРХ
ВНИЗ
  • Home
  • Boolean
  • Boolean 1 - 3

Является ли число положительным, нечетным, четным?

На этой странице дано решение и разбор первых трех из группы Boolean задач (boolean1-3) задачника Абрамяна. Выясним, как на паскале записать, является ли число положительным, нечетным или четным. Это простейшие примеры, которые могут встретиться на использование логического типа данных boolean.

Boolean1. Дано целое число A. Проверить истинность высказывания: «Число A является положительным».

Допустим, мы имеем высказывание, которое может быть как истинным, так и ложным в зависимости от некоторых условий. Назовем это высказывание V. Если f – логическая переменная (принимающая только два значения: True – истина и False – ложь), то присваивание f := V будет означать, что f будет истинно, когда истинно V, и ложно в противном случае. Пусть высказывание V состоит в том, что число A больше нуля. Тогда, чтобы вывести результат проверки на истинность высказывания V, достаточно в операторе вывода записать значение переменной f: write(f). В результате мы получим True, если A > 0, и False при A ≤ 0. В связи с этим имеем код на Pascal решения задачи Boolean1:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
14  
15  
16  
17  
var
  A: real; { <-- Число вещественного типа }
  f: boolean; { <-- Переменная логического типа }

begin
  write('A = ');
  readln(A);
  writeln;
  { Высказывание: «Число A является положительным» на
  языке Pascal записывается как присваивание логической
  переменной f математического эквивалента (A > 0): }
  f := (A > 0); { <== «Число A является положительным» }
  { Если в результате мы получим True, то число положительное,
  если False - отрицательное или 0: }
  writeln('Число A является положительным: ', f);
  readln
end.

Но можно и не вводить дополнительную логическую переменную f – достаточно в операторе вывода записать само условие A > 0, и если оно выполняется — то есть, если A действительно положительно, — мы получим True, и False — в противном случае. Имеем второй вариант решения:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
var
  A: real;

begin
  write('A = ');
  readln(A);
  writeln;
  { Если A > 0, то результат 
  будет True, иначе - False: }
  writeln('Число A является положительным: ', A > 0);
  readln
end.

Boolean2. Дано целое число A. Проверить истинность высказывания: «Число A является нечетным».

Чтобы проверить число A на четность-нечетность, достаточно разделить его на два: если остаток равен 0, значит число четное, если 1 - нечетное. Здесь используется деление по модулю - A mod B (остаток от деления A на B). В программном коде можно записать так:

if N mod 2 = 0 then write('Число ', N, '- четное')
else write('Число ', N, ' - нечетное');

Но мы делать этого не будем, поскольку в Паскале есть функция odd(A) - проверка числа A на нечетность. Если A нечетно, то odd(A ) возвращает True, в противном случае – False:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A: integer;

begin
  write('A = ');
  readln(A);
  writeln;
  { Проверка числа A на нечетность в Паскале осуществляется с
  помощью логической функции odd(A), которая возвращает true
  при нечетном A, и false - при четном: }
  writeln('Число A является нечетным: ', odd(A));
  readln
end.

Boolean3. Дано целое число A. Проверить истинность высказывания: «Число A является четным».

В этой задаче надо проверить число A на четность, поэтому используем функцию odd(A + 1). Если A четно, то A + 1 – нечетно. Поэтому odd(A + 1) возвращает True при четном A, и False – при нечетном:

Код Pascal
1  
2  
3  
4  
5  
6  
7  
8  
9  
10  
11  
12  
13  
var
  A: integer;

begin
  write('A = ');
  readln(A);
  writeln;
  { Если A четно, то A + 1 - нечетно. В 
  этом случае odd(A + 1)возвращает true 
  при четном A, и false - при нечетном: }
  writeln('Число A является четным: ', odd(A + 1));
  readln
end.

Вместо вычисления odd(A+1) с тем же результатом можно вычислять значение not odd(A) – противоположное по значению odd(A).




Яндекс.Метрика