If27. Для данного вещественного x найти значение следующей функции f, принимающей значения целого типа:
$$f(x) =\begin{cases} 0, \text{ if } x < 0,\\ 1, \text{ if } x\in [0, 1), [2, 3), … ,\\-1, \text{ if } x\in[1, 2), [3, 4), … .\end{cases}$$
Решение:
1 2 3 4 5 6 7 8 9 10 |
program if26; var X: Real; begin Write('Введите X: '); Readln (X); if x<0 then Writeln('F(x)=',0); if ((Trunc(x) mod 2) = 0) then Writeln('F(x)=',1); if ((Trunc(x) mod 2) <> 0) then Writeln('F(x)=',-1); end. |
Другие задачи из раздела If можно посмотреть здесь.
Мне кажется, третье условие не обязательно для решения этой задачи. Достаточно просто else. Возможно, я ошибаюсь.
тогда надо было использовать switch и что то придумывать, чтоб оно заработало. Или городить конструкцию if … then … else begin if … then … else …. end.
И мне этот вариант кажеться более читабельным… но я не против посмотреть и на другие варианты решения 🙂
Почему? Мне кажется, Кирилл имел в виду это:
if ((Trunc(x) mod 2) = 0) then Writeln(‘F(x)=’,1);
else Writeln(‘F(x)=’,-1);
тогда при $$x < 0 $$ будет два сообщения: F(x)=0 F(x)=-1 Вот вопрос, зачем я вывожу цифры как переменные, а не в той же строке вывода... вот это вопрос! 🙂
Нене, условие про if x<0 then Writeln('F(x)=',0); оставляем перед этим. Просто вторые два ифа схлопываем
Можно сделать такую конструкцию:
Но мне кажется она не красива.
Ну ок , дело вкуса