XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Общение> Трактир
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Результаты опроса: С какой ячейки начинаете использование массива?
0 45 75.00%
1 или больше 15 25.00%
Голосовавшие: 60. Вы еще не голосовали в этом опросе

Ответ
 
Doc

offline
Опыт: 63,163
Активность:
Ахелхот, а ты вкурсе, что например в варкрафте все функции типа Player и т.п. ведут отсчет с нуля?
Старый 29.10.2010, 10:01
XOR

offline
Опыт: 38,159
Активность:
Жмакните на опрос - все кто нажал на 1+ профессионалами грубо говоря не назовешь) практически везде идет с нуля, смотрите хоть сорцы в интернете..
автор нуб и спалился

Отредактировано X, 29.10.2010 в 10:24.
Старый 29.10.2010, 10:15
H
hello world
offline
Опыт: 130,725
Активность:
Ичо? Я прекрасно знаю что с нуля это стандарт, и понятно что на работе нужно юзать с нуля, но для себя ( скажем в кип ) я юзаю с единицы.
Doc 12 констант никто не отменял еще )
Player[1] = 0
Player[2] = 1
..
Старый 29.10.2010, 10:19
Doc

offline
Опыт: 63,163
Активность:
Короче бесполезно когото переубеждать, но говорю что отсчет с единицы - это рак.
Старый 29.10.2010, 10:29
Clamp
Lost in space
offline
Опыт: 71,158
Активность:
Toadcop:
лично я пользуюсь банальной логикой. + это никакой не спор. у каждого есть своя цель.
с 0ля это логичный (рацыональный) способ использования памяти.
с 1ы (учитывая что 0 существует) можно начинать хранить данные которые требуют большой степени "надежности" ибо 0 = "ошибка" некоректность в некоторых случиях и тем самым пологатся на такое число нельзя.
в целом всё =) я лично делаю что требует большей стабильности с 1. а обычно всё с 0ля. актуальный пример. это выделить хендл для объекта (даже не джасс т.е. любой объект) если следовать логики 0 это начяло то я буду выделять объект с ид 0 О_о что есть по многим причинам некоректно. и т.д.
+100500, я тоже так рассуждаю =)
Старый 29.10.2010, 11:29
Mastro

offline
Опыт: 14,878
Активность:
Цитата:
> С единицы, ибо 0 никуда не девается,вы все лолы.

Твои проблемы с банальной логикой закрались даже в твои предложения.
Старый 29.10.2010, 12:17
Rewenger
The culprit will not die
offline
Опыт: 35,873
Активность:
Поскольку индекс массива - это оффсет адреса, то начинать надо с нуля. Но при начале с единицы выглядит "красивее и понятнее", так что для этого тоже есть свои применения...
Старый 29.10.2010, 12:36
MaHBe

offline
Опыт: 5,910
Активность:
С нуля конечно) И не думал что найдутся те,кто с 1 считает массив...
Старый 29.10.2010, 13:51
Toadcop

offline
Опыт: 54,313
Активность:
это всё вопрос абстракци идк. ничего необычного.
Старый 29.10.2010, 14:42
ScorpioT1000
Работаем
online
Опыт: отключен
массив - не кастом тип итп, чтобы с ним заморачиваться, а вобще обычно для этого объявлен свой static type & Null; и юзается как нулл у объявленного типа
Старый 29.10.2010, 17:59
jeD_wc3
Изучаю C++
offline
Опыт: 4,038
Активность:
Блин, я затупил чёто. Новичок только)
Старый 30.10.2010, 01:07
HGL
Phased out.
offline
Опыт: 25,976
Активность:
нулевой элемент резервирую для специальных целей

HGL добавил:
... не всегда офк)

Отредактировано HGL, 01.11.2010 в 00:13.
Старый 30.10.2010, 21:41
GhfDllT

offline
Опыт: 3,980
Активность:
Цитата:
Поскольку индекс массива - это оффсет адреса
- вот все думал напишет кто или нет=)
Цитата:
это всё вопрос абстракци идк. ничего необычного.
- не только. Это еще и вопрос эффективности транслятора/интерпретатора. Так все просто: начало массива + индекс*sizeof(тип массива). С нулем все просто, а с единицей придется вычитать 1 из индекса при каждом обращении к массиву. Если для компилятора это только некоторое усложнение работы и задержа в работе(а если индекс определяется динаически то еще и в рантайм доп код пихать придется), то для интерпретаторов это тиражируется на каждое исполнение. Да и во времена принятия этих стандартов программисты были технически грамотны и кроме как смещение индекс в принципе не понимали. А теперь это называют ЧСВ....
Старый 31.10.2010, 22:35
ScorpioT1000
Работаем
online
Опыт: отключен
дак да, в си это всё банально (вот почему учить надо сначала си, потом плюсы)
type name[30]
означает, что в памяти выделяется блок с адресом "name" и длиной в 30 байт, умноженной на размер type
"name" - то же самое, что и "name[0]", т.е. адрес начала блока в виде имени переменной
Старый 31.10.2010, 23:22
Mihahail
๏̯͡๏
offline
Опыт: 17,766
Активность:
Что логичнее: указывать при задании массива колчиество элементов(de facto), или количество элементов плюс один? вопрос риторический
По сабжу - в паскале(в дельфях не помню) можно задавать массив как
var <имя>:array[-50..49] of <тип>;
и выделится памяти под 100 элементов. =) первые пятьдесят один элемент[-50;0] можно зарезервировать под нужды прогрмамиста, а остальные 49 [1;49] использовать как надо.
Хотя правильнее зарезервировать [-50;-1], а нормально использовать пятьдесят элементов [0;49]
Вот так-то!
Старый 10.11.2010, 20:34
agentex

offline
Опыт: 34,834
Активность:
с нуля офк
Старый 10.11.2010, 20:54
Mihahail
๏̯͡๏
offline
Опыт: 17,766
Активность:
agentex, не для всех это офк)
Старый 10.11.2010, 20:57
ScorpioT1000
Работаем
online
Опыт: отключен
Mihahail, это бред какойто. Никогда не юзайте паскаль и дельфи. Инвариант.
Старый 10.11.2010, 23:34
Owain
FGS
offline
Опыт: 12,911
Активность:
офк для разных целей и в зависимости от того где мы собираемя использовать массив, по поводу player'а приводился пример, вообще в программировании и так ясно, что с нуля, но вот в варе чтобы дополнительно не заморачиваться по этому поводу, большинство( в целом большинство) ставит с единицы, так не запутаешься. Я в опросе поставил с единицы, так как стал считать с нуля около года назад, а остальные года два с половиной считал с единицы =), собственно при той сложности систем и триггеров это значения не имело, но вот теперь перешел на нуль, ибо это действительно дополнительная ячейка и это особо удобно для базы данных, того же самого плэйера, для соотношения, то есть отпадает ненужная необходимость прибавлять единицу к переменной плэйера для соотношения, короче бред все это. Так что я за 0, но поставил 1, т к до этого долго так и считал
Старый 11.11.2010, 00:56
Mihahail
๏̯͡๏
offline
Опыт: 17,766
Активность:
ScorpioT1000, это не бред, это стёб)
Я, кстати, чесслово, даж в начальной школе считал с нуля. И говорил "один" вместо раз"
Ну кроме случаев, когда нада было посчитать "количество в штуках" =)
Насчёт воздержания от дельфи и паскаля согласен, но just for lulz можно.=)
Старый 11.11.2010, 20:56
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 23:14.