Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиПоискОблакоVK ComboВсе проекты

Кто хорошо делает программы в PASCAL помогите!!!!

Alex ЖaPuKoB Мастер (1659), закрыт 14 лет назад
Помогите решить задачу!!!!Вывести 10, если введенное целое число-четное и любое др. число, если оно нечетное.(Желательно не использовать if..then, case...of)
Лучший ответ
Угон Харлеев Знаток (325) 14 лет назад
Var x:integer;
n:byte;
Begin
Readln(x);
n:=x mod 2;
Writeln(n+10);
readln;
end.

все как 2 пальца абассать
Остальные ответы
Родион Казанин Мыслитель (6249) 14 лет назад
без оператора IF такую задачу вряд ли решишь, хотя она и простая, но в самом задании прописано условие.
#Zhenya# Мастер (1286) 14 лет назад
Var x:integer;
n:byte;
Begin
Readln(x);
n:=x mod 2;
Writeln(n+10);
readln;
end.

Это чушь, по любому надо if добавить!! !
Var x:integer;
n:real;
Begin
Readln(x);
if (x mod 2=0)
Writeln(x); else writeln(5);
readln;
end.

ПавелМыслитель (8279) 14 лет назад
Ну почему же сразу чушь... Правильно человек говорит:

Берём остаток по модулю 2 для определения чётности... По любому после выполнения этой операции в переменной n будет число 0 или 1.

0 + 10 = 10
1 + 10 = 11

Задача выполнена корректно... Фактически Вы делаете то же самое, что и Blackmore, но создаёте ветвление, которого по условию не должно быть ...;)
GennadyГений (58790) 14 лет назад
Зря вы так категорично... Все будет работать согласно условию. Вот еще вариант без if

Writeln((x and 1)+10); {тоже будет выводить 10 и 11 для четных и не четных, соответствкнно}

Четные числа имеют 0 в младшем разряде

Всего доброго.

Александр Ильин Просветленный (40196) Хех, я именно этот вариант предложил, не прочитав коммент ;)
Александр Ильин Просветленный (40196) 14 лет назад
Еще вариант:
WriteLn(10 + (x and 1)) ;
Выведется 10 для четных и 11 для нечетных
Похожие вопросы