|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Студентов, использующих оператор GOTO, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации Эдгар Дейкстра Язык VB.NET к примеру в цикле выполняется операция копирования файлов, да чего угодно. внутри блока цикла существует блок Try Catch который отлавливает ошибки и выдает окно, с вопросом: Аборт, Повтор, Игрор. При ответе №1 понятно, что мы вываливаемся из цикла и все довольны. Игнор и мы ни чего не предпринимаем Но, как осуществить Повтор? я вижу 2 способа: 1. это GoTo <строка>, он прост как топор, за исключением того, что указывать должен за границы блока Try 2. Do...Loop Until <условие выхода> внутри For Next как думайте, что будет лучше? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:15 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Ответ прост - ни при каких обстоятельствах не использовать GOTO. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:16 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Студентов, использующих оператор GOTO Delphi, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации Эдгар Дейкстра Поправил. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:17 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Roman Mejtes, единственным Do...Loop Until <условие выхода> следует обойтись ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:24 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Roman Mejtes У меня сегодня насяльника с утра - до обеда жал повтор при входе в клиентбак. Пока я ему клиент банк не обновил :) goto - последний шанс у программиста ( если прокатит ) перед сменой профессии. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:29 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Где-то в степиУ меня сегодня насяльника с утра - до обеда жал ... Я жал на той неделе, завтра нужно поприседать :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:34 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Алексей КСтудентов, использующих оператор GOTO Delphi, практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации Эдгар Дейкстра Поправил. Delphi ничем принципиально от с# не отличается ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:41 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
не поверите, но имеется одно приложение с goto, работает же) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:42 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
На фортран IV никто похоже не писал ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:45 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУ, жим 165 приседание 235 шестой десяток рубаху не использую, только пояс ( и то после травмы) а есть на форуме кто еще железом балуется? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:46 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
pationDelphi ничем принципиально от с# не отличаетсяМасса принципиальных отличий. Как в языке, так и в библиотеках. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:47 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, жим 165 приседание 235 шестой десяток рубаху не использую, только пояс ( и то после травмы) а есть на форуме кто еще железом балуется? балуюсь. жим - 112 кг присед - 140 кг становая - 142 кг. вес туловища - 65 кг. а у вас вес тела какой? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:55 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилНа фортран IV никто похоже не писал Делал курсовик на FoxPro 2.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 15:59 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
вопросец, не плохие результаты вес 105 -110, когда профессионально занимался было в районе 90 рост 175 ( все посушиться руки не доходят) сила воли уже не та )) вот про силу воли: Был у нас ( пропал куда то) перец один в качке, пришел на костылях, лет под 70, ну и начал приседания пытаться делать, сначала пустой потом с десятчиком - через пару месяцев ходил уже с тростью и приседал с пустым грифом. Ну внимание на него никто не обращал, мало ли. А тут давай пацанам показывать технику рывка, толчка, как спину ставить, оказался мужик мастером с новосиба (жись занесла) и инвалид, у него шипы на медиальных пластинах в коленных суставах, Мужик был духовитый, часа по три - четыре отдавал каждый день - 15 000 приседаний с грифом ( дальше не лез) Через пол года начал бегать и прыгать как газель, только сокрушался что втек инвалидность сняло. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 16:09 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Где-то в степивопросец, не плохие результаты вес 105 -110, когда профессионально занимался было в районе 90 рост 175 ( все посушиться руки не доходят) сила воли уже не та )) вот про силу воли: Был у нас ( пропал куда то) перец один в качке, пришел на костылях, лет под 70, ну и начал приседания пытаться делать, сначала пустой потом с десятчиком - через пару месяцев ходил уже с тростью и приседал с пустым грифом. Ну внимание на него никто не обращал, мало ли. А тут давай пацанам показывать технику рывка, толчка, как спину ставить, оказался мужик мастером с новосиба (жись занесла) и инвалид, у него шипы на медиальных пластинах в коленных суставах, Мужик был духовитый, часа по три - четыре отдавал каждый день - 15 000 приседаний с грифом ( дальше не лез) Через пол года начал бегать и прыгать как газель, только сокрушался что втек инвалидность сняло. А я по весам и возрасту понял, что вы профессионал. Уважение вам! Мне всего лишь 28 лет. Заниматься стал спустя год после операции на печенке. Чуть дуба не дал. Худой и слабый был. Я извиняюсь, как смерть посрать отпустила. Занимался сам, купил штангу, гантели скамью и стойки. Как вспомню жесть, стремался в качалку идти в таком виде. Я еле 15 кг выжимал %). Комплексовал очень. Если бы текущее состояние мозга на тот момент, пошел бы в качалку какой есть. Четыре года всего занимаюсь. Правда результаты скромные у меня, но я на обычной еде, ем что есть. Спортпит не покупал никогда, честно говоря, жаба душила хороший дорого стоит. Ну и без тренера, книжки/форумы читал и методом проб и ошибок. Было так что и спину разогнуть не мог из-за неправильной техники. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 16:28 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
вопросец, да зря стремались идти в качалку, там пацаны ценят не мясо, а духовитость ( в плане, через силу но сделаю это) и сколько воды с тебя утекает за сессию ( если ты пашешь - достоин уважения) питание не знаю( закончил в 85м), многие знакомые жрут, прет как на дрожжах, только вот с головой дружба утрачивается ( на полном сер.) редко встретишь гору мышц с адекватной головой ( это уж на уровне анекдотов закрепилось). если химичить, то уж под наблюдением доктора.(лучше не надо - посадите печень 100 проц, и лиф не поможет) Любой спорт (активный отдых) воспитывает дух, но не в плане я этому дам в фейс, а в плане я это( задачу) сделаю - хоть и будет трудно. Самое главное он проветривает мозги ( метаболизм, обогащение кислородом мозга и тд.) усвоение материала происходит быстрее в в разы,сумасшедшие идеи приобретают практичную реальность. В плане духа есть с кого брать пример Дикуль,Юрий Власов ( сгусток интеллекта и воли), Брумель ( тут вообще слов нет, в хорошем смысле) Удачи.. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 17:34 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Roman Mejtesк примеру в цикле выполняется операция копирования файлов, да чего угодно. внутри блока цикла существует блок Try Catch который отлавливает ошибки и выдает окно, с вопросом: Аборт, Повтор, Игрор. При ответе №1 понятно, что мы вываливаемся из цикла и все довольны. Игнор и мы ни чего не предпринимаем Но, как осуществить Повтор? я вижу 2 способа: 1. это GoTo <строка>, он прост как топор, за исключением того, что указывать должен за границы блока Try 2. Do...Loop Until <условие выхода> внутри For Next примерно так. Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 18:36 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2, ну я про бейсик писал, там Do Loop подходит лучше, чем while end while (имхо) а за идею спасибо (со счетчиком на количество раз!:) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 20:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Алексей КСтудентов, использующих оператор GOTO,Delphi, 1С, PHP, ООП, ORM.... , практически невозможно обучить хорошему программированию. Как потенциальные программисты они подверглись необратимой умственной деградации Эдгар Дейкстра Поправил. в этот список можно включить очень много чего ещо ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 20:41 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
The Programmers' StoneНе забывайте, если вы хотите, чтобы предмет вашего обожания понял ваше любовное письмо, вы не позволите педантизму правописания и грамматики исказить письмо, а если вы хотите, чтобы ваши коллеги поняли вашу программу, не перекручивайте ее структуру во имя «чистоты». Кто не читал - велкам The Programmers' Stone ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 21:31 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУОтвет прост - ни при каких обстоятельствах не использовать GOTO. GOTO - двигатель прогресса, он позволяет разруливать тупиковые ситуации неформально ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2012, 22:18 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
в продолжении темы и из чистого интереса хотел бы узнать у людей понимающих в ассемблере чем же отличается 2 этих кода: Код: vbnet 1. 2. 3.
и Код: vbnet 1. 2. 3.
В чем принципиальное различие 2 этих методов. Единственное, что на данный момент, мне приходит в голову, это все переменные инициализированные внутри блока Do..Loop будут высвобождаться как только я покину цикл, в случаи GoTo: это произойдет либо того, когда я покину процедуру, либо как только я сам лично это произведу руками, что как бы не очень удобно. в чем еще отличия 2 этих методов? p.s. не надо кричать, про то, что я такой сякой, я не использую GoTo и вопрос задаю чисто из интереса ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 07:36 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
авторОтвет прост - ни при каких обстоятельствах не использовать GOTO.Просто к слову; http://en.wikipedia.org/wiki/Goto#Common_usage_patterns тынц ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 07:53 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Roman Mejtes, авторВ чем принципиальное различие 2 этих методов. отличие только в том, что в ду/луп вы запрыгнуть по другому готу не сможете. переменные будут утилизированны сборщиком ( в релизе ) в независимости от применяемой конструкции ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 08:34 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
enigmatic тынц Там все правильно забацано. Структурное программирование - не самоцель. В чужом коде гораздо легче разобраться если там GOTO, а не бесчисленные комбинации флагов выхода из циклов ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 17:47 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2В чужом коде гораздо легче разобраться если там GOTO, а не бесчисленные комбинации флагов выхода из циклов Как-то ты не совсем корректно формулируешь мысль - почем ты одному GOTO сопоставляешь бесчисленные комбинации флагов выхода из циклов? 1. Если у нас бесчисленные комбинации флагов выхода из циклов, то тогда у нас будут бесчисленные переходы GOTO. 2. Вопрос, что лучше, бесчисленные переходы GOTO или бесчисленные комбинации флагов выхода из циклов? От бесчисленных переходов GOTO голова кругом пойдет. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 17:50 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУ, кстати на заметку, в Бабсике можно сразу покинуть 3 цикла при желании Код: vbnet 1. 2. 3. 4. 5. 6. 7.
без всяких там GoTo как написано в педивикии ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 17:54 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Roman Mejtes, а в JavaScript есть break ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 18:57 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУCat2В чужом коде гораздо легче разобраться если там GOTO, а не бесчисленные комбинации флагов выхода из циклов Как-то ты не совсем корректно формулируешь мысль - почем ты одному GOTO сопоставляешь бесчисленные комбинации флагов выхода из циклов? 1. Если у нас бесчисленные комбинации флагов выхода из циклов, то тогда у нас будут бесчисленные переходы GOTO. 2. Вопрос, что лучше, бесчисленные переходы GOTO или бесчисленные комбинации флагов выхода из циклов? От бесчисленных переходов GOTO голова кругом пойдет. Речь о выходе из цикла нижнего уровня. Для каждого из вложенных циклов в общем случае нужен свой флаг выхода. Переменные должны описываться рядом с их использованием. Нет глобальным переменным! - это тоже спорный подход. Нужно только одно goto, что бы выйти из цикла, а не стопицот проверок флагов. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 20:41 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Да ерунда это все. На том-же ассемблере вообще без гоуту шага не ступишь. :) Но, вообще, последнее время надобности не возникало. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 21:11 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Нужно только одно goto, что бы выйти из цикла, а не стопицот проверок флагов. В функцию оформить и выйти ретурном. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 21:40 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Edd.DragonCat2Нужно только одно goto, что бы выйти из цикла, а не стопицот проверок флагов. В функцию оформить и выйти ретурном. Мысль я понял, не понял сколько функций Вы предлагаете для десяти уровней вложенности циклов? GOTO - полезный оператор. Присутствует во всех языках программирования, ориентированных на решение практических задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 21:57 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2десяти уровней вложенности циклов Часто у вас такие циклы? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 22:19 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
YUBAНа том-же ассемблере вообще без гоуту шага не ступишь. :) это кажется. Каждый лишний переход - срыв конвейера. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 22:29 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Речь о выходе из цикла нижнего уровня. Для каждого из вложенных циклов в общем случае нужен свой флаг выхода. Переменные должны описываться рядом с их использованием. Нет глобальным переменным! - это тоже спорный подход. Нужно только одно goto, что бы выйти из цикла, а не стопицот проверок флагов. Решение классическое и старо как мир, его уже озвучили. Собственно, разделение логики кода на составляющие методы - бест практис. Писать код процедурно в одном методе под тысячи строк - зло, за которое нужно расстреливать. Cat2Мысль я понял, не понял сколько функций Вы предлагаете для десяти уровней вложенности циклов? А сколько признаков будет, столько и напиши функий. На практике больше трех вложенностей я не встречал, и то поискать эти примеры нужно, сейчас не упомню. Если в твоем коде слишком большая вложенность по признакам, проблема не в функциях, а в архитектуре кода. На кол архитектора. Cat2GOTO - полезный оператор GOTO - зло, от которого нужно отказываться при любом раскладе. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 22:37 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилYUBAНа том-же ассемблере вообще без гоуту шага не ступишь. :) это кажется. Каждый лишний переход - срыв конвейера.Вызов функции в языках высокого уровня, по существу и есть гоуту. В ассемблере это явно как переход на адрес. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 23:00 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
YUBAВ ассемблере это явно как переход на адрес. не путайте JUMP и CALL ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 23:13 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Изопропилне путайте JUMP и CALLМодификации. :) И, кстати, не везде это есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 23:30 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
YUBAИзопропилне путайте JUMP и CALLМодификации. :) И, кстати, не везде это есть. BALR 14,0 ? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2012, 23:32 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Мысль я понял, не понял сколько функций Вы предлагаете для десяти уровней вложенности циклов? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
И еще раз - вопрос не в том, что краше, а в том, чтобы не взрывать ни компилятору, ни себе башню. Это плохо, что во всех языках есть goto. Без него всем было бы чуточку легче. Кому-то меньше зубодробительной логики по разбору кода, а кому-то меньше потенциальных проблем (хорошо, если компилятор чего подскажет, а если нет?). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 01:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Edd.Dragon Гавнокод Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40.
Мда. За такую "архитектуру" нужно выпроваживать в зал расстрела... Только разделение логики на методы спасут отца русской демократии. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 10:25 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Edd.Dragon, Хм, как вариант для рефакторинга очень даже ничего. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 10:42 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУТолько разделение логики на методы спасут отца русской демократии. а любая я ли логика поддаётся эффективному разделению на методы? а вдрух я реализую конечный пулемёт автомат. там не то что без готу не обойтись , но и на методы делить то трудновато. и в конце концов на методы делить мона тогда , когда более менее ясно , как дальше двигаться, а если поведение метода окончательно не определено, то рано его делить на под методы. был метод какой то ( матрицу обкатывал в рекурсии), который при создании трудно было разделить. вот он и получился строк 200-300 , уж не помню точно. да , потом его разпили удачно , но только потом. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 10:48 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-erа любая я ли логика поддаётся эффективному разделению на методы? Вопрос из разряда теории "всегда ли можно оптимизировать код". Всегда, даже если ты максимально оптимизировал код, это не означает, что он больше не поддается оптимизации. Думай, как можно структурировать и декомпозировать логику и уйти от лапшекода. beg-in-erа вдрух я реализую конечный пулемёт автомат. там не то что без готу не обойтись , но и на методы делить то трудновато. Слабо пример привести, в котором не обойтись без GOTO? Если "трудновато" декомпозировать - это не означает, что это нельзя сделать. beg-in-erи в конце концов на методы делить мона тогда , когда более менее ясно , как дальше двигаться, а если поведение метода окончательно не определено, то рано его делить на под методы. Если не ясно, "как дальше двигаться" - рано писать программу. Нужен анализ и обследование предметной области. Когда будет представление, тогда можно автоматизировать процессы. А так ты просто сотрясаешь воздух сферическими конями в вакууме. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 10:57 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУbeg-in-erа любая я ли логика поддаётся эффективному разделению на методы?Вопрос из разряда теории "всегда ли можно оптимизировать код". Всегда, даже если ты максимально оптимизировал код, это не означает, что он больше не поддается оптимизации. Думай, как можно структурировать и декомпозировать логику и уйти от лапшекода. пропущено...Всегда можно, но не всегда нужно. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 11:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУЕсли "трудновато" декомпозировать - это не означает, что это нельзя сделать. понятно что всё можно , но иногда оно может пойти во вред. или затраты по времени будут ощутимы. авторЕсли не ясно, "как дальше двигаться" - рано писать программу речь не о проге , а об конкретном алгоритме. т.е. тогда , когда мы знаем , что хотим получить , но не знаем точно как это сделать 1. Либо много альтернатив, и выбрать изначально правильную невозможно 2. Либо при создании первичной реализации алгоритма получаются промежуточные данные, которые уже в последствии и делают основу конечной реализации. Без этих данных реализацию построить невозможно, а на бумаге это не просчитать. в частности тогда шла речь о реализации алгоритма Литтла, ака метод ветвей и границ. как он работает , я чесно говоря до сих пор не понимаю ( т.е. я не до конца въехал, почему он таки даёт почти правильный результат , и почему он иногда даёт не всегда оптимальный результат) как раз для таких случаев goto просто незаменим. и меня уже не переубедить никогда в том , что goto надо отправлять на свалку, что он вреден, что он колечит мозг. goto это лишь удобный метод достижения поставленной задачи. но как атомное оружие в программировании , его надо юзать с умом, там где он реально необходим, где все for, while.... курят в сторонке ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 11:42 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er1. Либо много альтернатив, и выбрать изначально правильную невозможно Ну так берем и тестируем алгоритмы. Более выйгрышное по каким-то там определенным параметров забираем себе. beg-in-er2. Либо при создании первичной реализации алгоритма получаются промежуточные данные, которые уже в последствии и делают основу конечной реализации. Без этих данных реализацию построить невозможно, а на бумаге это не просчитать. Ну так выноси расчет и взаимодействие с этими данными в отдельный слой, тем самым декомпозируя основной алгоритм. beg-in-erкак раз для таких случаев goto просто незаменим. Мне нравится твоя логика, ты пишешь, что не знаешь как он работает и что не разобрался с этим алгоритмом, но точно уверен в необходимости GOTO. Зачет ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 11:52 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУМне нравится твоя логика, ты пишешь, что не знаешь как он работает и что не разобрался с этим алгоритмом, но точно уверен в необходимости GOTO. Зачет я знаю как работает его реализация, Но я до конца не понял ( тогда) почему работает сам алгоритм. почему он находит почти лучший вариант. и это непонимание не относится к программированию никаким боком. так что твой "зачёт" - мимо кассы. авторНу так выноси расчет и взаимодействие с этими данными в отдельный слой, тем самым декомпозируя основной алгоритм. не понял , а это к чему. поясню свою мысль. когда шла та реализация - необходимо было найти решение транспортной задачи с доп моментами. на рассмотрении были "муравьи", "генетика" и "ветви" (куда же без них). что генетические алгоритмы , что муравьные вроде давали результат, но что то с доп моментами с ними было плохо. пришлось лезть в метод ветвей и границ, в реализации Литтла, получить промежуточные данные, на основании которых и был выведен новый алгоритм, который выполнял поставленную задачу за приемлемое время. Оптимизация NP полной задачи это не таблицу в БД добавить. тут надо найти правильное/приемлемое решение. и заранее вычислить конечную реализацию просто невозможно. необходимо пройти по всем кругам. и тут не применим ваш график буровых работ для служащих ВВС (с) стандартные подходы тут не подходят. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 12:17 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Где-то в степиМСУ, жим 165 приседание 235 шестой десяток рубаху не использую, только пояс ( и то после травмы) а есть на форуме кто еще железом балуется? 130-210-180 ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 12:18 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, что-бы не разговаривать о сферичской лошаде в стратосфере, урезанный пример в студию, наглядно демонстрирующий, что без GOTO обойтись нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 12:27 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУпример ..., в котором не обойтись без GOTO Я сам не сторонник GOTO, за столько лет у меня необходимости применения не было. break/continue/return как то вполне хватало :-) Но если без него всё сильно усложняется, почему бы не применить? Для C# в общем не особо актуально, но на PowerBuilder и T-SQL не так всё радужно но примеры привести можно: 1) анализ кучи условий, каждое из которых имеет смысл только после проверки предыдущего. делать без goto - это либо сильно увеличить вложенность условий, либо рассчитывать на неочевидные для каждого порядок анализа логического выражения компилятором. И в том и в другом случае неудобно. 2) как уже говорили, вложенные циклы. правда 10 таких циклов - это даже не говнокод. В циклах тоже можно обойтись без goto и даже никаких отдельных флагов для каждого цикла не нужно. Просто получится неудобно читать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 13:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Arm79на неочевидные для каждого порядок анализа логического выражения компилятором. это о чём? Порядок вычисления либо не регламентирован, либо чётко задан (&& ||) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 13:54 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Что-то Лёня не просыпается, GOTO его любимая тема. Вчера видно совсем в гавнище домой пришел ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:19 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУbeg-in-er, что-бы не разговаривать о сферичской лошаде в стратосфере, урезанный пример в студию, наглядно демонстрирующий, что без GOTO обойтись нельзя. ещё 40 лет была доказана теорема, что без можно написать любой метод без goto. любой, так что , ссылаясь на ту теорему, можно сказать нет такого кода , в котором нет альтернативы готу. вопрос в применимости. вот мой говнокодище н-летней давности. какой то промежуточный вариант. боевой, который пошёл в серию не нашёл. рекурсионно ищем контур гамильтона. выход из внутренного цикла должен быть именно таким. break. не годится. делать доп условие if - можно , но вредно. как минимум , когда ищем правильный алгоритм, готу надёжное подспорье. только что увлекаться макаронами не надо. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68.
... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:26 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилArm79на неочевидные для каждого порядок анализа логического выражения компилятором. это о чём? Порядок вычисления либо не регламентирован, либо чётко задан (&& ||) (obj != null) || (obj.value = 5) если поменять местами, будет nullreference (при отсуствии obj) компилятор не вычисляет всё выражение, ему в данном случае достаточно понять, что obj = null и не вычислять дальнейшее ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:39 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Arm79bj != null) || (obj.value = 5) если поменять местами, будет nullreference (при отсуствии obj) компилятор не вычисляет всё выражение, ему в данном случае достаточно понять, что obj = null и не вычислять дальнейшее Именно. Семантика && и || задана в описании языка. От компилятора никак не зависит ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:45 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-erвыход из внутренного цикла должен быть именно таким. break. не годится. делать доп условие if - можно , но вредно. Гавнокодище, конечно, редкостный. Во-первых, почему break не годится? Во-вторых, чем не устроил if? Видишь, ты сам уже знаешь ответ - как структурировать этот мусор. Причем твой метод превратится в нормальное удобоваримое чтиво. То, что мы видим сейчас - редкостное дерьмо, которое даже отрефаторить не представляется возможным. Глаза лезут на лоб от такого кода, хотя метод не большой. Вот и думай, что лучше, декомпозировать эту лапшу на составляющие, с линейным алгоритмом, или убивать себя об стену. Так это у тебя еще метод простецкий. Прикинь метод, который раз в 20-30 больше твоего, это же страх ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:52 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ИзопропилИменно. Семантика && и || задана в описании языка. От компилятора никак не зависит Я вот пришел в свое время с делфей. Там при компиляции в настройках среды имеется галочка "вычислять полностью выражение" (не по умолчанию, правда). ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:52 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Набор входных параметов, конечно, впечатляет int[,] matrix, int HAMILTON_CONTUR, ref int GLOBAL_MIN, int LEV, int Qi, List<int> TT, int left_tt, StreamWriter sw, string ss, int level, int Low, int Hi, int tt_level Всё в кучу, и int[,] тебе, и какие-то ref'ы, и List, и StreamWriter даже затесался. Это полный пецдец Друх, тут проблема не в гото, тут проблемы с головой Без обид. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 14:55 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, Так будет демонстрация множественного наследования в .Net или нет?! ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:12 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУНабор входных параметов, конечно, впечатляет Друх, тут проблема не в гото, тут проблемы с головой Без обид. Глаза лезут на лоб от такого кода, хотя метод не большой. ну так это же отладочная реализация алгоритма там много чего лишнего. ( куда делся последыш не знаю, за годы оно исчезло). без этого говнокода неполучилось бы вылепить конфетку. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:40 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-erбез этого говнокода неполучилось бы вылепить конфетку. Тогда я не понимаю, зачем ты вообще его запостил? :) Говнокод ничего не доказывает, кроме как принадлежность к гавнокоду. Показывай нормальный пример с goto. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:47 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУТогда я не понимаю, зачем ты вообще его запостил? :) Говнокод ничего не доказывает, кроме как принадлежность к гавнокоду. Показывай нормальный пример с goto. ещё раз повторю, что без говнокода не получилось бы результата. говнокод на то и нужен , что бы найти правильный и конечный результат. и именно в нём готу был очень нужен. и не смотря на то , что в финальный релиз он не вошёл , goto сделал много для этого метода. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 15:56 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
beg-in-er, нафиг там гото не нужен был ты просто не знал что пишешь, потому первый "работающий" вариант тебя устроил ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 16:11 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 16:43 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста значит без звания будет говнокодить программировать ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:06 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания Программиста В Кобол имелся оператор ALTER, который переназачал GOTO. Я как то обрадовавшись такой возможности написал очень красивую прогу :)(сделали тут же старшим инженером -матаематиком- программистом) месяц потом разбирались. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:16 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Тот, кто не умеет правильно использовать GOTO - не достоин звания ПрограммистаЯ, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:17 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
YUBACat2Тот, кто не умеет правильно использовать GOTO - не достоин звания ПрограммистаЯ, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 17:56 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2YUBAпропущено... Я, скажем, и не претендую. :) Буду так, без звания. И вообще, лучшее - враг хорошему. Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии". ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 18:14 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
Cat2Ну и молодец. Я тоже так думаю. Это только МСУ постоянно борется за звание "Лучший по профессии".Если шо, у него и спросим, как надо. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 18:22 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
ViPRos, фортрановский вычисляемый GOTO - он тож ничё ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 19:00 |
|
этот страшный ужасный GoTo
|
|||
---|---|---|---|
#18+
МСУЗа такую "архитектуру" нужно выпроваживать в зал расстрела... А за goto - расстреливать на месте. Кто проживет дольше? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2012, 19:00 |
|
|
start [/forum/topic.php?all=1&fid=20&tid=1405414]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
63ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
135ms |
get tp. blocked users: |
1ms |
others: | 335ms |
total: | 577ms |
0 / 0 |