
Сложное задание по информатике: Нужно написать программу на паскале, не используя if, then, else, с
таким результатом: Введите число если число четное, то вывести 10; если нечетное, то вывести -10

Ответы на вопрос

begin
write('a = ');
readln(a);
writeln(-20*(abs(a) mod 2)+10);
end.
Пример:
a = 28
10



n: integer;
res: boolean;
begin
readln(n);
res:=odd(n);
case res of
true: writeln('-10');
false: writeln('10');
end;
end.



Для решения данной задачи без использования операторов if, then, else можно воспользоваться битовой операцией AND (&) и маской числа.
В Pascal можно использовать следующий код:
```pascal program CheckEvenOdd; var number: integer; begin writeln('Введите число: '); readln(number); writeln('Результат: ', (number and 1) * 20 - 10); end. ```
Объяснение решения: 1. Считываем число с помощью функции `readln` и сохраняем его в переменную `number`. 2. Далее, мы используем операцию `and` для битового сравнения числа с маской 1. - Если число четное, то младший бит числа будет равен 0, и результат операции `number and 1` также будет равен 0. - Если число нечетное, то младший бит числа будет равен 1, и результат операции `number and 1` будет равен 1. 3. Затем мы умножаем результат операции `number and 1` на 20 и вычитаем 10, чтобы получить требуемый результат. Если число четное, то результат будет равен 10, а если число нечетное, то результат будет равен -10. 4. Наконец, мы выводим результат с помощью функции `writeln`.


Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili