Root /ArchiveAbout
()

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

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

На этой странице мы решаем задачи Boolean12 - Boolean15 из задачника Абрамяна, где рассматривается проверка трех чисел: положительные или отрицательные.

Boolean12. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Каждое из чисел A, B, C положительное».

var
  A, B, C: integer;

begin
  writeln('Введите целые числа:');
  write('A = ');
  readln(A);
  write('B = ');
  readln(B);
  write('C = ');
  readln(C);
  writeln;
  { Поскольку условия A>0, B>0 и C>0 должны выполнятся 
  одновременно, то объединяем их оператором and: }
  writeln('Каждое из чисел положительное? ', 
    (A > 0)and(B > 0)and(C > 0)); { <-- Выводим значение }
  readln
end.

$1 $2Boolean13. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Хотя бы одно из чисел A, B, C положительное».

var
  A, B, C: integer;

begin
  writeln('Введите целые числа A, B, C:');
  readln(A, B, C); { <-- Вводим три целые числа A, B, C }
  writeln;
  { Поскольку среди условий A>0, B>0 и C>0 должно выполнятся 
  хотя бы одно, то объединяем их оператором or (логическое 
  "или"). Если получим результат True, то среди введенных чисел
  есть положительное, в противном случае мы получим False: }
  writeln('Хотя бы одно из чисел A, B, C положительное? ',
    (A > 0)or(B > 0)or(C > 0));
  readln
end.

$1 $2Boolean14. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Ровно одно из чисел A, B, C положительное».

var
  A, B, C: integer; { <-- Целые числа для ввода }
  f, g, h: boolean; { <-- Логические переменные }

begin
  writeln('Введите целые числа A, B, C:');
  readln(A, B, C); { <-- Вводим три целые числа A, B, C }
  { Составляем три выражения, каждое из которых ознает,
  что только одно из чисел положительное: }
  f := (A > 0)and(B <= 0)and(C <= 0); { <== «только A > 0» }
  g := (B > 0)and(A <= 0)and(C <= 0); { <== «только B > 0» }
  h := (C > 0)and(A <= 0)and(B <= 0); { <== «только C > 0» }
  writeln;
  { Поскольку среди условий f, g и h может выполнятся только
  одно, то объединяем их оператором xor ("исключающее или"): }
  writeln('Ровно одно из чисел положительное? ', f xor g xor h);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

Boolean15. Даны три целых числа: A, B, C. Проверить истинность высказывания: «Ровно два из чисел A, B, C являются положительными».

var
  A, B, C: integer;
  f, g, h: boolean;

begin
  writeln('Введите целые числа A, B, C:');
  readln(A, B, C);
  f := (A > 0)and(B > 0)and(C <= 0); { <== A>0, B>0 и C<0 }
  g := (B > 0)and(C > 0)and(A <= 0); { <== B>0, C>0 и A<0 }
  h := (C > 0)and(A > 0)and(B <= 0); { <== C>0, A>0 и B<0 }
  writeln;
  { Поскольку среди условий f, g и h может выполнятся только 
  одно, то объединяем их оператором xor ("исключающее или"): }
  writeln('Ровно два из чисел положительные? ', f xor g xor h);
  readln
end.

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

**type** integer;: Представляет 32-битовое целое число со знаком.Диапазон значений: -2 147 483 648 .. 2 147 483 647

Как в и в задаче Boolean14, так и в Boolean15 вместо оператора xor с тем же успехом можно использовать оператор or, поскольку из трех выражений есть одно истиное.