Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.10.14;
Скачать: CL | DM;

Вниз

Традиции программирования   Найти похожие ветки 

 
vasIZmax ©   (2007-09-08 23:33) [0]

Довольно часто в качестве счетчика в цикле мы используем (ну, если что-то пустяковое пишем) переменную "i". А когда к примеру пара вложенных то часто используется в качестве переменных "i" и "j". Или теже символы при работе с a[i,j].

Так вот, сегодня в папке (бумажной) у друга нашел распечатку (потрепанную всю:-)) в которой было написано (цитирование не дословное, а смысловое)
"... на языке Фортран имена всех Z-переменных должны были начинаться с букв "i", "j" и еще какие-то символы. Многие программеры, работающие на фортране, часто использовали имя "i" для переменных, выполняющих роль счетчика цикла... традиция сохранилась и до наших дней..."
Интересно было почитать:-)

А теперь собственно вопрос: какие есть еще "традиции"? Может кому что попадалась?


 
Kerk ©   (2007-09-08 23:34) [1]

А разве это не от слова "итератор"?


 
palva ©   (2007-09-08 23:37) [2]

Имена классов начинать с буквы T
Имена типов-указателей начинать с буквы P
Имена типов-исключений начинать с буквы Ёоо


 
Zeqfreed ©   (2007-09-08 23:37) [3]

> Kerk ©   (08.09.07 23:34) [1]

Это от слова int :)


 
Инс ©   (2007-09-08 23:37) [4]


> [2] palva ©   (08.09.07 23:37)

Интерфейсов - с буквы I, а дескрипторов - H :)


 
Zeqfreed ©   (2007-09-08 23:38) [5]

> palva ©   (08.09.07 23:37) [2]

Это не столько традиция сколько негласное соглашение.


 
Petr V. Abramov ©   (2007-09-08 23:42) [6]

palva ©   (08.09.07 23:37) [2]
это дельйфийской, например, в .Net это НАСИЛЬНО (ИМХО) отменено.

> теперь собственно вопрос: какие есть еще "традиции"?
"вообще" - см. языки 60-70-х


 
ANTPro ©   (2007-09-08 23:49) [7]

Посмотри "Венгерская нотация" на вики.


 
Petr V. Abramov ©   (2007-09-08 23:52) [8]

ANTPro ©   (08.09.07 23:49) [7]
> Посмотри "Венгерская нотация"
ни при чем


 
Макс Черных ©   (2007-09-09 00:12) [9]


> на языке Фортран имена всех Z-переменных должны были начинаться
> с букв "i", "j" и еще какие-то символы

Не знаю, что за Z переменные такие, но Фортран (ЕСовский по крайней мере) не требовал обязательного объявления типа переменных. Однако, переменные начинающиеся с: I, J, K, L, M, N считались, при отсутсвии явного указания, типом INTEGER, а все остальные - типом REAL.
Оттуда все и пошло, учитывая то, что Фортран был (да и есть) самым распространенным языком для различных математических расчетов.
Я, кстати, уже неоднократно тут приводил легендарную историю, про то, как один чел в МВТУ словил 2 балла вот за такую строчку на фортране A = 1 как думаете - почему? :)


 
Anatoly Podgoretsky ©   (2007-09-09 00:18) [10]

> Макс Черных  (09.09.2007 00:12:09)  [9]

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


 
Zeqfreed ©   (2007-09-09 00:18) [11]

> Макс Черных ©   (09.09.07 00:12) [9]

Неужели все переменные A по умолчанию равны единице?


 
Marser ©   (2007-09-09 01:30) [12]

Я просто так привык :)
Ещё с Бейсика (кстати, через два-три месяца будет десять лет со дня моего знакомства с программированием :-) )


 
Германн ©   (2007-09-09 01:34) [13]


> Marser ©   (09.09.07 01:30) [12]
>
> Я просто так привык :)

Не. Тебя просто так "привыкли" другие :-)


 
Marser ©   (2007-09-09 01:39) [14]


> Германн ©   (09.09.07 01:34) [13]
>
> > Marser ©   (09.09.07 01:30) [12]
> >
> > Я просто так привык :)
>
> Не. Тебя просто так "привыкли" другие :-)

После универа i и j это ещё и обозначения воображаемой единицы :-)


 
Германн ©   (2007-09-09 02:18) [15]


> Marser ©   (09.09.07 01:39) [14]
>

В догонку. Я вот наверно внутренне какой-то неформал или придерживаюсь нетрадиционной ориентации :-)
У меня после i  идут k, n и m. А j ну никогда не использую :-)


 
Макс Черных ©   (2007-09-09 03:51) [16]


> Если тип был явно указан, то из-за дурости или низких знаний
> предподователя, а если тип указан, то тем более.
> Неужели все переменные A по умолчанию равны единице?

Очевидно надо повторить историю. Итак, место действия - МВТУ кафедра П6, 1987 год. Препод - некто Ваулин, "горячо" любимый студентами, которые в знак благодарности нанесли на стены кафедрального сортира надпись " Ваулин - фортран чортов, уе##ще бауманское, чтоб на тебя кафедра П6 обвалилась". У этого Ваулина было всего две оценки на экзамене 5 и 2.
Так один отличник на экзамене предъявил ему прогу, где и была печально знаменитая строчка A = 1 при отсутствии явного задания типа переменной А, на что Ваулин ему заявил, что в Фортране переменная начинающаяся на А имеет по умолчанию тип REAL, а константа 1 имеет тип INEGER (а вот константа 1. то есть с точкой, имеет тип REAL). Сие означает, что в предъявленной проге LinkEditor (линкер тогдашний) тупо прицепит вызов подпрограммы перевода целого числа в число с плавающей точкой. А это есть абсолютно ненужное и излишнее расходование машинного (т.е. процессорного) времени. А значит оценка - 2. Студент в шоке было попытался возразить, что мол это преобразование выполнится за тысячную долю секунды. В ответ Ваулин заявил, что если товарищ считает, что все верно и напишет подобное, скажем, в цикле выполняющемся 100 миллионов раз, то это будет болше суток работы ЭВМ в холостую, что при стоимости машиночаса (в те времена) 120 рублей нанесет Родине офигенный ущерб. :) Ну и прогнал бедолагу с позором. А надо то было всего-то написать не "A = 1" а "A = 1."
Потом студенты горько шутили - злобный Шлоссер вырезал точку (© фильм "Вариант Омега"). Вот такая жесть. :) Хотя, по сути, Ваулин был, в общем то, прав совершенно.


 
Anatoly Podgoretsky ©   (2007-09-09 12:50) [17]

> Германн  (09.09.2007 02:18:15)  [15]

Не любишь хвостик снизу?


 
Германн ©   (2007-09-09 14:09) [18]


> Anatoly Podgoretsky ©   (09.09.07 12:50) [17]

Не люблю. Хвост, если он есть, должен стоять трубой! :-)


 
isasa ©   (2007-09-09 14:45) [19]

Макс Черных ©   (09.09.07 00:12) [9]

Anatoly Podgoretsky ©   (09.09.07 00:18) [10]


Это правда. Традиция(правило) начатое Fortrun-ом и продолженная PL1(PL/O). Сколько народу на этом пострадало(необъявленной переменной, начинающейся с i,j,r,l, ... присваивается тип BINARY INTEGER), только Богу ведомо.
Вирт, в этом отношении, абсолютно прав, - это зло.
Было предупреждение, но кто их в листингах читает.

зы. В современных книгах видел циклы с индексом x, сразу настораживает. :)


 
J_f_S   (2007-09-09 17:55) [20]


> isasa ©   (09.09.07 14:45) [19]
> ....
>В современных книгах видел циклы с индексом x, сразу настораживает.
>  :)

Почему? Иногда удобно. Вот прогоняешь картинку, например, по пикселям, так x и y удобней чем i и j. Да и все что связано с координатами.


> Макс Черных ©   (09.09.07 03:51) [16]

Вот чем меньше в системе образования будет таких воинствующих ушлепков-теоретиков, тем лучше. То, что у нас в большинстве случаев технологии разработки ПО ведут люди, которые программистами не были никогда, и не представляют себе ничего выходящего за рамки синтаксиса языка - это ахтунг. К чему этот дешевый понт перед студентами?


> Германн ©   (09.09.07 14:09) [18]
> > Anatoly Podgoretsky ©   (09.09.07 12:50) [17]Не люблю.
>  Хвост, если он есть, должен стоять трубой! :-)

;)


 
isasa ©   (2007-09-09 18:36) [21]

J_f_S   (09.09.07 17:55) [20]
Почему? Иногда удобно. Вот прогоняешь картинку, например, по пикселям, так x и y удобней чем i и j.


Элементарно ... :)

В данном случае, можно сказать, что человек плохо различает, как раньше выражались, формальные и фактические параметры ... :)


 
IOs   (2007-09-09 19:27) [22]

> кстати, через два-три месяца будет десять лет со дня моего знакомства с программированием :-)

СлавнЫй город Винница будя петь и плясать :-)


 
Юрий Зотов ©   (2007-09-09 19:40) [23]

> J_f_S   (09.09.07 17:55) [20]

> Вот чем меньше в системе образования будет таких воинствующих
> ушлепков-теоретиков, тем лучше. То, что у нас в большинстве случаев
> технологии разработки ПО ведут люди, которые программистами не были
> никогда, и не представляют себе ничего выходящего за рамки синтаксиса
> языка - это ахтунг.

В данном случае Вы глубоко заблуждаетесь. Поскольку в рассказанной Максом истории преподаватель, продемонстрировал, помимо знания теории, еще и четкий практический подход, и знания, за синтаксис языка далеко выходящие. ПРичем еще и с полным пониманием того, как все это работает.

Настоящий же ахтунг же заключается в том, что 90% выпускников IT-специальностей ВУЗов программировать, по сути, не умеют. А уж до понимания того, как это все работает им и вообще как до Луны.

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

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

Хотя и тоже неприменимо.


 
Denis_ ©   (2007-09-09 19:47) [24]

Сурьёзная отповедь.Походу Вы, Юрий, тоже были когда-то преподом?


 
Desdechado ©   (2007-09-09 19:47) [25]

Есть подозрение, что i, j, k и т.п. в качестве переменных цикла появились еще в бумажной записи всяких сумм. Поэтому к программированию как к таковому отношение имеют слабое.


 
isasa ©   (2007-09-09 19:55) [26]

Desdechado ©   (09.09.07 19:47) [25]
Спецификация Fortrun, PL1, PLO для IBM 360/370 дают ответ.
Кроме этого, насколько вспоминаю, стандарт С(и тем более Паскаля) не предполагает объявлений "по-умолчанию".
Да и строгое соответствие формальных и фактических параметров заявленны в этих-же языках.


 
Юрий Зотов ©   (2007-09-09 20:19) [27]

> Denis_ ©   (09.09.07 19:47) [24]

Был (правда, недолго), но дело совсем не в этом.


 
TUser ©   (2007-09-09 20:22) [28]

i - наверное, от слова Integer

А вторая переменная называется j. Третья - k. Это деклается по аналогии с базисными векторами. Имхо.


 
Desdechado ©   (2007-09-09 20:30) [29]

> isasa ©   (09.09.07 19:55) [26]
> Спецификация Fortrun,  PL1, PLO для IBM 360/370 дают ответ.
Ответ на что? На то, что эти языки появились раньше записи сумм на бумаге?
Ты жжешь!


 
Kerk ©   (2007-09-09 20:32) [30]

> [23] Юрий Зотов ©   (09.09.07 19:40)

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


 
Галинка ©   (2007-09-09 20:36) [31]

Это очень показательный пример. Спасибо за интересную информацию.

Когда программировала на Дельфи, с моей любовью к циклам, i, j, k были самыми популярными короткими идентификаторами. Доставало только одно, что в спецификации Дельфи эти идентификаторы можно было делать только локальными. Т.е. в каждой процедуре, где предполагалось использовать цикл, было необходимо объявить i,j: integer;. Поэтому считаю хорошей идеей появление foreach в библиотеке платформы .net.


 
Petr V. Abramov ©   (2007-09-09 20:37) [32]

может, препод каждую лекцию заканчивал словами: "и помните про неявное приведение типов". А может, не заканчивал.


 
Anatoly Podgoretsky ©   (2007-09-09 20:39) [33]

> Kerk  (09.09.2007 20:32:30)  [30]

С точки зрения работоспособности код полностью работоспособен. А то что у Фортрана плохой компилятор в этой части, так это факт. У него 1 и 1. разные числа, разного типа.
Но на работоспособность это в данном случае не влияет. Точно также будет и для i = 1.
В следующих языках, почти во всех от этого ушли, как и от определения типа по первой букве.


 
Kerk ©   (2007-09-09 20:41) [34]

> [33] Anatoly Podgoretsky ©   (09.09.07 20:39)

Я это понял :)


 
Desdechado ©   (2007-09-09 20:47) [35]

>  У него 1 и 1. разные числа, разного типа.
В Си тоже, и это не удивительно.


 
Зотов   (2007-09-09 20:48) [36]

> Kerk ©   (09.09.07 20:32) [30]

В Фортране (а о нем и идет речь) это никакой не нюанс, а элементарнейшая АЗБУКА, и о нем рассказывают ОБЯЗАТЕЛЬНО, просто потому, что входит в программу курса. Стало быть, но каком недочете препода в данном случае и речи быть не может. Спрашивал он тоже в рамках программы (что и обязан был делать), так что и тут его не упрекнешь.

Другое дело, что у него, как говорит Макс, существовали только 2 оценки, с такой крайностью я тоже не согласен. Но не настолько, чтобы называть человека ушлепком только за то, что у него своя методика преподавания и приема экзаменов. За этими делами следит кафедра и учебный отдел - и если бы они сочли, что преподаватель подходит к студентам слишком жестко, его бы уже давно заставили пересмотреть подход, можно не сомневаться. А раз не заставили - значит, не сочли.


 
Anatoly Podgoretsky ©   (2007-09-09 20:51) [37]

> Kerk  (09.09.2007 20:41:34)  [34]

Но фортрану можно простить, все таки или первый язык высокого уровня или один из первых, где то середина 50х


 
Юрий Зотов ©   (2007-09-09 21:58) [38]

[36] - мое. Куки потерлись, а по невнимательности неполный ник набрал. Сорри.


 
isasa ©   (2007-09-09 22:33) [39]

Anatoly Podgoretsky ©   (09.09.07 20:39) [33]
А то что у Фортрана плохой компилятор в этой части, так это факт. У него 1 и 1. разные числа, разного типа.

:)
Насколько вспоминается этот компилятор наиболее шустрый в плане арифметики с плавающей точкой(в run-time).


 
Anatoly Podgoretsky ©   (2007-09-09 23:02) [40]

> isasa  (09.09.2007 22:33:39)  [39]

Я не про скорость, а про синтактический разбор.



Страницы: 1 2 3 вся ветка

Текущий архив: 2007.10.14;
Скачать: CL | DM;

Наверх




Память: 0.58 MB
Время: 0.044 c
15-1189666216
Ламот
2007-09-13 10:50
2007.10.14
Вчера спор на ровном месте получился, помогите пож. разобраться))


1-1186038494
DevilDevil
2007-08-02 11:08
2007.10.14
Указатель на виртуальную функцию. Помогите.


15-1190041249
Cyrax
2007-09-17 19:00
2007.10.14
7-Zip: чем написан ?


3-1181237949
AlexDav
2007-06-07 21:39
2007.10.14
Из Access в InterBase


2-1189674456
alles
2007-09-13 13:07
2007.10.14
Как правильно уничтожать обьекты?