|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
11.01.2012, 22:31 | #11 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
этот IF в начале каждого блока только ухудшает и читаемость и отяжеляет код
Код:
|
11.01.2012, 22:45 | #12 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
тем более учитывая многопоточность и время ядра. а так RDTCS(вроде так инструкция называется) и вперед, тестить. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
11.01.2012, 22:45 | #13 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Метки нужны, потому что они удобны. Поэтому они есть и будут.
Противники меток (которые адекватные) говорят не против них вообще, а против злоупотребления ими, вроде такого: Код:
Что делает этот кусок кода? Я думаю, что никто вот так сходу не скажет. Вот эквивалентный код без меток: Код:
Исторически, вся эта "анти-goto" кампания была направлена против кода из первого примера. Кто будет спорить, что код с GOTO запутаннее? Никто. Такой код получался десять тысяч лет назад из-за неразвитости и некоторых особенностей ранних языков программирования. Сейчас, конечно, такой код не станет писать даже нулевой студент-заочник. Так что никакой проблемы с GOTO, с которой нужно бороться, сегодня нет. (кстати, вот ещё такой финт ушами: переход на метку внутрь цикла из кода вне цикла - тоже отвратительная штука). Итак, когда метками злоупотребляют и используют их не по назначению, это - плохо. Именно так надо понимать "goto/метки - зло", а не то, что они зло сами по себе (звучит знакомо? ага, указатели - ровно так же). Два примера сценариев, где использование меток предпочтительнее других подходов: 1. Прерывание двухкратно вложенного цикла (уже привели пример). 2. Обработка ошибок: Код:
Итого: в реальных программах метки/goto может встретиться несколько раз.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
11.01.2012, 22:48 | #14 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
P.S. Сколько ни работал в Delphi, единственные случаи в моей практике, когда мне нужно было использовать GOTO/метки - выход из вложенных циклов. Случается это крайне редко.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
11.01.2012, 22:54 | #15 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
В подобных ситуациях метки тоже по делу
Код:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
12.01.2012, 00:06 | #16 | |||
Высокая репутация
СуперМодератор
Регистрация: 27.07.2008
Сообщений: 15,544
|
Цитата:
Уж лучше что-то такое: Код:
Цитата:
А вот в одном из языков есть такая удобная конструкция. Что бы не вдаваться в подробности, приведу кусок кода, думаю, все понятно: Код:
Цитата:
Код:
Код:
E-Mail: arigato.freelance@gmail.com
Последний раз редактировалось Arigato; 12.01.2012 в 00:10. |
|||
12.01.2012, 00:15 | #17 | |||||
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Цитата:
Цитата:
Цитата:
Цитата:
Каких только слонов, подпорок и обходных путей не придумают противники GOTO, чтобы только его не использовать. Цитата:
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
|||||
12.01.2012, 00:17 | #18 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
Интересен вопрос, зачем в паскале/delphi реализованы местки(Label)?
Нет не TLabel. По которым можно прыгать используя goto. Если ихопасно использовать, почему они поддерживаются компилятором, и где их БЕЗОПАСНО использовать? Интересен вопрос, зачем среди столовых приборов реализованы вилки? Нет, не двойная возможность нанесения удара в шахматах. Которыми можно кушать. Если их опасно использовать, почему все едят вилками, когда можно руками загребать еду и где их БЕЗОПАСНО использовать? Не бойся ножа, бойся вилки: один удар - четыре дырки!
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
12.01.2012, 00:39 | #19 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
ещё пример где метки очень нужны
Код:
а с goto как всё просто, чётко и понятно, и без загромождения кода Код:
|
12.01.2012, 00:42 | #20 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
rpy3uH, я бы лучше спроектировал код на работу с исключениями. и тогда привет try finally.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
зачем учить Pascal | krot_zdes | Свободное общение | 52 | 31.05.2011 16:48 |
Зачем эта перменная (Delphi) | reasons | Помощь студентам | 9 | 15.07.2010 22:22 |
Метки в Tbarseries (Delphi 7) | Николай ПН | Помощь студентам | 0 | 31.03.2010 18:40 |
Что такое коды ASCII и зачем они?? | Ларик | Помощь студентам | 2 | 27.01.2008 19:41 |
обновление в блоге - Ресурсы. Зачем они нужны. | Pblog | Обсуждение статей | 0 | 27.05.2007 03:17 |