goto - с любимыми не расставайтесь, или break не тащит

Любые обсуждения, не нарушающие правил форума.

Модератор: Модераторы

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 28.10.2020 02:53:43

>>что за зуд ?
Твой "боевой" пример является образцом как нельзя и с алгоритмической стороны и синтаксической

>>Ну а что делать если каждый фрейм нужно сравнить с каждым ?
зачем сравнивать то что не изменилось с прошлого прогона? твой код 99.999999% процентов времени будет делать бесполезные сравнения из итерации в итерацию, а при достаточно больших количествах областей будет работать секунды и минуты вместо "мгновенного" результата.

>>Короче, вариантов "без GoTo" немало, но иногда смысла в них не так уж монго.
Ты пишешь на паскале и должен получать за GoTo по рукам

>>Кстати еще одна "легаси заковырка" inc и dec . Один бог ведет почему но сто раз сталкивался с тем что стоит добавить
>>их в код и в программе могут начаться разные "аномальные явления"
Компилятор тут не причем 99.999999%, бога нет. Остаешся ты... просто ты не умеешь писать а потом не умеешь понимать почему работает не так как тебе бы хотелось

В проблемах надо разбираться, выяснять их причины, сравнивать варианты... а не тырить гдето "боевой" код и удивляться "аномалиям"
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение DYUMON » 28.10.2020 07:05:30

Я просто мимо проходил
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Аватара пользователя
DYUMON
постоялец
 
Сообщения: 234
Зарегистрирован: 11.03.2009 13:32:54

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 29.10.2020 01:47:16

zub писал(а):Ты пишешь на паскале и должен получать за GoTo по рукам

пойду поплачу... меня бить собираются... :cry:
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Alex2013 » 29.10.2020 06:09:02

zub писал(а): а не тырить гдето "боевой" код и удивляться "аномалиям"

Дядюшка Зуб ЭТО БЫЛ МОЙ КОД (разумеется я им не горжусь но он работает )... Несколько раз пытался сделать без ГоуТу ...и не то чтобы не получалось, но код или усложнялся без меры или попускал рядом стоящие области, а задача была такая что лучше захватить лишние чем пропустить ( хотел применять "честный детектор" движения для распознавания рук, пальцев и жестов. )
Примерно так (полупрозрачный фрем это как раз работа детектора движения правда тут это старая "софт-версия" но идея понятна... )
ИзображениеИзображение
Но то что нужно "ловить в полете" как бы в принципе не очень подходит для стабильного использования так что идея пока забракована.
Но это так "лирика" и немного оффтоп . А чуть ближе к теме-то, что нужно постоянно перезапускать поиск что-бы выловить как можно больше соседних областей . Чуть красивее бы смотрелась отдельная функция писка с выходом по Exit, но это почти то же самое "принудительное пребывание цикла" что и по ГоуТу .
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 29.10.2020 09:40:46

Alex2013, человек, наверно, не знает что такое безусловный переход и не догадывается, что зачастую машина сама прописывает этот безусловный переход, вместо программиста.
Переходы на короткие расстояния не всегда возможны, циклы зачастую забивают код и в любом случае приходится использовать безусловный переход на дальние расстояния. Хотя, всё равно по сути и то и другое - это GoTo.
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 29.10.2020 10:04:27

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

Seenkao
Причем тут безусловный переход? я против гото в исходниках на языке высокого уровня, а не против переходов в выхлопе компилятора.
Компилятор пусть компилирует как считает нужным, твое дело не мешать - гото мешает.
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 29.10.2020 10:55:39

zub писал(а):гото мешает.
мешает - не пользуйся! :idea:
Мне не мешает! Я пользуюсь! :)

Добавлено спустя 9 минут 36 секунд:
Банально!
Мне надо прыгнуть с кода на код, для проверки работоспособности программы. Писать дополнительные вызовы процедур, искать обходные пути, чтобы "завуалировать" GoTo, нафиг это не нужно.
Я проверяю часть программы, как она сработает. Зачем я буду изобретать велосипед, чтобы потратить своё время?

А вот в последствии, я уже буду смотреть, если код будет рабочим, останется GoTo в коде или нет.

Останется в том случае, если код не будет ни где повторятся и я его не буду использовать для других мест. Зачем мне очередное нагромождение?
Ну и в противоположном случае не останется. Так же, для сокращения объёма как программы, так и потраченного времени.

Меня мало волнует что там подумает компилятор. Я ему даю задание, а он должен его выполнить и не ему за меня решать, что надо сделать. (Хотя и у него, иногда, интересный код проскальзывает).
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 29.10.2020 17:12:25

>>Мне надо прыгнуть с кода на код
Вспомнишь этот топик сидя на отдельной сковороде))
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26


Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 29.10.2020 21:38:47

zub писал(а):Вспомнишь этот топик сидя на отдельной сковороде))
сколько лет прошло, а фраза не меняется (я в том смысле что мне уже не один десяток раз так говорили).

Снег Север, хоть читал что там написано? Особенно в самом конце. 8)

Добавлено спустя 26 минут 29 секунд:
Да, где-то там про комментарии была речь. Поднял свой старенький проект, танки делал, надо кое-что найти... Не знаю, чего больше, комментариев или кода.
Но даже с учётом комментариев, и то что вы любители ООП, то блин... проект надо знать, а так в любом случае заблудишься, месяц будешь ковыряться, чтоб понять что к чему и почему. :twisted:
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Alex2013 » 29.10.2020 23:55:20

Снег Север писал(а):Быдлокодер

:D :D :D :D :D :idea:

Добавлено спустя 4 минуты 13 секунд:
Seenkao писал(а):zub писал(а):
гото мешает.
мешает - не пользуйся!
Мне не мешает! Я пользуюсь!

"Не навиться Гитлер - не ешь !"(С) детский анекдот :wink:

Добавлено спустя 4 минуты 25 секунд:
zub писал(а):>>Мне надо прыгнуть с кода на код
Вспомнишь этот топик сидя на отдельной сковороде))


zub принюхайся ! Может быть рядом уже того ... "чем-то вкусненьким пахнет" :?: ... :mrgreen:

Добавлено спустя 7 минут 6 секунд:
zub писал(а):>>и не то чтобы не получалось, но код или усложнялся без меры или попускал рядом стоящие области, а задача была такая что лучше захватить лишние чем пропустить
Вот уже без гото и области не клеятся оказывается. Чето не получилось с полтычка написать по нормальному, поэтому гото это хорошо. Ты как всегда в своем репертуаре. Вставляй еще больше картинок по теме



Я к тому что просто лишний код писать не вижу смысла .... (Кстати в этом случае все было "с точностью до наоборот": вначале я написал без "ужасающего Goto " и все работало но потом поял что "нафига козе баян" и сделал проще .... :wink: )

А картинка просто объяснение причины нужды в "углубленном поиске " и это не фотожаба (хотя каюсь пришлось "ловить момент" - из за чего собственно от идеи использовать "детектор движения для улучшения распознавания" я пока отказался )

И вообще конкретные примеры тут особой роли не играют . Просто ИМХО один из наиболее наиболее простых и наглядных вариантов экстренного выхода из "многоярусного FOR-цикла" это использование Goto. И попробуй без мистики объяснить что может произойти ПЛОХОГО при его использование в случае необходимости экстренного выхода из простого "многоярусного FOR-цикла" :?: ...и что это использование может "запутать"? :roll: (как мы договорились тему оптимизация оставим "на откуп компилятору" тем более что "выход из многоярусного цикла" это совсем необязательно его перезапуск )
Последний раз редактировалось Alex2013 30.10.2020 00:49:36, всего редактировалось 1 раз.
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 30.10.2020 00:47:22

>>И попробуй без мистики объяснить что может произойти
Очень грубо: цикл является блоком программы с своей точкой входа и выхода, компилятор (оптимизатор) решает что нужно сохранить\восстановить на входе выходе, что можно распихать по регистрам. прыгая туда-сюда минуя точки входа-выхода ты вынуждаешь компилятор отказаться от большинства оптимизаций и код получается в разы медленней (не изза какихто мистических переходов, а изза того что тупо переменные остались в памяти а не размещены в регистрах внутри короткого много раз повторяемого блока)
Можно конечно сказать что это разрабы ленятся, не оптимизируют гото, но его проще выкинуть чем учесть в оптимизаторе. Никакой пользы в гото нет, штатные варианты цыклов и способы их прерывания гораздо лучше
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Alex2013 » 30.10.2020 01:05:27

zub писал(а):Очень грубо: цикл является блоком программы с своей точкой входа и выхода, компилятор (оптимизатор) решает что нужно сохранить\восстановить на входе выходе, что можно распихать по регистрам. прыгая туда-сюда минуя точки входа-выхода ты вынуждаешь компилятор отказаться от большинства оптимизаций и код получается в разы медленней (не из за каких то мистических переходов, а из за того что тупо переменные остались в памяти а не размещены в регистрах внутри короткого много раз повторяемого блока)


Допустим что это верно но усложнение кода без использования "ужаса на крыльях ночи " (я о goto если кто не понял ) вполне может съесть весь выигрыш от "супер оптимизации ". И кроме того так или иначе "многоярусный цикл" нужно как-то прервать (например "поднять флаг" и сделать "три брейка" ) так что "потоковая" оптимизация так или иначе идет к "мохнатой бабушке".
И еще, какой это к черту "умный оптимизатор" если он не умеет учитывать возможность применения примитивного и главное совершенно ШТАТНОГО ОПЕРАТОРА :?: :idea:
Alex2013
долгожитель
 
Сообщения: 2923
Зарегистрирован: 03.04.2013 11:59:44

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение zub » 30.10.2020 01:20:31

>>И еще, какой это к черту "умный оптимизатор"
напиши умнее

>>кроме того так или иначе "многоярусный цикл" нужно как-то прервать
тебе про фому ты про ерему. нет в нормально написанной программе многоярусных циклов for которые надо прерывать

>>И попробуй без мистики объяснить что может произойти
Мистики не бывает. Есть баги в твоем коде и баги в чужом(компилятор, лцл, ...) коде. причем первого в 1000 раз больше
zub
долгожитель
 
Сообщения: 2884
Зарегистрирован: 14.11.2005 23:51:26

Re: goto - с любимыми не расставайтесь, или break не тащит

Сообщение Seenkao » 30.10.2020 01:22:27

zub писал(а):прыгая туда-сюда минуя точки входа-выхода ты вынуждаешь компилятор отказаться от большинства оптимизаций и код получается в разы медленней
:shock: ээээ, не понял, я что-то пропустил? С каких это пор оптимизатор всегда решает какой код лучше, а какой нет? Да, его задача оптимизировать код. Но не забывайте, что этот оптимизатор так же писали люди, которые хотели учесть (в основном ООП) ошибки программиста.

А теперь вопрос! (который, кстати, уже вроде я задавал :idea: )
Я пишу код, который я знаю как работает и что должно происходить. С каких пор оптимизатор должен понимать что творится у меня в голове и что я хочу сделать?
Это моя программа! Я её делаю! И любому пользователю этой программы пофиг что у неё внутри. ЕЁ ЗАДАЧА ВЫПОЛНЯТЬ СВОИ ФУНКЦИИ. А вы мне тут про то что я не должен что-то использовать? :evil:

Добавлено спустя 1 минуту 44 секунды:
Более того, большинству программистов пофиг (я думаю в большинстве своём, особенно сейчас, даже ломать не стануть какую-нибудь простенькую программу или игрушку), а нужны лишь входные и выходные данные.

Добавлено спустя 3 минуты 10 секунд:
zub писал(а):тебе про фому ты про ерему. нет в нормально написанной программе многоярусных циклов for которые надо прерывать

:shock: :mrgreen: :mrgreen: :mrgreen:
мда... товарищ программист... да циклы рвут вдоль и поперёк, а не умеешь рвать их, значит не судьба. :(

Добавлено спустя 1 минуту 34 секунды:
zub писал(а):причем первого в 1000 раз больше
тут, в первую очередь надо отвечать за себя!
А за себя я отвечу, я точно не смогу всё учесть в программе, пока её не протестируют миллион людей.

Добавлено спустя 2 минуты 45 секунд:
Alex2013, забей.

zub, вы заурядный программист, который изучил программирование "вдоль и поперёк"! Вы всё знаете! Все алгоритмы вам известны! Я склоняю пред вами свою голову, Ваше Высочество! :idea:
Seenkao
энтузиаст
 
Сообщения: 502
Зарегистрирован: 01.04.2020 03:37:12

Пред.След.

Вернуться в Потрепаться

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12

Рейтинг@Mail.ru