В системе индексации на основе 0 люди называют элемент с индексом 0 «первым» или «нулевым» элементом? - PullRequest
8 голосов
/ 08 апреля 2010

Например, в Java / C ++ вы случайно говорите, что 'a' - это первый символ "abc" или ноль ?

Говорят ли люди и то и другое, и это всегда будет неоднозначно, или есть фактическое соглашение?


Цитата из Википедии о Zeroth Статья:

В информатике ссылки на массивы также часто начинаются с 0, поэтому программисты могут использовать ноль в ситуациях, когда другие могут использовать сначала, и т. Д.

Казалось бы, это подтверждает гипотезу, что это всегда будет неоднозначно.


Спасибо Александросу Гезерлису ( см. Его ответ ниже ) за то, что он нашел эту цитату из Как думать как компьютерный учитель: Изучение с Python Аллена Б. Дауни, Джеффри Элкнер и Крис Мейерс, глава 7 :

Первая буква "banana" не a. Если вы не ученый компьютер. По ошибочным причинам компьютерные ученые всегда начинают считать с нуля. 0-я буква (ноль-эт) "banana" равна b. 1-я буква (один-эт) - a, а 2-я (двухэтник) - n.

Это, по-видимому, говорит о том, что мы, ученые-компьютерщики, должны отвергать естественную семантику «первое», «второе» и т. Д. При работе с системами индексации на основе 0.

Эта цитата предполагает, что, возможно, ARE официальных постановлений для определенных языков, поэтому я сделал этот вопрос [language-agnostic].

Ответы [ 8 ]

25 голосов
/ 08 апреля 2010

Это первый символ или элемент в массиве, но он имеет нулевой индекс.

9 голосов
/ 08 апреля 2010

Термин «первый» не имеет никакого отношения к абсолютному индексу массива, а просто относится к его относительной позиции как элементу с наименьшим индексом. Например, Turbo Pascal допускает произвольные индексы в массивах (скажем, от 5 до 15). Элемент, расположенный в массиве [5], будет по-прежнему называться first element.

6 голосов
/ 08 апреля 2010

Цитировать эту статью в Википедии :

Хотя термин «ноль» не сам по себе неоднозначно, это создает неоднозначность для все последующие элементы последовательность при отсутствии контекста, так как они называются «первый», «второй», и т.д. в конфликте с нормальным повседневные значения этих слов.

Так что я бы сказал "первый".

4 голосов
/ 08 апреля 2010

Возможно, субъективно, но я называю это первым элементом или элементом ноль. Это первый и, если не считать законов робототехники Исаака Азимова, я даже не уверен, что ноль - это настоящее слово: -)

По определению, все, что предшествует первому, становится первым и выталкивает все остальное на единицу.

2 голосов
/ 08 апреля 2010

Стандарты C и C ++ говорят «начальный элемент» и «первый элемент», что означает одно и то же. Если я не забываю быть однозначным, я говорю «начальный», «нулевой» или «сначала считая с нуля». Но обычно я говорю «первый». Этот банановый материал - это либо юмористическое преувеличение, либо немного помешательство (я подозреваю, что первое - это просто способ объяснить 0-индексацию). Я не думаю, что знаю кого-либо, кто на самом деле сказал бы «первым» означает «индекс 1 массива с 0 индексами», если они сначала не сказали «ноль» в том же абзаце, чтобы прояснить, что они означают. 1001 *

2 голосов
/ 08 апреля 2010

Я бы согласился с большинством ответов здесь, в которых говорится, что первый символ имеет нулевой индекс, но для справки: из книги Аллена Дауни "Python for Software Design" следующее:

Итак, b - это 0-я буква («ноль-эти») «банан», а это 1-я буква («One-eth»), и n является 2-м («Два эти») письма.

Таким образом, он удаляет неоднозначность, используя:

а) число и затем "й", или б) слово, а потом "-ет".

2 голосов
/ 08 апреля 2010

Определенно сначала, никогда не слышал ноль до сегодняшнего дня!

1 голос
/ 08 апреля 2010

Зависит от того, являетесь ли вы фанатом серии Исаака Азимова робот .

...