Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2007.10.14;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.57 MB
Время: 0.064 c
15-1190128267
VirEx
2007-09-18 19:11
2007.10.14
Российская demoкратия (с)


15-1189659867
жук_
2007-09-13 09:04
2007.10.14
жук


3-1181296206
MZ
2007-06-08 13:50
2007.10.14
Триггер или COUNT?


15-1189581269
Sergey13
2007-09-12 11:14
2007.10.14
Интерьер детской комнаты - ищу идеи.


2-1190561097
zlow_andr
2007-09-23 19:24
2007.10.14
THashedStringList?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский