Предмет: Информатика, автор: alisao03

Пж,помогите,наша училка не умеет объяснять

Приложения:

SpitefulSpamer: Для вычисления функции?

Ответы

Автор ответа: BobbyFresnel
0

===== PASCALABC.NET ======

begin

 var x := ReadReal('x =');

 var y: real;

 if x < 0 then

   y := Sin(x)

 else if x <= 1 then

   y := x ** 3

 else

   y := x * x - Cos(x);

 Print('Y =', y)

end.


lingvini2013: "x in [x for x in range(1, 11)]" - на самом деле "x in range(1, 11)"
В python-e 3.8.3 и мой вариант работает, проверяет есть ли x в списке [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
lingvini2013: Вот с консоли
>>> x = 10
>>> x in [x for x in range(1, 11)]
True
nelle987: Проблема (кроме абсолютной нечитаемости) в том, что x in [x for x in range(1, 11)] работает медленнее, чем x in range(1, 11). Второе где-то внутри разворачивается примерно в 1 <= x and x < 11, а x in [x for x in range(1, 11)] в худшем случае должно пробежать по всем элементам списка [x for x in range(1, 11)], чтобы сказать, есть там x или нет
lingvini2013: И не поспоришь, это был пример синтаксиса
lingvini2013: Для других случаев может быть хорошо
nelle987: Вот и мне интересно, где из range нужно делать массив и зачем
Про Йоду немного неправда, или я не понимаю, о чем суть. Если тернарный оператор - то необычно тем, кто привык по-другому, но читается нормально: "a if a > b else b" = "a, если a > b, иначе b"
Йода - это скорее про какой-нибудь хаскель
nelle987: *не массив, а список
Автор ответа: lingvini2013
0

var x, y: real;

begin

   readln(x);

   if x < 0 then y:= sin(x) else

  if x <= 1 then y:= x * x * x else

   if x > 1 then y:= x * x - cos(x);

   writeln(y)

end.


lingvini2013: Точно, благодарю
Похожие вопросы
Предмет: Биология, автор: ТрофимоваСофия500