Илья Лебедев
Профи
(633)
15 лет назад
Введешь например а=2 б=1, выдаст что четных нет.
Доработать можно например так:
var a,b:integer;
begin
readln(a,b);
a:=a mod 2;
b:=b mod 2;
if ((a>0) and (b=0)) or ((a=0) and (b>0)) or ((a=0) and (b=0))then
writeln('четное число есть')
else writeln('четного нет) ;
end;
В условии оператора выбора перебираются три возможных случая удовл. условию:
перовое четное, второе нечетное
первое нечетное, второе четное
оба четных
Исправил мессадж))
alecswГуру (3801)
15 лет назад
Ваша программа говорит что чётные есть в обоих случаях:-)
alecsw
Гуру
(3801)
15 лет назад
Ответит, что "чётных чисел нет", если "а" чётное, а "b" нечётное. Например, если а=2, b=3.
Варианты доработки:
ЛИБО в 6-й строке:
if (a>0) OR (b>0) then
ЛИБО так (начиная с 4-й строки)
a:=a mod 2;
if a>0 then begin
b:=b mod 2;
if b>0 then writeln('Чётных нет') else writeln ('Чётные есть');
end; {конец условия if a>0}
end;
Vladzim™Профи (870)
15 лет назад
если заменить 6 строску то всегда выводит чётных нет
если с 4 заменять то вообще не чего не выдаёт !! я ввожу а и b а дальше не чего не происходит!!!
Crazy Dog
Мудрец
(16216)
15 лет назад
Предыдущие посты не переписывай там жуть какая-то :))))))
Вот так надо делать:
1) Пример чисел, при которых возникает ошибка: a=2, b=1
3) Проще всего доработать, добавив в первое условие "else b:=0", условие будет выглядеть так:
if a>0 then b:=b mod 2 else b:= 0;
4) Можно доработать с помощью оператора OR, тогда программа будет проще и короче:
var a, b: integer;
begin
readln(a, b);
if (a mod 2 = 0) or ( b mod 2 = 0) then
writeln('четное число есть')
else
writeln('четных чисел нет');
end.
Vladzim™Профи (870)
15 лет назад
Короче с оператором OR всё норм работает а, вот с доработкой чёт не так!!!