LINUX.ORG.RU
ФорумTalks

Народ, завязывайте с программированием


0

0

Я знаю, что звучит уж очень избито... Но события реальные.

В центре Москвы не был уже почти год, вот сегодня наведался. В ларьке радом с Арбатами увидел Rothmans International. ( сигареты достаточно дорогие ( прим. для некурящих ) ). Ну вот решил купить. Продавшица, долго их у себя искала, но найти никак не могла. Все-таки они правда дорогие, и их видимо редко покупают. Тогда я через окошко заглядываю в ларек и вижу там на стелаже блок. Объясняю ей, что силаж такой-то, вторая полка сверху. Она почему-то стала их искать на первой. ( Как, уже догадываетесь? ) Я ей снова говорю, что ВТОРАЯ полка! Она опять ищет на первой. И опять та же история. Только тогда уже дошло, в чем фишка. Я уже полки с сигаретами в киоске с нуля индексирую!

Все, две недели не программить! А то совсем уже с катушек съеду.

Ответ на: комментарий от CrazyPit

Паскаль, говоришь? Какой? Object?

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

Бррррр!!! В мою детскую психику это укладывается (с) моя знакомая

devinull ★★
() автор топика

Используй итераторы и будет тебе счастье :)

Vinick ★★
()

Лучше курить брось, полегчает :)

IMNSHO
()
Ответ на: комментарий от da_fault

С единицы. По определению. А ноль вообще не натуральное число. Почему в C сделали отсчёт с 0 - сказать сложно, но лично у меня не возникает проблем ни в программировании, ни в цивильной жизни. Байты считаются с нуля, апельсины - с единицы. Всё просто ведь...

Eldhenn
()
Ответ на: комментарий от Eldhenn

Мне так один препод говорил. Demetrio и Selecter лучше меня знают - спроси у них.

mikhail
()

А фигня всё. Буржуины тоже вот первым этажом второй называют, а наш первый - это их ground floor. И программирование тут совершенно не при делах.

anonymous
()
Ответ на: комментарий от da_fault

Тебе что, аксиомы Пеано или Чёрчевские целые не давали в школе? Ты наверное вообще ПТУ заканчивал, да?

anonymous
()
Ответ на: комментарий от Eldhenn

Не сложно. В Си вообще нет массивов, есть синтаксический сахар над арифметикой указателей. Так что a[0] это то же самое, что *(a+0).

anonymous
()
Ответ на: комментарий от Eldhenn

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

если рассматривать натуральное число как количество предметов в некоторой области, то 0 --- натуральное число.

если же рассматривать нат. числа как порядковый номер, то 0 не будет натуральным числом.

кстати ссылка на эту тему из википедии: http://ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D1%8C...

hateful_dead
()

Ну вот, всего немного поспал, и тут же озарение пришло :)

Анонимус (08.08.2005 4:49:18), нехороший ты человек, редиска! Сам запутался, и меня запутал. В первом моем посте все написано правильно!

devinull ★★
() автор топика
Ответ на: комментарий от anonymous

Как раз-таки в C есть массивы. Но они постоянно неявно преобразовываются к указателям и обратно. В частности, можно объявить пустой массив - int a[0]; хотя я не вполне представляю, что это значит.

Eldhenn
()
Ответ на: комментарий от hateful_dead

Натуральные числа - числа, используемые при счёте. То что написано в википедии - несколько странно. Я вот не могу посчитать 0 апельсинов. Я могу посчитать 1 апельсин, 2 апельсина, 15+1/3 апельсинов, но 0 апельсинов... Если апельсинов нет, и считать нечего.

Eldhenn
()
Ответ на: комментарий от da_fault

> счет начинается всетаки с нуля

На самом деле все проще. Если считать "начала", то с нуля, "концы" - с единицы. "на N полке сверху" правильно считать с единицы - ибо "на" подразумевает наличие полки, с нуля правильно считать "под N полкой сверху".

DonkeyHot ★★★★★
()

Самое хреновое, когда программисты в полном смысле стараются этого не замечать. Типа всё нормально.

unnamed
()
Ответ на: комментарий от Eldhenn

>То есть как? "Под нулевой полкой сверху"? Маразм какой-то.

Ни разу не маразм. Адреса "перед N-м" и "после (N-1)-го" эквивалентны для всех N больше 1, нет причин не распространить это на 1 тоже. А это даст "после нулевого".

>Забей на полки, давай вернёмся к апельсинам.

Изоморфно. Замени "полка" на "аппельсин", "сверху" на "справа", и положи между ними искомое яблоко.

DonkeyHot ★★★★★
()
Ответ на: комментарий от ddf6f8a0a979b974d9e1dd8ea307c4db

Мы делили апельсин - много наших полегло!

anonymous
()
Ответ на: комментарий от Eldhenn

>Я могу посчитать 1 апельсин, 2 апельсина, 15+1/3 апельсинов, но 0 апельсинов

Даже моя шестилетняя дочь спокойно воспринимает фразу "0 апельсинов". Какие проблемы?

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Согласен. Кто считает, что 0 апельсинов - компьютерный сленг, тому я не завидую. Вот нулевой апельсин - это в лечебное учреждение закрытого типа надо. Лечиться от IAD.

unnamed
()
Ответ на: комментарий от anonymous

Таки есть.

An array type describes a contiguously allocated nonempty set of objects with a particular member object type, called the element type.36) Array types are characterized by their element type and by the number of elements in the array. An array type is said to be derived from its element type, and if its element type is T, the array type is sometimes called ``array of T''. The construction of an array type from an element type is called ``array type derivation''.

A pointer type may be derived from a function type, an object type, or an incomplete type, called the referenced type. A pointer type describes an object whose value provides a reference to an entity of the referenced type. A pointer type derived from the referenced type T is sometimes called ``pointer to T''. The construction of a pointer type from a referenced type is called ``pointer type derivation''.

Не говоря уже о том, что бывают массивы неопределённой длины, переменной длины...

Eldhenn
()
Ответ на: комментарий от DonkeyHot

Человек такое странное существо - он может назвать словами всё что угодно. И придумать из слов какие угодно комбинации. Если можно произнести "0 апельсинов", это не значит что в реальности может быть 0 апельсинов. О том, сколько есть апельсинов можно говорить если они есть. Если апельсинов нет - о них вообще говорить нельзя.

Eldhenn
()
Ответ на: комментарий от Eldhenn

>Человек такое странное существо - он может

... мыслить абстрактно(т.е. не привязываясь к существующим вещам).

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

DonkeyHot ★★★★★
()
Ответ на: комментарий от DonkeyHot

Разумеется! И математика замечательно оперирует понятиями нуля и бесконечности! Но - как ты предполагаешь использовать 0 при счёте? Что значит - 0 апельсинов? Может быть это не апельсинов 0, а 0 камбузелей? Или 0 муравок? Или даже 0 кломпов?

Eldhenn
()
Ответ на: комментарий от Eldhenn

Возможно. А ты подумай вот над чем: что такое множество? Может быть множество множеств? Математика говорит, что может. Но тогда Что такое пустое множество множеств? Вообще, пустое множест является подмножеством любого множества, и даже себя самого. Но если пустое множество содержит себя сомого, то получается, что оно содержит _множество_. Значит не песто!

"Принцип брадобрея" на языке математики: Возьмем множество, элементами которого являются все множества, которые не содержат сами себя в качестве подмножества. Спрашивается, содержит ли оно само себя в качесте подмножества? Насколько я знаю со слов одного доктора ( математики, разумеется ) эту проблему до сих пор не решили.

devinull ★★
() автор топика
Ответ на: комментарий от Eldhenn

>как ты предполагаешь использовать 0 при счёте

Пример из жизни. Пара недель назад, та же дочь учится прыгать через скакалку, перед подпригыванием называет число(так ?физиологически? удобнее). Но на момент подпригивания неизвестно, удастся ли перепрыгнуть. Потому, если считать с единицы последнее названое число будет больше кол-ва успешных прыжков. Но если считать с нуля - все ок.

Правда она тоже не восприняла эту идею:-)

DonkeyHot ★★★★★
()
Ответ на: комментарий от devinull

парадокс Рассела (или иначе парадокс брадобрея)

http://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%BE%D0%BA%D1%81...

получается вследствие использования "интуитивно понятных" определений множества и наивного предположения о существовании множества всех множеств.

если же использовать аксиоматический подход, то доказывается, что множества всех множеств не существует.

также в вики имеются еще статьи на тему теория множеств.

http://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%82%D0%B5%D0%B3%D0%BE%D1%80%D0%B8...:%D0%A2%D0%B5%D0%BE%D1%80%D0%B8%D1%8F_%D0%BC%D0%BD%D0%BE%D0%B6%D0%B5%D1%81%D1 %82%D0%B2

там же еще ряд парадоксов (Хаусдорфа, Банаха-Тарского, ...)

отсюда вывод, что интуитивные определения имеют довольно ограниченную сферу применения.

hateful_dead
()
Ответ на: комментарий от DonkeyHot

Перед подпрыгиванием удобнее? Ок, тогда пусть называет это число перед _следующим_ подпрыгиванием. "Совершено N прыжков". И не будет проблем.

Eldhenn
()
Ответ на: комментарий от devinull

Ну так тот же Рассел и построил типизированную теорию множеств, которая этот парадокс прибивает. А вообще строить математику от неопределимого понятия множества - херово. Гораздо проще строить от понятия "пара".

anonymous
()
Ответ на: комментарий от anonymous

Ни хрена ты не понял, придурок. Прочитай пост внимательнее. Я читал, что 0 апельсинов может быть, а нулевого апельсина не бывает. 0 - это ничего. Я эти слова с 1 класса помню.

unnamed
()
Ответ на: комментарий от CrazyPit

В современных библиотеках вся индексация идет с 0. А более того, никто не мешает создавать такие массивы (даже в TurboPasca for DOS начиная с 6 версией точно):

var a1: array [0..99] of integer; a2: array [1..100] of integer; a3: array ['A'..'Z'] of integer;

"Слышал звон..." :)

ushakov
()
Ответ на: комментарий от Eldhenn

В C нумерация начинается с нуля, потому что первый элемент массива начинается по адресу, на который будет заменено имя массива при компиляции. Второй элемент будет находиться по адрес + 1 * размер_элемента.

PS: не совсем грамотно, но, надеюсь, понятно

ushakov
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.