Boolean16. Дано целое положительное число. Проверить истинность высказывания: «Данное число является четным двузначным».
Решение:
1 2 3 4 5 6 7 8 |
program Boolean16; var A: Integer; begin Write('Введите число A: '); Readln(A); write((A>9)and(A<100)and(not(odd(A)))); end. |
Другие задачи из раздела Boolean можно посмотреть здесь.
Если будет введено трёхзначное число, то выражение тоже будет истинным. Тогда уж (A>9) and (A<100) или же ((a mod 100) = a) and (a mod 10 <> a)) или ((a div 100)=0) and ((a div 10) <> 0)
«неравно» опять убежало
Поправил.
read(a);
write((a>9)and(a<100)and(not(odd(a))));
Да, согласен, что odd больше подходит. Исправил:
Было:
Стало:
при таком решении нет ограничение на двузначность числа с низу…. например на числа 2,4,6 данное решение тоже будет выдаваться TRUE.
Скажите, а такое решение имеет смысл? (Я знаю, что здесь не говорится об использовании условного оператора if, но ведь и не запрещалось использовать)
Поправка строки с присваиванием выражения переменной С:
—————————————————————————————————
C:=((T mod 20) and (O mod 2=0))or ((T mod 2=0) and (O mod 2=0));
—————————————————————————————————
Да, вполне можно и так. Просто если вы изучаете материал с нуля подразумевается, что вы не знаете об if. )
—————————————————————————————————
C:=((T mod 2(здесь знак неравенства)0) and (O mod 2=0))or ((T mod 2=0) and (O mod 2=0));
—————————————————————————————————
Поправил в исходном материале. Можно воспользоваться кнопкой «Вставить код», что бы код вставлялся корректно.
Благодарю. =)