![]() |
|
Модераторы: LSD |
![]()
|
|
| Она |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 399 Регистрация: 23.4.2004 Где: Москва |
А вот таперь о красоте. Считаю, что программистам, в плане зрителей (как художникам) не повезло. Так, что не получится из программистов Ван Гогов (хоть все поотрезайте). Очень мало людей занимаются программированием, еще меньшее количество способно ОЦЕНИТЬ код другого человека. Да и вкусы у всех разные, но как мне кажется, главная красота кода, в его философии...понятности и т.д. Т.е. она зависит от очень многих факторов, может человек придумать офигенное решение, но реализует его криво, и "красота" его от этого пострадает... Это я Вам тут как художник говорю, как человек, способный понять муки творчества программистов....
-------------------- С уважением. Мария. |
|||
|
||||
| Lonley |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 597 Регистрация: 7.10.2003 Где: северные ворота М урманск |
в квартире полный бардак, а в программе я немогу пройти мимо если нет положенного
отступа ---------------------------- коментарии обязательно
типа вот таких Это сообщение отредактировал(а) Lonley - 16.5.2004, 02:26 -------------------- Земную жизнь пройдя до половины, Я очутился в сумрачном лесу, Утратив правый путь во тьме долины. Каков он был, о, как произнесу, Тот дикий лес, дремучий и грозящий, |
|||
|
||||
| maxim1000 |
|
||||||||||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
Мне кажется, стоит разделить понятие "красота кода" и "красота решения задачи"
К красоте кода в моем понимании относится все, что связанно с форматированием, именами переменных и функций, выделению кусков кода в отдельные функции и пр. А вот к красоте решения задачи (опять же в моем понимании) относится то, что здесь обсуждается Я, кстати, за 3-й вариант: не могу придумать нормального ллкритерия, по которому он был бы хуже какого-то другого
думаю, хорошие компиляторы переделают это в "mod 2"
не-е, лишнее обращение к памяти по сравнению с 3-м, а в остальном все так же, плюс необходимость заполнения массива перед работой
интересно, что на моем рабочем месте жуткий беспорядок (как я написал в теме про рассеяность), а вот в программах я фанатично все упорядочиваю Даже в программах на ассемблере использую имена переменных и ссылок иногда больше десятка символов, отступы в соответствии с блоками кода (я даже в институтских конспектах вместо абзацев использовал отступы, как в программах: в них можно семантики больше вложить)
вот и приходится сидеть и восхищаться совим кодом Добавлено @ 02:32
о, вот у меня и соратник появился, а то на работе все смеются (точнее сначала смеялись, потом привыкли), когда я начинаю устанавливать отступы --- кстати, ошибочка маленькая:
имелось в виду, конечно, наоборот... -------------------- qqq |
||||||||||||||
|
|||||||||||||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US |
Lonley
Респект --------------------
|
|||
|
||||
| Baa |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2639 Регистрация: 12.4.2002 Где: Москва |
Мне ближе всего третий вариант. Да, кстати, кто-то там говорил про дробные числа? Дробные числа свойствами четности не обладают ;) Потому мы имеем дело только с целыми числами.
з.ы. самый красивый код:
-------------------- "Duty is everything; the greatest of joys, the deepest of sorrows" Aribeth de Tylmarande |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург |
Baa
Да... С тех пор как впервые это увидел всегда только так и пишу -------------------- Да. Именно так. |
|||
|
||||
| maxim1000 |
|
||||||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3334 Регистрация: 11.1.2003 Где: Киев |
не сказано вывести 1 для нечетных чисел, которые должны быть для этого целыми если 0.5 нельзя назвать четным, поэтому это - как раз тот самы "противный случай"
к сожалению не помню Intel'овского ассемблера (возможно ли там "mov ax,0"), но мне этот код красивым не кажется. По мне так код должен быть понятным, и не просто понятным, а таким, чтобы тратилось минимум времени на пониманием хотя бы отдельных строк. Когда я смотрю на эту строку, вижу прежде всего логическую операцию и начинаю размышлять, где это у меня в чисто вычислительном алгоритме оказались логические операции... Кстати, последнее время наблюдается перенос С-ишного синтаксиса в ассемблеры, вот это мне нравится... -------------------- qqq |
||||||
|
|||||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург |
Можно писать и mov ax,0, но xor ax,ax выполняется быстрее. Хотя ты наверно прав, что сторонний человек догадается не сразу
А насчёт переноса синтаксиса языков высокого уровня в асм, то в этом есть и минусы. Чел привыкший думать на языке Си не сразу увидит большую гибкость асма и следовательно эффективность кода будет ниже. -------------------- Да. Именно так. |
|||
|
||||
| Chingachguk |
|
||||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1232 Регистрация: 25.3.2002 Где: Москва |
Ну не скажи... Возьмем реализацию следующей задачи: если i равно 1, то i сделать равным 2 - иначе сделать его равным 1. Может встретится в двухкнопочном окне в обработчике нажатий клавиш, где i - номер кнопки (1,2). Можно сделать так:
но можно и так:
-------------------- I don't like the drugs (but the drugs like me). M.Manson. |
||||||
|
|||||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin |
А как насчет "надежности" кода, код должен проверять входные данные на корректность если они поступили из ненадежного источника, а поскольку мы не знаем источник данных, надо считать его ненадежным, значит надо проверить как минимум на диапазон входных значений или даже на целочисленность, если данные поступают в формате допускающем дробные значения.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| chipset |
|
|||
|
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 4071 Регистрация: 11.1.2003 Где: Seattle, US |
И ещe исключение генерить;)
--------------------
|
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin |
По обстоятельствам, если это автономная процедура и язык поддерживает исключения то генерить. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| dm9 |
|
|||
![]() Дмитрий Копытин ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 3876 Регистрация: 22.7.2002 Где: Москва |
Baa, а меня ещё больше порадовало решение задачи "поменять местами два числа, не используя 3-ю переменную".
xor ax, bx xor bx, ax xor ax, bx А вот насчёт красоты кода - не могу читать код, пока по-своему не отформатирую. Красота определяется привычкой. А вот изящно решённая задача - это да! Порадовать может. Как вышеупомянутая, например. Или вот это решение, например http://forum.vingrad.ru/index.php?showtopi...t=0entry91663 |
|||
|
||||
| Дрон |
|
|||
![]() Java-ненавистник :) ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3179 Регистрация: 29.12.2002 Где: Санкт-Петербург |
Ну уж если использовать асм, то там есть xchg А можно ещё так: a = a + b b = a - b a = a - b А что вы скажете про разницу между: for (i=0;i<n;i++) и for(i=n-1;i>=0;i--) Какой цикл по вашему лучше, если n - переменная и порядок обхода не важен? -------------------- Да. Именно так. |
|||
|
||||
| Coocky |
|
|||
![]() GUI гуру ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2879 Регистрация: 16.2.2004 Где: Украина. Запорожь е |
Вообще гениальный код приходит как гениальная мысль.Нелзя(НЕ ВЕРЮ!!!) все время писать гениально!!!Просто иногда пробивает...
Я помню как давно написал сортировку методом пузырька одним циклом.Препод в шоке был Но работало.Хотя при проверке на большом массиве скорость была ужасная. Это сообщение отредактировал(а) Coocky - 16.5.2004, 23:28 -------------------- Верю в смерть после жизни, в любовь после секса ,в крем после бритья |
|||
|
||||
![]()
|
| Правила раздела «Флейм» | |
|
|
Добро пожаловать в «Флейм». В разделе не действуют многие правила:
Строго запрещено:
Напоминаем о существовании волшебной кнопочки "Репорт". Если вы увидели сообщение, несовместимое с жизнью, просьба подвести на нее курсор и клацнуть левой клавишей мышки. Тем самым вы сможете призвать злого, но жутко справедливого джина-модератора, который нашлет порчу на злостного нарушителя. Кстати - счётчик сообщений здесь не растёт. Глас Винграда:
Глас Философии:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Sneg0k |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Флейм | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |