Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массивы, Отрицательные индексы 
:(
    Опции темы
bems
Дата 17.11.2006, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(Nicholas_S @  17.11.2006,  14:29 Найти цитируемый пост)
К тому же, наверняка этот график придется масштабировать, перемещать и т.д., поэтому использование коэффициентов смещения/сжатия будет необходимым. 


Цитата(Snowy @  16.11.2006,  17:50 Найти цитируемый пост)
Не нужно привязывать данные к выводу.


отрицательный индекс - часть данных, смещения - только для вывода smile 
Вобщем остаюсь при своем мнении

Цитата(Nicholas_S @  17.11.2006,  14:29 Найти цитируемый пост)
таким образом задача становится нагляднее для человека
чего всегда и добивались. ООП - проявление того же стремления


Цитата(Nicholas_S @  17.11.2006,  14:29 Найти цитируемый пост)
Но смещение - более "правильное" решение.
Только потому что Си подругому не может? (только не спрашивай причем здесь Си)



--------------------
Обижено школьников: 8
PM MAIL   Вверх
Nicholas_S
Дата 17.11.2006, 16:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 19



Цитата

отрицательный индекс - часть данных, смещения - только для вывода

Сам пояснил smile - индекс не есть часть данных (см. пост опытного Snowy).


--------------------
...все в мире относительно
PM   Вверх
bems
Дата 17.11.2006, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Цитата(Snowy @  16.11.2006,  13:20 Найти цитируемый пост)
Индекс вообще редко когда должен нести информацию.
Его основное назначение - порядковый номер элемента, отличный от других элементов.

Редко - но похоже это и есть тот случай. Иначе было бы допустимо менять индекс, не меняя номер точки графика. Тут уже простым смещением не отделаешься, а придется вводить массив записей. Не целесообразно.

Добавлено @ 16:31 
Цитата(Nicholas_S @  17.11.2006,  16:17 Найти цитируемый пост)
см. пост опытного Snowy
,Не умаляя заслуг 
Snowy - я тоже не вчера синтаксис выучил. И мой опыт говорит, что если удобно и прозрачно, то не только можно, но и нужно

Добавлено @ 16:32 
Это конечно если координаты только целые, что можно заключить из поста Guedda


--------------------
Обижено школьников: 8
PM MAIL   Вверх
Nicholas_S
Дата 17.11.2006, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 486
Регистрация: 12.10.2006
Где: Санкт-Петербург

Репутация: 1
Всего: 19



bems, использовать или не использовать отрицательные индексы в массиве - решать программисту. В заключение могу лишь привести еще одно обоснование, пусть не существенное, но все же. Когда массив объявляется как, например, array[-10..10] или array[5..15], то при компиляции программы в код asm'а компилятор должен будет вычислить следующее:

  itemAddr = startInd + itemSize * (index + shift)

где shift равен +10 - для первого примера и -5 - для второго. Умножая на количество операций обращения к каждому элемента огромного массива, тратится... вообщем, скажете не существенно, учитывая производительность современных железных коробок - и будете почти правы. Почти.  smile 


--------------------
...все в мире относительно
PM   Вверх
bems
Дата 18.11.2006, 12:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 3400
Регистрация: 5.1.2006

Репутация: 31
Всего: 88



Не скажу. 
Дело в том, что хороший стиль и низкоуровневая оптимизация часто несовместимы. И если рассматривать вопрос с точки зрения стиля (о чем и шла до сих пор речь в топике) то оптимизация тут вообще не при чем. А если нужна оптимизация, то код  будет ненаглядным, а зачастую просто уродливым, хоть в нем все индексы будут с нуля.

Суп отдельно, мухи отдельно.

Это сообщение отредактировал(а) bems - 18.11.2006, 12:47


--------------------
Обижено школьников: 8
PM MAIL   Вверх
ShadeSt
Дата 19.11.2006, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 256
Регистрация: 9.8.2005
Где: Россия, г. Ставро поль

Репутация: нет
Всего: 7



Итак мнения свелись к двум вариантам:
1 - отрицательные индексы - это зло
2 - если с ними логика программы "прозрачнее" то использование разрешено.

Ну а вообще, на сколько я всегда знал программа пишется для программиста, т.е. что-бы после тебя мог прийти человек, сесть, посмотреть и понять все что надо, а не разбираться в абы как написанном коде..
но это высказывание, по сути, больше  относится к комментариям, отступам и прочим элементам форматирования.

Поэтому видимо ответ на вопрос сводится к совмещению мнений:

"Отрицательные индексы - это зло, но в особо редких случаях, когда логика программы, при их использовании, становиться понятнее для программиста, использование отрицательных индексов разрешается"

Причем, на сколько я смог понять, использование отр. индексов напрямую зависит от задачи, которую неоходимо реализовать. Хотя задачи, непосредственно требующие использования отрицательных индексов, на практике встречаются редко, и все их можно модифицировать таким образом, что бы избавиться от использования отр. индексов.


--------------------
It's nice to be importand, but it's more importand to be nice © Scooter
PM MAIL ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0666 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.