Объявление

Односложные и бессмысленные темы, не несущие полезную нагрузку или не содержащие в себе вопрос, будут удаляться!

#1 06-06-12 15:35:37

Luca
Участник
Здесь с 03-09-09
Сообщений: 1,545
Windows XPFirefox 13.0

почему в программирование ноль - это первый элемент?

Казалось бы, ноль - это ничего. Но почему тогда в программирование принято, что нот - это первый шаг для отсчета? Почему не единица? Разве не логичнее было бы?

Вне форума

#2 06-06-12 15:41:51

NEMO
Поджигатель
Здесь с 28-12-11
Сообщений: 942
Windows 7Firefox 12.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

Казалось бы, ноль - это ничего. Но почему тогда в программирование принято, что нот - это первый шаг для отсчета? Почему не единица? Разве не логичнее было бы?

Потому что иначе теряется одно значение. А в программировании это важно.

Вне форума

#3 06-06-12 15:47:00

straus
Участник
Здесь с 01-06-11
Сообщений: 975
LinuxChrome 19.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

Казалось бы, ноль - это ничего.

Рекомендую покурить темы из начальной математики натуральные и целые числа.


В детстве я молил бога о велосипеде;
потом понял что бог работает по-другому...
я украл велосипед и стал молить бога о прощении.
Аль Пачино

Вне форума

#4 06-06-12 15:58:41

Okkamas Buddy
Участник
Откуда: СПб
Здесь с 22-05-12
Сообщений: 1,011
Windows 7Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

Ребёнок когда рождается, ему 0 лет. И только через год будет 1 год.


Случайности не случайны.

Вне форума

#5 06-06-12 16:54:38

Luca
Участник
Здесь с 03-09-09
Сообщений: 1,545
Windows XPFirefox 13.0

Re: почему в программирование ноль - это первый элемент?

straus, как я понимаю ноль это все же ничто. Или нет? Просто только что статью про ноль читал и отсюда такой вопрос возник.

Okkamas Buddy, ну в теории логично, только считаем то мы всегда в жизни с одного т.е. если ничего нет, то это нельзя сосчитать.

Вне форума

#6 06-06-12 17:10:48

Белая рысь
Мартовский кот
Здесь с 13-08-10
Сообщений: 721
Windows 7Internet Explorer 7.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

если ничего нет, то это нельзя сосчитать.

Ну... лет нет, а ребёнок - есть. Вот такой парадокс. smile
А вообще, с нуля, если строить аналогии, считают, потому что надо учитывать, что при подсчёте количества яиц в корзине их отсутствие - тоже количество. IRL это нечасто бывает важно, а в компьютере - сплошь и рядом. Сколько, например, в пустом массиве элементов?
PS: В Pascal массивы нумеруются с 1. smile)


Да Белый рысь он из таких, "сам по себе", типа "пришел, увидел, обосрал"©wr224
Человек который работает в операционной системе - это пользователь. а линуксоид - это за##от малолетний, который по форумам орет "венда сакс"©Баш

Вне форума

#7 06-06-12 17:14:22

дохтур
Боевой дятел
Здесь с 30-11-09
Сообщений: 767
Windows XPOpera 11.64

Re: почему в программирование ноль - это первый элемент?

Подразумеваем первый элемент, но по нулевому смещению от начала массива, т.е. в языках с прямым доступом к памяти - без вариантов


бывает, новые пользователи перезагружают компьютер, потому что не знают, как ещё можно выйти из vi
---
Провокатор хуев -) Я к тебе в твою конторку инсайдера зашлю, ты даже не узнаешь в какой момент тебя поимели -) (с) Rector

Вне форума

#8 06-06-12 17:26:25

straus
Участник
Здесь с 01-06-11
Сообщений: 975
LinuxChrome 19.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

straus, как я понимаю ноль это все же ничто. Или нет? Просто только что статью про ноль читал и отсюда такой вопрос возник.

Нет, ноль - это ноль, а ничего - это ничего.

Luca пишет:

ну в теории логично, только считаем то мы всегда в жизни с одного т.е. если ничего нет, то это нельзя сосчитать

Скажите, а "-1" как cосчитать, а "-1,5", а sqrt(2), а 1+2i? Облать применения натурального множества даже в жизни домохозяйки ограничена.


В детстве я молил бога о велосипеде;
потом понял что бог работает по-другому...
я украл велосипед и стал молить бога о прощении.
Аль Пачино

Вне форума

#9 06-06-12 18:17:26

shell32
XP fan
Здесь с 28-08-10
Сообщений: 235
Windows 7Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

straus, как я понимаю ноль это все же ничто

В программировании ноль это не ничто, а такое же число как все остальные.

Белая рысь пишет:

PS: В Pascal массивы нумеруются с 1.

Неа, тоже с 0, по умолчанию. А вообще - можно задать с какого хочешь числа, например вот такой массив:

array[5..10] of Integer

будет нумероваться с 5.
С 1 там нумеруются символы в строках, да и то потому что строка в Pascal это массив где первый элемент хранит длину строки, а символы - начиная со второго (поэтому и нумеруются с 1).


25a12bc13076.gif  Windows == УМВР tongue

Вне форума

#10 06-06-12 18:38:38

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
Windows 8Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

В асме когда обращаешься к памяти [eax] - обращаешься к первому байту. [eax+1] - второму. Вот так и получается
[eax] -> [0]
[eax+1] -> [1]


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#11 06-06-12 19:57:45

judas
Стефани forever
Откуда: у меня нет ПМЖ
Здесь с 04-06-12
Сообщений: 11
Сайт
Windows 7Opera 11.64

Re: почему в программирование ноль - это первый элемент?

проблема не в нуле Luca, проблема в человеке.
Человек привык считать от 1 до 10, потому что у него столько пальцев. Человеку всё равно, сколько информации содержит 10 одни или 2 символа, ему удобней.
Компьютер не человек и он не понимает термины удобно-неудобно. У него есть некоторый объем информации например 1 байт. В этот объём вмещается 256 натуральных чисел от 0 до 255 (00-FF). Зачем программисту "терять" лишнее значение используя нумерацию по принципу "удобно", внося в код дополнительную путаницу.


я не умею ставить подписи

Вне форума

#12 06-06-12 21:01:41

pavel2403
Разбанен
Откуда: Санкт-Петербург
Здесь с 06-10-09
Сообщений: 1,129
Windows XPInternet Explorer 7.0

Re: почему в программирование ноль - это первый элемент?

Белая рысь пишет:

PS: В Pascal массивы нумеруются с 1. )

А VB если по дефолту то с 0, а если в разделе деклараций записать Option Base 1 то тогда с 1. Однако, функции результат которых массив (Split() например)независимо от режима всегда возвращают нижнюю границу с 0, все контролы так же имееют нижнюю границу 0


Господа, вы охуели. Все. ©Cэмен

Вне форума

#13 06-06-12 22:51:55

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
MacintoshSafari 5.0

Re: почему в программирование ноль - это первый элемент?

judas, да, но, это все впитали и другие языки программирования. К примеру, такие скриптовые языки, как руби или питон, для них 20 мб памяти это вообще ничто. Но, нумерация элементов от нуля.


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#14 07-06-12 00:03:20

MOP3E
Участник
Здесь с 05-10-09
Сообщений: 4,208
Windows 7Firefox 12.0

Re: почему в программирование ноль - это первый элемент?

Luca пишет:

Казалось бы, ноль - это ничего. Но почему тогда в программирование принято, что нот - это первый шаг для отсчета? Почему не единица? Разве не логичнее было бы?

Не только в программировании. В математике и геометрии ноль - начало координат.


Я не игрушечный. Я, б*я, коллекционный! (с) Duke Nukem Forever
Я не специалист по [вставить название]. Мне главное концептуально решить задачу! (с) АхаRu.
Линукс - это альтернативная ОС о которой известно, что она не является ОС ну вот просто ни разу. (с) Linups_Troolvalds.
А с какого такого перепугу пользователей линукса должно быть больше 1%? (с) petrun

Вне форума

#15 07-06-12 13:47:16

judas
Стефани forever
Откуда: у меня нет ПМЖ
Здесь с 04-06-12
Сообщений: 11
Сайт
Windows 7Opera 11.64

Re: почему в программирование ноль - это первый элемент?

Но, нумерация элементов от нуля.

Babusha, а где нумерация от единицы?


я не умею ставить подписи

Вне форума

#16 08-06-12 00:25:56

MOP3E
Участник
Здесь с 05-10-09
Сообщений: 4,208
Windows 7Firefox 12.0

Re: почему в программирование ноль - это первый элемент?

judas пишет:

Babusha, а где нумерация от единицы?

В некоторых диалектах Бейсика нумерация массивов была с единицы. В других можно было задать способ нумерации - от нуля или от единицы. Например, в VBA. Но, собственно, это не критично.


Я не игрушечный. Я, б*я, коллекционный! (с) Duke Nukem Forever
Я не специалист по [вставить название]. Мне главное концептуально решить задачу! (с) АхаRu.
Линукс - это альтернативная ОС о которой известно, что она не является ОС ну вот просто ни разу. (с) Linups_Troolvalds.
А с какого такого перепугу пользователей линукса должно быть больше 1%? (с) petrun

Вне форума

#17 08-06-12 00:49:06

Невропаразитолог
Алексей
Здесь с 05-10-09
Сообщений: 2,729
Windows 7Internet Explorer 9.0

Re: почему в программирование ноль - это первый элемент?

"нулевой" этаж, "нулевой" причал в порту - в реальной жизни тоже некоторые объекты нумеруются с нуля.


0_685e9_d23af5a0_XS.jpg очевидно-невероятное или невероятно-очевидное...

Вне форума

#18 08-06-12 16:16:55

judas
Стефани forever
Откуда: у меня нет ПМЖ
Здесь с 04-06-12
Сообщений: 11
Сайт
Windows 7Opera 11.64

Re: почему в программирование ноль - это первый элемент?

В некоторых диалектах Бейсика нумерация массивов была с единицы.

помнится такое, в прошедшем тысячелетии было )
В паскале например строчки до сих пор начинаются с единицы (string)


я не умею ставить подписи

Вне форума

#19 08-06-12 16:49:45

дохтур
Боевой дятел
Здесь с 30-11-09
Сообщений: 767
Windows XPOpera 11.64

Re: почему в программирование ноль - это первый элемент?

judas пишет:

В паскале например строчки до сих пор начинаются с единицы (string)

Т.к. в нулевом байте - длина строки  smile


бывает, новые пользователи перезагружают компьютер, потому что не знают, как ещё можно выйти из vi
---
Провокатор хуев -) Я к тебе в твою конторку инсайдера зашлю, ты даже не узнаешь в какой момент тебя поимели -) (с) Rector

Вне форума

#20 08-06-12 18:44:33

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
Windows 7Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

дохтур пишет:

Т.к. в нулевом байте - длина строки

Т.е. в паскале нельзя сделать строку длиной 100h  бит? Даже в асме и то можно  big_smile


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#21 08-06-12 19:58:33

SemyonKozakov
Журнашлюшка :)
Откуда: Саратов
Здесь с 28-11-09
Сообщений: 4,394
Сайт
Windows 7Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

Babusha пишет:

Т.е. в паскале нельзя сделать строку длиной 100h  бит?

В обычном - нет, длина строки по умолчанию 255 символов, можно увеличить специальной командой (скорее всего, ей просто заводится отдельная константа). В Delphi можно.


nolinux.w2c.ru - море баттхерта и деаонимизации

Вне форума

#22 08-06-12 21:09:29

ikkunan salvataja
Участник
Здесь с 30-01-10
Сообщений: 2,803
LinuxFirefox 10.0

Re: почему в программирование ноль - это первый элемент?

Babusha пишет:

Даже в асме и то можно

Что значит даже? Всё, что можно сделать в любом языке программирования, можно сделать и в асме, и даже больше. Вопрос только в затратах времени на это. А вообще то такие понятия как символьная или числовая переменная к асму не применимы.


Yesterday it worked.
Today it is not working.
Windows is like that.

Вне форума

#23 08-06-12 21:15:31

Babusha
Нехристь
Здесь с 12-03-10
Сообщений: 2,221
Windows 7Chrome 19.0

Re: почему в программирование ноль - это первый элемент?

ikkunan salvataja пишет:

Что значит даже? Всё, что можно сделать в любом языке программирования, можно сделать и в асме, и даже больше. Вопрос только в затратах времени на это. А вообще то такие понятия как символьная или числовая переменная к асму не применимы.

В асме вообще нет переменных, только регистры, только адреса памяти, только хардкор  smile


Удовлетворен GNU/Linux (с) Linups_Troolvalds
13-значный пароль, состоящий из одних цифр, ломается за полчаса (с) Rector. Авторитетный Хакер у себя в классе
Я тебя просто отсюда выпилю.  (с) Рехтур. Взламывает анусы по ойпи.

Вне форума

#24 19-06-12 10:44:08

DonDublon3
Участник
Откуда: Уфа
Здесь с 06-05-10
Сообщений: 676
Windows 7Opera 12.00

Re: почему в программирование ноль - это первый элемент?

потому что так исторически сложилось с языка С.
есть переменная myvar - указатель, замечу.
можно обратиться к myvar[0], и к myvar[1], и вообще с любым натуральным смещением.
какой элемент логичнее считать отправным для массива? конечно, [0].


"Фу бля, крохобор вонючий" (с) Svart Testare

Вне форума

#25 18-08-12 12:29:54

gaal
Участник
Здесь с 05-10-09
Сообщений: 362
UbuntuFirefox 14.0

Re: почему в программирование ноль - это первый элемент?

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

1) arr - массив в памяти. arr +0 первый элемент, arr + 1 второй и тд smile

2) Цикл.

mov cx, 5
loop:
dec cx
jnz loop

Давно не писал на асме. Простая конструкция. После вычитания устанавливается флаг нуля. Если не ноль выполнить цикл еще раз.

Вне форума

Сейчас в этой теме пользователей: 0, гостей: 1
[Bot] ClaudeBot

Подвал форума

Под управлением FluxBB
Модифицировал Visman

[ Сгенерировано за 0.011 сек, 7 запросов выполнено - Использовано памяти: 1.78 Мбайт (Пик: 1.86 Мбайт) ]