Boolean15. Даны три целых числа: $$A$$, $$B$$, $$C$$. Проверить истинность высказывания: «Ровно два из чисел $$A$$, $$B$$, $$C$$ являются положительными».
Решение1:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
program Boolean15; var A,B,C: real; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Write('C: '); Readln(C); Writeln(((A>0) and (B>0) and (C<=0)) or ((A<=0) and (B>0) and (C>0)) or ((A>0) and (B<=0) and (C>0))); end. |
Решение 2:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
program Boolean15; var A,B,C: real; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Write('C: '); Readln(C); Writeln((A*B*C<0) And ((A>0) or (B>0) or (C>0)) or ((A*B*C=0) and (A*B+B*C+C*A>0))); end. |
Решение 3:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
program Boolean15; var A,B,C: real; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Write('C: '); Readln(C); Writeln( ((A<=0)xor(B<=0)xor(C<=0))and(not((A<=0)and(B<=0))) ); end. |
Решение от Натальи:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
program Boolean15; var A,B,C: real; begin Write('A: '); Readln(A); Write('B: '); Readln(B); Write('C: '); Readln(C); writeln((ord(a>0)+ord(b>0)+ord(c>0))=2); end. |
Объяснение решений можно посмотреть в статье Boolean14.
Другие задачи из раздела Boolean можно посмотреть здесь.
Одно из чисел ноль. A=1, B=1, C=0 — False.
Заменил:
Решениями по алгоритмам из предыдущей задачи.
Решение 3, строка 14, заменить последнее А на В
Да, опечатался.
Было:
Стало:
writeln((ord(a>0)+ord(b>0)+ord(c>0))=2)
Спасибо, добавил в шапку.