werehuman 17.05.2011 15:49 Psi+

Первый раз увидел подобную конструкцию в языке R. Говорят, что в VHDL есть такое же.
Итак, ← — это оператор присваивания, y — это массив.
Угадайте, что делает y[y < 0] ← -y[y < 0]

1. Kona-chan 17.05.2011 15:52

Присваивает.

2. werehumanKona-chan /1 17.05.2011 15:53 Psi+

ок. Есть массив y = 1 , 0, -1, 2, -2, 1
Каким он станет после этой операции?

3. Kona-chanwerehuman /2 17.05.2011 15:54 Altair

Пёс его знает.

4. keekdown 17.05.2011 15:55 Gajim

тут массив [массив<0] или A[a<0] -все значения ниже нуля и будет массив?

5. werehumankeekdown /4 17.05.2011 15:56 Psi+

массив y, [] — оператор извлечения элементов из массива по индексам, y < 0 — это аргумент этого оператора

6. keekdownwerehuman /5 17.05.2011 15:59 Gajim

так а в смысле индексы существут ?A[A]?

7. mvaKona-chan /3 17.05.2011 16:00 N900

1,0,-1,2,-1,1 ;) не?

8. werehumanmva /7 17.05.2011 16:00 Psi+

нет

9. keekdown 17.05.2011 16:01 Gajim

хм...интересно

10. werehumankeekdown /6 17.05.2011 16:01 Psi+

если массиву сунуть вектор, то он вернёт вектор из тех индексов, что указаны аргументом. То есть y[x] вернёт элементы 2 и 3, если x = [2, 3]

11. keekdownwerehuman /10 17.05.2011 16:02 Gajim

это да,но сдеся y[y] нафиг

12. keekdownwerehuman /10 17.05.2011 16:03 Gajim

да и еще указано что меньше 0

13. werehumankeekdown /12 17.05.2011 16:03 Psi+

там y[y < 0]

14. keekdownwerehuman /13 17.05.2011 16:06 Gajim

получ. что все аргументы,какие бы не были, не превосходят 0... 0[0 < 0]-ошибка будет?

15. werehumankeekdown /14 17.05.2011 16:07 Psi+

не-а

16. keekdownwerehuman /15 17.05.2011 16:07 Gajim

срань господня

17. keekdownwerehuman /15 17.05.2011 16:11 Gajim

а ты ответ знаешь?

18. werehumankeekdown /17 17.05.2011 16:11 Psi+

да

19. keekdownwerehuman /18 17.05.2011 16:12 Gajim

-1000?

20. werehumankeekdown /19 17.05.2011 16:12 Psi+

перебором берёшь?

21. keekdownwerehuman /20 17.05.2011 16:13 Gajim

да ну брось:-) я сижу C3 егэ решаю,поэтому вдруг попаду:-)

22. werehuman 17.05.2011 16:14 Psi+

фишка в чём
Если y == 1, 0, -1, 2, -2, 1
то y < 0 == FALSE FALSE TRUE FALSE TRUE FALSE
тогда y [y < 0] == -1, -2
-y [y < 0] == 1, 2
это дело присваивается той части массива, и тогда
y == 1, 0, 1, 2, 2, 1

23. keekdownwerehuman /22 17.05.2011 16:19 Gajim

интересно,как в программе это реализовать?

24. werehumankeekdown /23 17.05.2011 16:19 Psi+

чего?

25. keekdownwerehuman /24 17.05.2011 16:25 Gajim

я имею ввиду,для чего это понадобится,такая заморочка

26. werehumankeekdown /25 17.05.2011 16:25 Psi+

эм... тебе не приходилось в цикле заменять элементы в массиве?

27. keekdownwerehuman /26 17.05.2011 16:26 Gajim

ну даааа...паскаль

Do you really want to delete ?