Другие языки программирования и технологии

помогите пожалуйста задачку решить-то по паскалю!!!

Даны 3 числа. Проверить высказывание - ровно одно из чисел положительное
Алексей Lesh
Алексей Lesh
36
var N1, N2, N3, K : Integer;
begin
K := 0;
Write('Введите 1 число: '); ReadLn(N1); if N1 > 0 then Inc(K); { Вводим число. Если положительное, значит увеличиваем счётчик. }
Write('Введите 2 число: '); ReadLn(N2); if N2 > 0 then Inc(K); { Вводим число. Если положительное, значит увеличиваем счётчик. }
Write('Введите 3 число: '); ReadLn(N3); if N3 > 0 then Inc(K); { Вводим число. Если положительное, значит увеличиваем счётчик. }
Write('Ровно одно число положительное = ', (K = 1)); { Выводим: True - если высказываение верно; False - если высказывание неверно. }
end.
Роман Поротиков
Роман Поротиков
66 069
Лучший ответ
Ну, заведи массив из трех чисел, счетчик цикла и счетчик положительных чисел. Последний обнули. Введи три числа в массив. Дальше в цикле от 1 до 3 проверяй: если число положительное, добавляй к счетчику положительных чисел единицу.
За циклом проверь: если счетчик положительных чисел равен 1, выводи фразу "высказывание верно", иначе "высказывание неверно".
Сергей Малкин
Сергей Малкин
57 482
var a,b,c:real; begin readln(a,b,c); writeln(ord(a>0)+ord(b>0)+ord(c>0)=1); readln end.

По идее Андрея, но с учетом возможности наличия нулей.
var a, b, c: integer;
begin
write('a, b, c: '); readln(a, b, c);
writeln((a div abs(a)) + (b div abs(b)) + (c div abs(c)) = -1);
end.

Идея такая: "нормализовать" числа, чтобы отр. были равны -1, а пол. числа равны 1. Затем сложить полученные числа. Условие выполняется, когда сумма равна -1.