Re[2]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:19
Оценка: +4 :))) :))) :))) :)))
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Хе-хе, друг мой давнишний как-то жаловался.

SVZ>

SVZ>12 часов потребовалось студенту, чтобы так и не понять что за магия творится в строчке:


Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.
Re: жизнь не перестает удивлять
От: bnk СССР http://unmanagedvisio.com/
Дата: 07.10.23 20:21
Оценка: +2 -4 :))
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.

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

А это не нужно. IMHO выход из середины цикла (break) хреновая конструкция, запутывающая код, может это даже хорошо что он ее не знает.
Выходить надо или сразу, или разбивать код внутри на две функции. Выходить из середины — это goto по сути, в худшем его проявлении
Отредактировано 07.10.2023 20:21 bnk . Предыдущая версия .
Re[4]: жизнь не перестает удивлять
От: Mihas  
Дата: 09.10.23 08:09
Оценка: :))) :)))
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Здравствуйте, Pzz, Вы писали:


Pzz>>Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.


SVZ>Тогда я, пожалуй, сохраню интригу

Правильно. Нам еще до пенсии тянуть
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:30
Оценка: -3 :))
Здравствуйте, Pzz, Вы писали:

Pzz>А так ты понимашь: c = 3["hello"]; ? А так: x = (f ? sin : cos)(y); ?


Это точно не базовые конструкции языка, так что не надо мутить воду.
Ад пуст, все бесы здесь.
жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 16:55
Оценка: :))) :)
Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.
Остается только гадать, как с такими знаниями можно пройти все эти зубодродительные алгоритмические собеседования. Ну и в свете этих идей о взаимозаменяемости всех, я вообще не хочу видеть код, который этот чувак может написать.
Ад пуст, все бесы здесь.
Re: жизнь не перестает удивлять
От: Нomunculus Россия  
Дата: 06.10.23 16:58
Оценка: +3 :)
Здравствуйте, Codealot, Вы писали:

А что такое «цикл с выходом из середины»?
Break что ли?

Ну может он просто не понял тебя.
Re[3]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 06.10.23 17:15
Оценка: +2 :))
Здравствуйте, Codealot, Вы писали:

SVZ>>Хе-хе, друг мой давнишний как-то жаловался.


C>Не очень понятно, что ты хотел сказать.


То, что выход на пенсию нам не грозит
_____________________
С уважением,
Stanislav V. Zudin
Re[7]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:47
Оценка: +4
Здравствуйте, Codealot, Вы писали:

Pzz>>должен хотя бы понимать, что такое "теоретически правильный" код, и зачем он такой нужен.


C>"Теоретически правильный" в понимании сектантов.


Теорию знать не вредно. Если я тебя правильно понимаю, сектанство — это когда знание теории заменяют карго-культом. Но это не отменяет ценность сознательного понимания теории.

C>В любом случае, специалист должен знать реалии, а не только свои представления о правильности.


Хороший специалист обладает развитыми когнитивными картами. Это значит, что он знает или может придумать много правильных решений и сознательно выбирать из них наиболее подходящее, с оглядкой на конкретную ситуацию.
Re[5]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 07.10.23 08:56
Оценка: :))) :)
Здравствуйте, Codealot, Вы писали:

C>Это точно не базовые конструкции языка, так что не надо мутить воду.


3*"hello" => "hellohellohello". Насчёт опциональности оператора — нужно проверять
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:07
Оценка: +3 :)
Здравствуйте, Kernan, Вы писали:

Pzz>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

K>Почему?

Потому, что суть структурного программирования заключается в том, что у программы есть структура, состоящая из стандартных "строительных" блоков: операторов if-then-else и операторов циклов. И заметим, у каждого такого блока есть ровно одна входная и ровно одна выходная точка.

Такую программу гораздо проще анализировать, и мозгами и автоматическим способом.
Re: жизнь не перестает удивлять
От: oncer  
Дата: 24.10.23 08:43
Оценка: +4
Здравствуйте, Codealot, Вы писали:

"цикл с выходом из середины" — лексика странная. Чел вполне мог не понять. Особенно, если чел читает книги на Инглише, а тут .... "цикл с выходом из середины" — я тож такую формулировку впервые слышу...
Может "прерывание цикла" было бы понятнее?
Re[4]: жизнь не перестает удивлять
От: karbofos42 Россия  
Дата: 08.11.23 07:15
Оценка: 7 (2) :)
Здравствуйте, fk0, Вы писали:

fk0> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


А циклы сами по себе — это тоже по сути замаскированные goto/jmp.
Как с ними не нарушать принципов структурного программирования?
Re[2]: жизнь не перестает удивлять
От: andyp  
Дата: 08.10.23 22:05
Оценка: 1 (1) +1 -1
Здравствуйте, bnk, Вы писали:

bnk>А это не нужно. IMHO выход из середины цикла (break) хреновая конструкция, запутывающая код, может это даже хорошо что он ее не знает.

bnk>Выходить надо или сразу, или разбивать код внутри на две функции. Выходить из середины — это goto по сути, в худшем его проявлении

Угу. Пол итерации в одной функции, пол итерации — в другой. Классная локальность выходит, все прям совсем рядом и по смыслу становится сразу понятно, что там происходит

И это пришет чел, для которого break — когнитивная нагрузка.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:02
Оценка: :)))
Здравствуйте, Нomunculus, Вы писали:

Н>Break что ли?


Естественно. А чем еще это может быть?

Н>Ну может он просто не понял тебя.


Он смотрел на код и сказал "а что это за странная штука и зачем нужна?"
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:10
Оценка: +2 -1
Здравствуйте, Нomunculus, Вы писали:

Н>Ну ты так оформил это специфичным термином


Нормальный термин и элементарно гуглится.

Н>что можно подумать что это какая-то особенная фишка языка.


Именно что нет. Это азы.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 20:05
Оценка: :)))
Здравствуйте, baxton_ulf, Вы писали:

_>да конечно, можно не знать. не пройдёшь интервью да и только


Лишнее напоминание, насколько вопросы на собеседованиях высосаны из пальца.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: Vzhyk2  
Дата: 07.10.23 06:16
Оценка: +3
Здравствуйте, Codealot, Вы писали:

Н>>Break что ли?

C>Естественно. А чем еще это может быть?
goto, return, исключение...
Re[5]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 07.10.23 21:46
Оценка: +3
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, baxton_ulf, Вы писали:


_>>да конечно, можно не знать. не пройдёшь интервью да и только


C>Лишнее напоминание, насколько вопросы на собеседованиях высосаны из пальца.


это не просто знание как имплементирована atoi или parseInt — это паттерн, который может сделать твою программу быстрее и занимать меньше памяти.

мне приходилось в реальной работе применять навыки выработанные при решении задач для интервью. даже так — постоянно приходится применять. а разве тебе не помогает знание, например того, что с отсортированными коллекциями работать быстрее во многих задачах. или знание, например merging-sort — это ведь тоже паттерн, который во многих задачах применим. не только для сортировки больших коллекций.
пример из практики: лет, наверное 20 назад я видел программу намертво висящую потому, что обрабатывала коллекцию из 50К записей со сложностью O(N^2) если бы те программисты практиковали решение задач, которые "высосаны из пальца", то их алгоритм просто бы летал, а не висел по пол дня.
как то так. а ты все "из пальца" да "из пальца"
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:09
Оценка: +1 :))
Здравствуйте, LaptevVV, Вы писали:

LVV>Я — написал...


Будто есть чем гордиться.
Ад пуст, все бесы здесь.
Re[11]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 09.10.23 05:27
Оценка: +1 -1 :)
Здравствуйте, Codealot, Вы писали:

_>>есть такое правило: критикуя предлагай.


C>Да в общем то ничего сложного. Смотришь на код предыдущих проектов, к примеру. Обычно у профи есть хотя бы что-то в опен сорсе, или хобби-проекты.


Почему все считают, что у программистов есть только одно хобби — программирование???



_>>у тебя же я пока вижу не подкрепленные ничем наезды — видимо из за обидок (не взяли). и никаких конструктивных предложений


C>Пф. Тупейший аргумент. Проходил такие собесы не раз, и обычно чем больше понтов на собесе, тем бестолковее компания.


Коли проходил не раз, то и проблем возникать не должно

C>А ты видимо очень гордишься, что ты превозмог и тебя взяли.


Что тут превозмогать??? Рассказываешь из своей практики, как и почему (не) применял ту или иную конструкцию. Получается очень содержательный разговор на профессиональную тему.
Вот если рассказать нечего, тогда да — проблема.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: жизнь не перестает удивлять
От: swame  
Дата: 11.10.23 10:55
Оценка: 4 (2)
Здравствуйте, night beast, Вы писали:

NB>Здравствуйте, Stanislav V. Zudin, Вы писали:


SVZ>>Хе-хе, друг мой давнишний как-то жаловался.


NB>так может и не нужно этого знать?

NB>как часто может потребоваться писать такое самому?

Ну вот на днях понадобилось напиать преобразование даты-времени в строку ISO8601 в критичном по времени цикле.
Написал в подобном стиле. Работает в 40+ раз быстрее библиотечной функции.
Обратные преобразования тоже так делал.
Re[3]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 08.10.23 09:56
Оценка: 2 (1) +1
Здравствуйте, Slawa Ms, Вы писали:

SM>Т.е., имеем цикл на 100500 итераций. На третьей получаем нужный нам результат, но все равно будем продолжать 100497 раз?


Не, оне предлагают взводить флаг, который проверится на следующей итерации в for'е.

Те же яйца, только в профиль. Зато по фэн-шую.

Но ещё, вроде как, не считается ересью return для выхода из цикла.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:26
Оценка: +1 :)
Здравствуйте, Codealot, Вы писали:

Pzz>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.


C>Какую странную ересь ты бы не исповедовал, но знать базовые конструкции языка все же нужно.


А так ты понимашь: c = 3["hello"]; ? А так: x = (f ? sin : cos)(y); ?
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:30
Оценка: +2
Здравствуйте, Osaka, Вы писали:

Pzz>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

O>В "структурное программирование" вроде бы это единственный приличный случай использования goto

Нет.
Re[5]: жизнь не перестает удивлять
От: peiv Россия  
Дата: 08.10.23 08:17
Оценка: +1 :)
Pzz>>Почему? Можно ж выйти по условию. Не обязательно делать goto из середины.
SM>У ТС речь шла про break, по нему и выходим по условию из середины цикла. Повторяю, ситуации, когда нужно выйти из середины цикла, встречаются часто. Зачем тратить время на полный перебор? Для этого используются break и exit.

Это можно реализовать без break. Надо 2 проверки — один if внутри цикла и одна проверка в начале(конце) цикла.
Re[8]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 08.10.23 10:05
Оценка: +1 :)
Здравствуйте, Артём, Вы писали:

Pzz>>А что с делением?


Аё>Мне про такое неизвестно. Умножение строки/массива на число повторов- это стандартный и широкораспространённый приём в питоне.


Но пример был из плюсов
_____________________
С уважением,
Stanislav V. Zudin
Re[9]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 08.10.23 19:59
Оценка: :))
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Но пример был из плюсов


В плюсах можно переопределять операторы и можно макросами поменять true и false местами. Это точто был пример из каноничных плюсов с только stl?
Re[13]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 09.10.23 04:57
Оценка: -1 :)
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, baxton_ulf, Вы писали:


_>>ну, хотя бы так. да. а мидлов как набирать? а джунов?


C>Видимо, по другому.


ну вот видишь — способ не рабочий

_>>да и думаю, если бы так набирали, то ты бы тут кричал про "что за тупейший способ" набирать


C>Ну да, что может быть тупее, чем посмотреть на реальные результаты.


это не сарказм, это "ляпнул не подумав" называется. ты предложил способ решения проблемы в очень узкой области определения. он не масштабируется и не обобщается
Re[8]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 09:57
Оценка: -1 :)
Pzz>>Только проверка границы.
C>В копипасте. В итоге — копипасты больше, добавочные усилия чтобы понять смысл, и все это исключительно ради религиозных идей.
Это у тебя религия, а у нас — ускорение последовательного поиска методом введения барьера
m[n] = x;
i = 0;
while(x != m[i]) ++i;
if(i < n) "нашли"; else "не нашли"

Опаньки!
И куда делась копипаста ?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: Книжки читать надо
От: LaptevVV Россия  
Дата: 09.10.23 09:57
Оценка: -1 :)
Тогда и копипаста не понадобится...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 09.10.23 10:00
Оценка: +2
Здравствуйте, LaptevVV, Вы писали:

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

LVV>Это у тебя религия, а у нас — ускорение последовательного поиска методом введения барьера

модифицировать входящий константный массив?
ты серьезно?
Re[10]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 10:02
Оценка: -1 :)
C>>>В копипасте. В итоге — копипасты больше, добавочные усилия чтобы понять смысл, и все это исключительно ради религиозных идей.
LVV>>Это у тебя религия, а у нас — ускорение последовательного поиска методом введения барьера
NB>модифицировать входящий константный массив?
NB>ты серьезно?
А ты серьезно думаешь, что я не знаю, что и как надо делать.
Написан псевдокод в стиле и.
А ты его воспринимаешь как реальный код ?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 09.10.23 12:08
Оценка: +2
Здравствуйте, 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒, Вы писали:

尿Ǥ푙>очень спорное заявление. без выходов из цикла можно прекрасно обходиться. часто но не всегда — "выходы" проявление лени программиста, когда можно было не предавть избыточных вхдодных данных, но было лень считать. Всегда можно использовать while/until — это выглядит более уважительным к читателям кода, чем заставлять людей лазить по циклу и искать тот шедeвральный "Ups".


Это что же за простыни кода вы вставляете в цикл, чтобы надо было аж "лазить по циклу и искать тот шедeвральный..."(с)?
Может дело не в преждевременном break'е, а в организации кода в целом?
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: жизнь не перестает удивлять
От: smeeld  
Дата: 10.10.23 07:00
Оценка: +1 :)
Здравствуйте, Pzz, Вы писали:

Pzz>Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.


Эх вы, сишные динозавры. Это вы не понимаете, в модных молодежных язычках такое знать не требуется
Re[6]: жизнь не перестает удивлять
От: smeeld  
Дата: 10.10.23 07:07
Оценка: +1 -1
Здравствуйте, baxton_ulf, Вы писали:

_>это паттерн, который может сделать твою программу быстрее и занимать меньше памяти.


Сейчас времена электронов, контейнеров и прочей жирноты. Такие мелочи как экономия памяти или оптимизация алгоритмов массового быдлокодера не волнуют
Re[4]: жизнь не перестает удивлять
От: Философ Ад http://vk.com/id10256428
Дата: 12.10.23 10:23
Оценка: +1 -1
Здравствуйте, Нomunculus, Вы писали:

C>>>>>>....что такое цикл с выходом из середины....

Н>>>Break что ли?
C>>Естественно. А чем еще это может быть?

break, return, goto, throw знаю, а вот "цикл с выходом из середины" — какая-то непонятная хрень. Никогда не слышал.
Какой-то новый термин.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 25.10.23 15:59
Оценка: +2
Здравствуйте, cthsq, Вы писали:

C>сто лет на квыт не заходил

C>но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
C>как будто был тут вчера

Эликсир вечной молодости, однако.
Re[5]: жизнь не перестает удивлять
От: rg45 СССР  
Дата: 27.10.23 14:28
Оценка: +2
Здравствуйте, Философ, Вы писали:

Ф>break, return, goto, throw знаю, а вот "цикл с выходом из середины" — какая-то непонятная хрень. Никогда не слышал.

Ф>Какой-то новый термин.

"Цикл с выходом из середины" — это то, ЧТО нужно получить, а break, return, goto и throw — это то, КАК этого можно достичь. Топик стартера в большей мере интересовало "что", а не "как", вот и все.
--
Справедливость выше закона. А человечность выше справедливости.
Отредактировано 10.11.2023 1:51 rg45 . Предыдущая версия . Еще …
Отредактировано 27.10.2023 14:42 rg45 . Предыдущая версия .
Re[18]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 19:39
Оценка: 3 (1)
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Почему ты везде ищешь подвох?

SVZ>Занимался фотографией, нужны были фотошоп и лайтрум.
SVZ>Всё остальное доступно забесплатно или за маленькую денежку.

Ну потому что это подвох Есть еще много вариантов кроме гигантского продукта и не делать вообще ничего. Не так ли?

SVZ>Приведи свой пример, что тебе потребовалось написать руками для себя для любимого.


Да много разного. Что-то просто ради интереса. Что-то более практическое, например более удобный бэкап.

SVZ>Мой научный руководитель по совместительству был регентом церковного хора.


Тот чувак — не по совместительству. Это была его основная карьера
Ад пуст, все бесы здесь.
Re: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 06.10.23 17:11
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.


Хе-хе, друг мой давнишний как-то жаловался.

12 часов потребовалось студенту, чтобы так и не понять что за магия творится в строчке:

а = (c[0] — '0') *100 + (c[1] — '0')*10 + (c[2] — '0')

и почему придуманная им инициализация char* c = {1,2,3} не работает

Студент из "толковых"

"Час плакали, обнявшись"(с)
_____________________
С уважением,
Stanislav V. Zudin
Re: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:17
Оценка: +1
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.


Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.
Re[3]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 06.10.23 17:21
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.


Тогда я, пожалуй, сохраню интригу
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:23
Оценка: +1
Здравствуйте, Pzz, Вы писали:

Pzz>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.


Какую странную ересь ты бы не исповедовал, но знать базовые конструкции языка все же нужно.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Osaka  
Дата: 06.10.23 17:32
Оценка: +1
SVZ>12 часов потребовалось студенту, чтобы так и не понять что за магия творится в строчке:
SVZ>а = (c[0] — '0') *100 + (c[1] — '0')*10 + (c[2] — '0')
SVZ>и почему придуманная им инициализация char* c = {1,2,3} не работает
Минут 5 думал, что в данном контексте означает "работает".
Re[5]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:36
Оценка: +1
Здравствуйте, Codealot, Вы писали:

Pzz>>А так ты понимашь: c = 3["hello"]; ? А так: x = (f ? sin : cos)(y); ?


C>Это точно не базовые конструкции языка, так что не надо мутить воду.


Почему?
Re[5]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:39
Оценка: +1
Здравствуйте, Codealot, Вы писали:

Pzz>>Нет.


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


Реальный код может быть компромиссом между "теоретически правильным" и "практически обусловленным", но как бы то ни было, специалист, претендующий на то, что он работает сознательно, а не на смеси рефлексов, подражания и карго-культа, должен хотя бы понимать, что такое "теоретически правильный" код, и зачем он такой нужен.
Re[6]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:40
Оценка: :)
Здравствуйте, Pzz, Вы писали:

Pzz>Почему?


А что, про такие вещи пишут во всех учебниках для начинающих?
К тому же это специфично для языка, в отличии от. В общем, оставь сову в покое.
Ад пуст, все бесы здесь.
Re[7]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:43
Оценка: +1
Здравствуйте, Codealot, Вы писали:

Pzz>>Почему?


C>А что, про такие вещи пишут во всех учебниках для начинающих?


А что, базовые конструкции, это лишь те, про которые пишут в учебниках для начинающих?

Я, кстати, понятия не имею, что пишут в этих учебниках.

C>К тому же это специфично для языка, в отличии от. В общем, оставь сову в покое.


Использование фигурных скобок вместо begin ... end тоже специфично для языка...
Re[3]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 06.10.23 19:02
Оценка: +1
Здравствуйте, night beast, Вы писали:

NB>так может и не нужно этого знать?

NB>как часто может потребоваться писать такое самому?

Иногда приходится писать подобные низкоуровневые штуки.
Иногда подобный приём может пригодиться для другой задачи.
Наконец, оно пригодится, чтобы читать подобный легаси код.
_____________________
С уважением,
Stanislav V. Zudin
Re[6]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:11
Оценка: :)
Здравствуйте, Stanislav V. Zudin, Вы писали:

NB>>тот же прием Pzz с выбором функции на мой взгляд более полезен


SVZ>Да, приём неплохой.


Эта. Я не хотел подать пример. Скорее, наоборот.
Re[3]: жизнь не перестает удивлять
От: Basil2 Россия https://starostin.msk.ru
Дата: 08.10.23 09:04
Оценка: +1
Здравствуйте, Slawa Ms, Вы писали:

Pzz>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

SM>Т.е., имеем цикл на 100500 итераций. На третьей получаем нужный нам результат, но все равно будем продолжать 100497 раз?

Тогда это должно быть условием цикла. Что у нас цикл не "на 100500 итераций", а "100500 итераций либо получение результата".

Но с точки зрения кодирования, сделать это через break обычно легче, чем продумывать структуру цикла.
Проект Ребенок8020 — пошаговый гайд как сделать, вырастить и воспитать ребенка.
Re[4]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 08.10.23 12:03
Оценка: +1
B>Тогда это должно быть условием цикла. Что у нас цикл не "на 100500 итераций", а "100500 итераций либо получение результата".
Такое пишется буквально на 2-й лекции по алгоритмам: последовательный поиск в неупорядоченном массиве
i = 0;
while(i < n && x != m[i]) ++i;
if(i < n) "нашли"; else "не нашли"

Ну, и потом всякие улучшения наступают...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[4]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 08.10.23 20:10
Оценка: +1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Не, оне предлагают взводить флаг, который проверится на следующей итерации в for'е.


SVZ>Те же яйца, только в профиль. Зато по фэн-шую.


SVZ>Но ещё, вроде как, не считается ересью return для выхода из цикла.


Точно не перестаёт удивлять. Выход из цикла по условию продолжения- самое распространённое, но если ради этого вводить лишний флаг "isBreak", то imho из области "научи дурака богу молиться". Такое я бы попросил упростить в PR. KISS рулит.
Re[11]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 08.10.23 20:17
Оценка: :)
Здравствуйте, night beast, Вы писали:

NB>открой для себя удивительный сайт gcc.godbolt.org и попроси его выполнить


Нафига мне ужасы C++. Вот Херб Саттер на CPPCon 2023 предлагает ввести новый синтаксис в C++, взять опыт из Typescript. В 10 раз понятнее и в 50 раз меньше стрелять в ногу.


Доклад Саттера
https://www.youtube.com/watch?v=8U3hl8XMm8c
Отредактировано 08.10.2023 21:29 Артём . Предыдущая версия .
Re[12]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 08.10.23 21:14
Оценка: +1
Здравствуйте, Артём, Вы писали:

Аё>Нафига мне ужасы C++. Вот Херб Саттер на CPPCon 2023 предлагает ввести новый синтаксис в C++, взять опыт из Typescript. В 10 раз понятнее и в 50 раз меньше стрелять в ногу.


Какое утонченное оскорбление!
Re[14]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:35
Оценка: :)
Здравствуйте, Артём, Вы писали:

Аё>Нафига илитарность, это неуловимый Джо.


Для многих это очень важно.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: andyp  
Дата: 08.10.23 23:41
Оценка: :)
Здравствуйте, Codealot, Вы писали:

C>Типа, это что-то меняет?


Если чувак там всех так ревьюит, то вся контора про break со временем забудет, и будет структурненько как в мертвецкой.
Re[9]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 09.10.23 00:12
Оценка: +1
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, baxton_ulf, Вы писали:


_>>ну то есть ты согласен, что таких надо отсеивать?


C>Очевидно не этим способом, потому что он не работает. А то и наносит больше вреда чем пользы.


есть такое правило: критикуя предлагай.
у тебя же я пока вижу не подкрепленные ничем наезды — видимо из за обидок (не взяли). и никаких конструктивных предложений
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 15:04
Оценка: +1
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Почему все считают, что у программистов есть только одно хобби — программирование???


Программист, который никогда ничего не писал просто для себя — это как сантехник, у которого дома унитаз течет.

SVZ>Коли проходил не раз, то и проблем возникать не должно


Бред. У всех компаний тараканы разных пород.

SVZ>Что тут превозмогать??? Рассказываешь из своей практики, как и почему (не) применял ту или иную конструкцию. Получается очень содержательный разговор на профессиональную тему.



Чистый незамутненный инфантилизм. Я даже в самой зачуханной шарашкиной конторе такие вопросы не встречал.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒  
Дата: 10.10.23 00:25
Оценка: :)
выдыхай с тобой давно ясно все, просто поделился своим мнением. с точки зрения выразительности while/until всегда будет выигрывать прерванным циклам. понятно, что много от культуры программирования зависит но со временем любой код обрастает кораллами и то как это делет цикл с брейком намного выглядит паршивей вайла. тоже относится к continue, да полезная вещь в редких ситуациях, но она провоцирует людей писать трудноподдерживаемый код.
Re[17]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 10.10.23 15:52
Оценка: +1
Здравствуйте, Codealot, Вы писали:


_>>совершенно верно в области забивания гвоздей и завинчивания шурупов все use-cases охвачены.


C>Причем множеством разных методов, а не одним универсальным, как этого хочешь ты.


я очень рад твоим познаниям в области заколачивания гвоздей разными способами.
но хотелось бы все таки услышать как нам нанимать программистов. пока от тебя не поступило ни одного рабочего предложения

_>>так что мимо. опять ляпнул не подумав.


C>Да. Ты.

C>Всё, свободен.

"что ж ты фраер сдал назад?" (с)
Re[18]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 17:45
Оценка: :)
Здравствуйте, baxton_ulf, Вы писали:

С неадекватами и лжецами не спорю. До тебя медленно доходит?
Ад пуст, все бесы здесь.
Re[16]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 17:47
Оценка: :)
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>А ты можешь написать Фотошоп лучше, чем у Адоба?

SVZ>В одиночку? Правда что-ли?
SVZ>Я бы на это посмотрел!

Что, кроме аж целого фотошопа других вариантов нет? Обычное доведение до абсурда.

SVZ>Я даже не программист по диплому.


Тоже мне проблема. Я был знаком с одним менеджером из Амазона, так он и вовсе оперный певец. Вполне буквально.
Ад пуст, все бесы здесь.
Re[6]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 17:49
Оценка: -1
Здравствуйте, Dym On, Вы писали:

DO>Есть фишки покруче, например, метод Даффа


В современных решениях польза от применения метода Даффа сомнительна.

Бессмысленный выпендреж как он есть.
Ад пуст, все бесы здесь.
Отредактировано 10.10.2023 17:49 Codealot . Предыдущая версия .
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 19:43
Оценка: :)
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Видимо были ограничения, почему не использовали atoi.


Или же просто от выпендрежа. Такое бывает часто.
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка: -1
Здравствуйте, Codealot, Вы писали:

C>Это точно не базовые конструкции языка, так что не надо мутить воду.

Это как раз самые что ни на есть базовые.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[20]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 01:50
Оценка: :)
Здравствуйте, CreatorCray, Вы писали:

CC>Неужто ты с зеркалом перестал разговаривать?


И не начинал. Что-нибудь поумнее детсадовского уровня придумать не можешь?
Не говоря уже о том, что твое стремление сказать гадость при любой возможности выглядит позорно.
Ад пуст, все бесы здесь.
Re[6]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 01:50
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>Это как раз самые что ни на есть базовые.


Расскажи мне, в чем смысл писать индексацию как

c = 3["hello"];

кроме тупого выпендрежа.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 12:37
Оценка: :)
Здравствуйте, Codealot, Вы писали:

Н>>Break что ли?

C>Естественно. А чем еще это может быть?

Выход из функции по-исключению выброшенному из signal-handler'a!

Н>>Ну может он просто не понял тебя.

C>Он смотрел на код и сказал "а что это за странная штука и зачем нужна?"

Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 08.11.23 10:26
Оценка: :)
Здравствуйте, karbofos42, Вы писали:

K>Здравствуйте, fk0, Вы писали:


fk0>> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


K>А циклы сами по себе — это тоже по сути замаскированные goto/jmp.

K>Как с ними не нарушать принципов структурного программирования?

В этой теме кто-то сказал, что структурное программирование -- это когда программа
строится из кубиков имеющих один вход и типично один (циклы), два (условный оператор)
или множество (switch) выходов. Мне такое определение понравилось. break/goto нарушают этот принцип.
Re[3]: жизнь не перестает удивлять
От: Нomunculus Россия  
Дата: 06.10.23 17:04
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, Нomunculus, Вы писали:


Н>>Break что ли?


C>Естественно. А чем еще это может быть?


Ну ты так оформил это специфичным термином, что можно подумать что это какая-то особенная фишка языка.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:14
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Хе-хе, друг мой давнишний как-то жаловался.


Не очень понятно, что ты хотел сказать.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:17
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>То, что выход на пенсию нам не грозит


Вам, любителям мутить воду?
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Osaka  
Дата: 06.10.23 17:29
Оценка:
Pzz>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.
В "структурное программирование" вроде бы это единственный приличный случай использования goto
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:33
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Нет.


Вероятно, там предложат сделать добавочный флаг для выхода и вытащить часть переменных из цикла. Но люди без склонности к сектанству так не делают.
Ад пуст, все бесы здесь.
Re[6]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:42
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>должен хотя бы понимать, что такое "теоретически правильный" код, и зачем он такой нужен.


"Теоретически правильный" в понимании сектантов.
В любом случае, специалист должен знать реалии, а не только свои представления о правильности.
Ад пуст, все бесы здесь.
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:45
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А что, базовые конструкции, это лишь те, про которые пишут в учебниках для начинающих?


Как ни странно — да.

Pzz>Я, кстати, понятия не имею, что пишут в этих учебниках.


Сразу родился со знанием всего?

Pzz>Использование фигурных скобок вместо begin ... end тоже специфично для языка...


Да. Так что лучше не использовать пасквиль.
Ад пуст, все бесы здесь.
Re[9]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 17:49
Оценка:
Здравствуйте, Codealot, Вы писали:

Pzz>>Я, кстати, понятия не имею, что пишут в этих учебниках.


C>Сразу родился со знанием всего?


У меня не было учебника для начинающих. Приходилось как-то по-другому добывать информацию из окружающей среды.
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 17:52
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Теорию знать не вредно.


Если ты не знаешь практику, никакие теории тебе не помогут.

C>>В любом случае, специалист должен знать реалии, а не только свои представления о правильности.

Pzz>Хороший специалист обладает развитыми когнитивными картами. Это значит, что он знает или может придумать много правильных решений и сознательно выбирать из них наиболее подходящее, с оглядкой на конкретную ситуацию.

Это ты споришь с голосами в твоей голове, а не отвечаешь мне. Видишь, что я написал? Перечитай еще раз, если не понял.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 06.10.23 17:58
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Хе-хе, друг мой давнишний как-то жаловался.


так может и не нужно этого знать?
как часто может потребоваться писать такое самому?
Отредактировано 06.10.2023 18:26 night beast . Предыдущая версия .
Re[9]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 06.10.23 18:04
Оценка:
Здравствуйте, Codealot, Вы писали:

Pzz>>Теорию знать не вредно.


C>Если ты не знаешь практику, никакие теории тебе не помогут.


"Что тут думать? Трясти надо!".
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 18:30
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>"Что тут думать? Трясти надо!".


Одно только думание еще никому не помогало.
Ну и рассказ как раз на эту тему — Кристофер Энвил, "Небывалый расцвет интеллекта".
Ад пуст, все бесы здесь.
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 18:30
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>У меня не было учебника для начинающих. Приходилось как-то по-другому добывать информацию из окружающей среды.


В ВУЗе не учился, на лекции не ходил?
Ну если ты так умен чтобы сразу начинать книги с уровня профи, то остается только удивляться, почему ты еще не знаменит и не богат до омерзения.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 18:31
Оценка:
Здравствуйте, night beast, Вы писали:

NB>как часто может потребоваться писать такое самому?


Да, такое лучше просто не писать.
Ад пуст, все бесы здесь.
Re: жизнь не перестает удивлять
От: no_ise  
Дата: 06.10.23 19:16
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.

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


Ну, этот вопрос не совсем однозначный, как уже говорили. Вот все аргументы за и против в сборе:
https://softwareengineering.stackexchange.com/questions/58237/are-break-and-continue-bad-programming-practices

Однако, в зубодробительных случаях наверно сложно вникать во все это и требуются черно-белые ориентиры.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 06.10.23 19:54
Оценка:
Здравствуйте, no_ise, Вы писали:

_>Ну, этот вопрос не совсем однозначный, как уже говорили. Вот все аргументы за и против в сборе:


Никакие аргументы не отменяют необходимость знать, что это такое.
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 06.10.23 19:54
Оценка:
Здравствуйте, night beast, Вы писали:

NB>так может и не нужно этого знать?

NB>как часто может потребоваться писать такое самому?

да конечно, можно не знать. не пройдёшь интервью да и только
Re[4]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 07.10.23 06:34
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

NB>>так может и не нужно этого знать?

SVZ>Иногда приходится писать подобные низкоуровневые штуки.

вот конкретно этот где может пригодиться?
лично мне нужен был пару раз когда по быстрому на коленке делалось что-то вроде atoi или валидации
я к тому что есть более нужные вещи, и не стоит по знанию/незнанию делать какие-то выводы
тот же прием Pzz с выбором функции на мой взгляд более полезен
Re[4]: жизнь не перестает удивлять
От: Нomunculus Россия  
Дата: 07.10.23 08:04
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>да конечно, можно не знать. не пройдёшь интервью да и только


И слава Богу. Не хотел бы работать в конторе, где занимаются такой херней.
Re[5]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 07.10.23 15:38
Оценка:
Здравствуйте, night beast, Вы писали:

NB>вот конкретно этот где может пригодиться?

NB>лично мне нужен был пару раз когда по быстрому на коленке делалось что-то вроде atoi или валидации

Такой трюк, только с 16-ричными числами, мне пришлось делать в 97 году на ассемблере. Из-за того, что сишный рантайм занимал целых 10кб. Всю программу на асме удалось уложить в 700байт. Была жесткая нехватка памяти и усилия того стоили.

NB>я к тому что есть более нужные вещи, и не стоит по знанию/незнанию делать какие-то выводы


Этот приём, по сути, просто получение элемента в таблице по смещению.
В книгах он хорошо разжеван. Его незнание, ессно, не проблема, но говорит много о человеке (изучает ли что-то сверх школьной программы).

Мы использовали такой подход для хранения компонентов печатных плат.
Отношение один-ко-многим. Объект ссылается на первый элемент "своей" коллекции.
Имея индекс текущего элемента и индекс первого элемента в группе вычисляется порядковый номер в коллекции.
Приём достаточно низкоуровневый, но должен же кто-то фреймворки не только использовать, но и разрабатывать

NB>тот же прием Pzz с выбором функции на мой взгляд более полезен


Да, приём неплохой.
_____________________
С уважением,
Stanislav V. Zudin
Re[2]: жизнь не перестает удивлять
От: Kernan Ниоткуда https://rsdn.ru/forum/flame.politics/
Дата: 07.10.23 16:13
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

Почему?
Sic luceat lux!
Re[6]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:08
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>3*"hello" => "hellohellohello". Насчёт опциональности оператора — нужно проверять


А что с делением?
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 07.10.23 20:08
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>goto, return, исключение...


goto здесь не нужен, а остальные два варианта не особо отличаются.
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:10
Оценка:
Здравствуйте, night beast, Вы писали:

NB>тот же прием Pzz с выбором функции на мой взгляд более полезен


В молодости я так сделал пару раз. Сейчас бы не стал. Просто написал в качестве курьёза.
Re[6]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 07.10.23 20:13
Оценка:
Здравствуйте, Pzz, Вы писали:

NB>>тот же прием Pzz с выбором функции на мой взгляд более полезен

Pzz>В молодости я так сделал пару раз. Сейчас бы не стал. Просто написал в качестве курьёза.

делал бы через указатель на функцию + иф или писал бы доп. функцию?
Re[7]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:17
Оценка:
Здравствуйте, night beast, Вы писали:

Pzz>>В молодости я так сделал пару раз. Сейчас бы не стал. Просто написал в качестве курьёза.


NB>делал бы через указатель на функцию + иф или писал бы доп. функцию?


Просто if. Да, 4 строки вместо одной.
Re[8]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 07.10.23 20:22
Оценка:
Здравствуйте, Pzz, Вы писали:

NB>>делал бы через указатель на функцию + иф или писал бы доп. функцию?

Pzz>Просто if. Да, 4 строки вместо одной.

копипаста -- зло.
а если это параметр, идущий аргументом, тоже через иф?
Re[4]: жизнь не перестает удивлять
От: Slawa Ms Россия http://www.SlawaMs.com
Дата: 07.10.23 20:24
Оценка:
Здравствуйте, Vzhyk2, Вы писали:

V>Здравствуйте, Codealot, Вы писали:


Н>>>Break что ли?

C>>Естественно. А чем еще это может быть?
V>goto, return, исключение...
Еще есть exit.
"Can You Remember, Remember My Name." (c) DP
Re[2]: жизнь не перестает удивлять
От: Slawa Ms Россия http://www.SlawaMs.com
Дата: 07.10.23 20:31
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, Codealot, Вы писали:


C>>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.


Pzz>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

Т.е., имеем цикл на 100500 итераций. На третьей получаем нужный нам результат, но все равно будем продолжать 100497 раз?
"Can You Remember, Remember My Name." (c) DP
Re[3]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 07.10.23 20:32
Оценка:
Здравствуйте, Slawa Ms, Вы писали:

Pzz>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

SM>Т.е., имеем цикл на 100500 итераций. На третьей получаем нужный нам результат, но все равно будем продолжать 100497 раз?

Почему? Можно ж выйти по условию. Не обязательно делать goto из середины.
Re[4]: жизнь не перестает удивлять
От: Slawa Ms Россия http://www.SlawaMs.com
Дата: 07.10.23 21:43
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Здравствуйте, Slawa Ms, Вы писали:


Pzz>>>Ну при всем при том, методология разработки по имени "структурное программирование" считает, что выход из середины цикла не нужен.

SM>>Т.е., имеем цикл на 100500 итераций. На третьей получаем нужный нам результат, но все равно будем продолжать 100497 раз?

Pzz>Почему? Можно ж выйти по условию. Не обязательно делать goto из середины.

У ТС речь шла про break, по нему и выходим по условию из середины цикла. Повторяю, ситуации, когда нужно выйти из середины цикла, встречаются часто. Зачем тратить время на полный перебор? Для этого используются break и exit. Про goto речь не идет. Даже не знаю, есть он в Delphi или нет.
"Can You Remember, Remember My Name." (c) DP
Re[7]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 08.10.23 00:49
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>А что с делением?


Мне про такое неизвестно. Умножение строки/массива на число повторов- это стандартный и широкораспространённый приём в питоне.
Re[5]: жизнь не перестает удивлять
От: nikkit  
Дата: 08.10.23 01:23
Оценка:
SM>Еще есть exit.

Application.Exit в винформс? или ты про паскаль?
Re[7]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 08.10.23 10:03
Оценка:
Здравствуйте, Pzz, Вы писали:

NB>>>тот же прием Pzz с выбором функции на мой взгляд более полезен


SVZ>>Да, приём неплохой.


Pzz>Эта. Я не хотел подать пример. Скорее, наоборот.


А зря. Пример неплохой.
Легко читается, в отличие от какого-нибудь "двойного не" (!!variable)

Единственное сомнение — сможет ли компилятор в такой конструкции соптимиздить указатель на функцию.
_____________________
С уважением,
Stanislav V. Zudin
Re[7]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 08.10.23 11:54
Оценка:
C>А что, про такие вещи пишут во всех учебниках для начинающих?

Я — написал...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[11]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 08.10.23 11:56
Оценка:
C>Ну если ты так умен чтобы сразу начинать книги с уровня профи, то остается только удивляться, почему ты еще не знаменит и не богат до омерзения.
А зачем?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[10]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 08.10.23 20:11
Оценка:
Здравствуйте, Артём, Вы писали:

SVZ>>Но пример был из плюсов

Аё>В плюсах можно переопределять операторы и можно макросами поменять true и false местами. Это точто был пример из каноничных плюсов с только stl?

открой для себя удивительный сайт gcc.godbolt.org и попроси его выполнить
Re[6]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:08
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>а разве тебе не помогает знание, например того, что с отсортированными коллекциями работать быстрее во многих задачах.


Это элементарщина, которую на собеседованиях уже давно не спрашивают.

_>пример из практики: лет, наверное 20 назад я видел программу намертво висящую потому, что обрабатывала коллекцию из 50К записей со сложностью O(N^2) если бы те программисты практиковали решение задач, которые "высосаны из пальца", то их алгоритм просто бы летал, а не висел по пол дня.


Я такое тоже видел. И даже хуже. Причем написанное людьми, которые каким-то образом прошли собеседование с кучей алгоритмических вопросов.
Ад пуст, все бесы здесь.
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:08
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>А зачем?

LVV>

Лиса и виноград. Басня. Крылов.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:09
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Выходить из середины — это goto по сути, в худшем его проявлении


Бред.
Ад пуст, все бесы здесь.
Re[7]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:10
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Эта. Я не хотел подать пример. Скорее, наоборот.


Вот так обычно и бывает.
Ад пуст, все бесы здесь.
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:12
Оценка:
Здравствуйте, Артём, Вы писали:

Аё>Вот Херб Саттер на CPPCon 2023 предлагает ввести новый синтаксис в C++, взять опыт из Typescript. В 10 раз понятнее и в 50 раз меньше стрелять в ногу.


Плюсовики не примут. Илитарности было бы намного меньше.
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:14
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Такое пишется буквально на 2-й лекции по алгоритмам: последовательный поиск в неупорядоченном массиве


Ага, и копипаста условия. Отличный способ создать себе гемор на ровном месте.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:16
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Но ещё, вроде как, не считается ересью return для выхода из цикла.


Это как те мормоны, которые верят, что трахаться до женитьбы нельзя. Но если просто всунуть и не шевелиться, то можно.
Ад пуст, все бесы здесь.
Re[6]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 08.10.23 21:17
Оценка:
Здравствуйте, Codealot, Вы писали:

LVV>>Такое пишется буквально на 2-й лекции по алгоритмам: последовательный поиск в неупорядоченном массиве


C>Ага, и копипаста условия. Отличный способ создать себе гемор на ровном месте.


У Лаптева, заметь, нет копипасты условия поиска. Только проверка границы.
Re[13]: жизнь не перестает удивлять
От: Артём Австралия жж
Дата: 08.10.23 21:24
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Плюсовики не примут. Илитарности было бы намного меньше.


Нафига илитарность, это неуловимый Джо. Популяризовать C++ для фронтэндов например. На сегодня, дефолтный фронтенд- это веб SPA.
Re[7]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 21:36
Оценка:
Здравствуйте, Pzz, Вы писали:

Pzz>Только проверка границы.


В копипасте. В итоге — копипасты больше, добавочные усилия чтобы понять смысл, и все это исключительно ради религиозных идей.
Ад пуст, все бесы здесь.
Re[7]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 08.10.23 21:40
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, baxton_ulf, Вы писали:


_>>а разве тебе не помогает знание, например того, что с отсортированными коллекциями работать быстрее во многих задачах.


C>Это элементарщина, которую на собеседованиях уже давно не спрашивают.


спрашивают, только не напрямую. практика показывает, что не такая уж и "элементарщина"

C>Я такое тоже видел. И даже хуже. Причем написанное людьми, которые каким-то образом прошли собеседование с кучей алгоритмических вопросов.


ну то есть ты согласен, что таких надо отсеивать?
сможешь рассказать как их отсеять на ближних подступах, до того как они напортачат в проекте?
Re[3]: жизнь не перестает удивлять
От: bnk СССР http://unmanagedvisio.com/
Дата: 08.10.23 21:40
Оценка:
Здравствуйте, Codealot, Вы писали:

bnk>>Выходить из середины — это goto по сути, в худшем его проявлении


C>Бред.


Обоснуй.
Re: жизнь не перестает удивлять
От: andyp  
Дата: 08.10.23 21:49
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода...


Кто кого ревьюил-то?
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 23:32
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>ну то есть ты согласен, что таких надо отсеивать?


Очевидно не этим способом, потому что он не работает. А то и наносит больше вреда чем пользы.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 23:33
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Обоснуй.


Это ты обоснуй, что "это goto по сути", да еще и "в худшем его проявлении". Особенно вторую часть. А то мне интересно, как что-то может быть хуже, чем goto.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 23:34
Оценка:
Здравствуйте, andyp, Вы писали:

A>Кто кого ревьюил-то?


Типа, это что-то меняет?
Ад пуст, все бесы здесь.
Re[3]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 23:35
Оценка:
Здравствуйте, andyp, Вы писали:

A>Угу. Пол итерации в одной функции, пол итерации — в другой. Классная локальность выходит, все прям совсем рядом и по смыслу становится сразу понятно, что там происходит

A>И это пришет чел, для которого break — когнитивная нагрузка.

Сектанты такие сектанты.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 08.10.23 23:46
Оценка:
Здравствуйте, andyp, Вы писали:

A>Если чувак там всех так ревьюит, то вся контора про break со временем забудет, и будет структурненько как в мертвецкой.


Ревьюит, в том числе. Тут все это делают по очереди. Даже если ничего не понимают
Вообще, не устаю удивляться странности здешних представлений о том, как надо работать правильно.
Ад пуст, все бесы здесь.
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 01:08
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>есть такое правило: критикуя предлагай.


Да в общем то ничего сложного. Смотришь на код предыдущих проектов, к примеру. Обычно у профи есть хотя бы что-то в опен сорсе, или хобби-проекты.

_>у тебя же я пока вижу не подкрепленные ничем наезды — видимо из за обидок (не взяли). и никаких конструктивных предложений


Пф. Тупейший аргумент. Проходил такие собесы не раз, и обычно чем больше понтов на собесе, тем бестолковее компания.
А ты видимо очень гордишься, что ты превозмог и тебя взяли.
Ад пуст, все бесы здесь.
Re[11]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 09.10.23 02:10
Оценка:
Здравствуйте, Codealot, Вы писали:

_>>есть такое правило: критикуя предлагай.


C>Да в общем то ничего сложного. Смотришь на код предыдущих проектов, к примеру. Обычно у профи есть хотя бы что-то в опен сорсе, или хобби-проекты.


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

C>Пф. Тупейший аргумент. Проходил такие собесы не раз, и обычно чем больше понтов на собесе, тем бестолковее компания.


где вы такие находите то? и потом, как "понты" вообще связаны с решением какой-нибудь toy-problem? там же или решил или нет

C>А ты видимо очень гордишься, что ты превозмог и тебя взяли.


мне ещё не время хвастаться вот постарею совсем, тогда буду тут выкладывать
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 03:12
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>ну, хотя бы так. да. а мидлов как набирать? а джунов?


Видимо, по другому.

_>да и думаю, если бы так набирали, то ты бы тут кричал про "что за тупейший способ" набирать


Ну да, что может быть тупее, чем посмотреть на реальные результаты.
Ад пуст, все бесы здесь.
Re[9]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 09.10.23 04:08
Оценка:
Здравствуйте, Codealot, Вы писали:

_>>ну то есть ты согласен, что таких надо отсеивать?


C>Очевидно не этим способом, потому что он не работает. А то и наносит больше вреда чем пользы.


Расскажи подробнее про вред. Друг просит
_____________________
С уважением,
Stanislav V. Zudin
Re[5]: жизнь не перестает удивлять
От: Mihas  
Дата: 09.10.23 08:27
Оценка:
Здравствуйте, LaptevVV, Вы писали:

Дядя Валера, а что буква учебника говорит про выход из цикла по break? Не увлеклись ли коллеги, очерняя этот способ?
Re[5]: жизнь не перестает удивлять
От: Maniacal Россия  
Дата: 09.10.23 09:23
Оценка:
Здравствуйте, Slawa Ms, Вы писали:

V>>goto, return, исключение...

SM>Еще есть exit.
И abort()
Ещё с помощью signal можно самозавершиться, но это в специфических случаях.
Отредактировано 09.10.2023 9:25 Maniacal . Предыдущая версия .
Re[6]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 10:00
Оценка:
M>Дядя Валера, а что буква учебника говорит про выход из цикла по break? Не увлеклись ли коллеги, очерняя этот способ?
Не учебник, а здравый смысл говорит, что и то, и другое в коде вполне приемлемо — зависит от задачи, как правило.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[11]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 09.10.23 10:04
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Написан псевдокод в стиле и.

LVV>А ты его воспринимаешь как реальный код ?

я его воспринял как рекомендацию изменять данные там, где изменение данных не предполагается.
в общем, вредный совет.
Отредактировано 09.10.2023 10:06 night beast . Предыдущая версия . Еще …
Отредактировано 09.10.2023 10:05 night beast . Предыдущая версия .
Re[7]: жизнь не перестает удивлять
От: Mihas  
Дата: 09.10.23 10:10
Оценка:
Здравствуйте, LaptevVV, Вы писали:

M>>Дядя Валера, а что буква учебника говорит про выход из цикла по break? Не увлеклись ли коллеги, очерняя этот способ?

LVV>Не учебник, а здравый смысл говорит, что и то, и другое в коде вполне приемлемо — зависит от задачи, как правило.
Со здравым смыслом я и не спорю.
Мне было любопытно, как этот аспект преподносится студентам.
Re[12]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 10:11
Оценка:
LVV>>Написан псевдокод в стиле и.
LVV>>А ты его воспринимаешь как реальный код ?
NB>я его воспринял как рекомендацию изменять данные там, где изменение данных не предполагается.
NB>в общем, вредный совет.
Ну, все претензии к Кнуту, которого я читал в начале 70-х, а писал он вообще в конце 60-х.
ИМХО зависит от задачи и потребностей с возможностями.
Вполне себе сокращаем количество операций на n проверок границы.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 10:16
Оценка:
M>>>Дядя Валера, а что буква учебника говорит про выход из цикла по break? Не увлеклись ли коллеги, очерняя этот способ?
LVV>>Не учебник, а здравый смысл говорит, что и то, и другое в коде вполне приемлемо — зависит от задачи, как правило.
M>Со здравым смыслом я и не спорю.
M>Мне было любопытно, как этот аспект преподносится студентам.
Нормально преподносится, со здравым смыслом.
И то, и другое.
И объясняется, в чем разница.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[13]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 09.10.23 10:18
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну, все претензии к Кнуту, которого я читал в начале 70-х, а писал он вообще в конце 60-х.

LVV>ИМХО зависит от задачи и потребностей с возможностями.

да, метод рабочий (как и 0 в качестве терминатора строки), но сильно специфический.
Re[14]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 10:31
Оценка:
LVV>>Ну, все претензии к Кнуту, которого я читал в начале 70-х, а писал он вообще в конце 60-х.
LVV>>ИМХО зависит от задачи и потребностей с возможностями.
NB>да, метод рабочий (как и 0 в качестве терминатора строки), но сильно специфический.
Напротив, классический.
Кнут жеж.
Его труд признан одним из 12 величайших трудов 20 века
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[15]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 09.10.23 10:34
Оценка:
Здравствуйте, LaptevVV, Вы писали:

NB>>да, метод рабочий (как и 0 в качестве терминатора строки), но сильно специфический.

LVV>Напротив, классический.
LVV>Кнут жеж

прям так и написано "делайте так когда нужно что-то найти"?
Re[16]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 11:26
Оценка:
NB>прям так и написано "делайте так когда нужно что-то найти"?
Ну, открой же Кнута и почитай.
Он описывает разнообразные методы поиска
У меня тут есть пост про книжки по алгоритмам — там я про Кнута довольно подробно написал.
Новый список книг по алгоритмам — заголовок поста.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: жизнь не перестает удивлять
От: 尿컙拋㕪⬎⤇Ǥ꧃푙刾ꄔ൒  
Дата: 09.10.23 12:03
Оценка:
очень спорное заявление. без выходов из цикла можно прекрасно обходиться. часто но не всегда — "выходы" проявление лени программиста, когда можно было не предавть избыточных вхдодных данных, но было лень считать. Всегда можно использовать while/until — это выглядит более уважительным к читателям кода, чем заставлять людей лазить по циклу и искать тот шедeвральный "Ups".
Re[3]: жизнь не перестает удивлять
От: andyp  
Дата: 09.10.23 12:32
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Может дело не в преждевременном break'е, а в организации кода в целом?


Вот плюсану. Циклы делятся на простые и сложные для понимания не по наличию break или continue внутри.
Re[14]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 15:04
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>он не масштабируется и не обобщается


Гвозди тоже не масштабируются и не обощаются. Когда-то надо использовать шурупы, когда-то болты, а когда-то и дюбели. Всё отменить, заменить одним универсальным решением!!!!!!1111
В общем чувак, со своими идеями о всеобщем обобщении ты просто невменяем.
Ад пуст, все бесы здесь.
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 15:04
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Расскажи подробнее про вред. Друг просит


Вред достаточно очевидный. Когда задают высосанные из пальца вопросы, на которые просто по ежедневной практике не ответишь — на них будут отвечать только зубрилы, которые готовились специально.
Ад пуст, все бесы здесь.
Re[9]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 15:04
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Опаньки!


Опаньки, а откуда у тебя во входном массиве лишнее место? Решение становится всё замудренее, и без каких-либо причин, кроме сектантских идей.
Ад пуст, все бесы здесь.
Re[9]: Книжки читать надо
От: Codealot Земля  
Дата: 09.10.23 15:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Тогда и копипаста не понадобится...


Решения для тэорэтиков мало кому нужны, кроме тэорэтиков.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 09.10.23 15:06
Оценка:
Здравствуйте, ????????G???????, Вы писали:

?G?>очень спорное заявление. без выходов из цикла можно прекрасно обходиться. часто но не всегда — "выходы" проявление лени программиста, когда можно было не предавть избыточных вхдодных данных, но было лень считать. Всегда можно использовать while/until — это выглядит более уважительным к читателям кода, чем заставлять людей лазить по циклу и искать тот шедeвральный "Ups".

Еще один. Что в фразе "можешь не использовать, но знать и понимать обязан" тебе не понятно?
Ад пуст, все бесы здесь.
Re[13]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 09.10.23 15:22
Оценка:
Здравствуйте, Codealot, Вы писали:

SVZ>>Почему все считают, что у программистов есть только одно хобби — программирование???


C>Программист, который никогда ничего не писал просто для себя — это как сантехник, у которого дома унитаз течет.


Ну вот я не писал — не было нужды. Всё, что мне надо, уже написано.
Если уж говорить аллегориями, то предпочитаю унитаз промышленного изготовления, а не кустарного

SVZ>>Коли проходил не раз, то и проблем возникать не должно

C>Бред. У всех компаний тараканы разных пород.

У Гугла с М$ покрупнее, у остальных помельче.
Но в целом у всех всё одинаково.
Ни разу не готовился к собеседованиям.

SVZ>>Что тут превозмогать??? Рассказываешь из своей практики, как и почему (не) применял ту или иную конструкцию. Получается очень содержательный разговор на профессиональную тему.

C>Чистый незамутненный инфантилизм. Я даже в самой зачуханной шарашкиной конторе такие вопросы не встречал.

А не надо соваться в "зачуханные шарашкины конторы"

Лучшие компании, в которых я работал, именно так и собеседовали.
Получался увлекательнейший диспут на тему использования языковых конструкций, АПИ, технологий, алгоритмов.
_____________________
С уважением,
Stanislav V. Zudin
Re[11]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 09.10.23 15:23
Оценка:
Здравствуйте, Codealot, Вы писали:

SVZ>>Расскажи подробнее про вред. Друг просит


C>Вред достаточно очевидный. Когда задают высосанные из пальца вопросы, на которые просто по ежедневной практике не ответишь — на них будут отвечать только зубрилы, которые готовились специально.


...либо те, кто с этим сталкивался в реальной работе.
_____________________
С уважением,
Stanislav V. Zudin
Re[10]: жизнь не перестает удивлять
От: LaptevVV Россия  
Дата: 09.10.23 15:24
Оценка:
C>Опаньки, а откуда у тебя во входном массиве лишнее место? Решение становится всё замудренее, и без каких-либо причин, кроме сектантских идей.
Да ты сам сектант. Новых идей не воспринимаешь.
И считаешь свое мнение единственно правильным.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[15]: жизнь не перестает удивлять
От: baxton_ulf США  
Дата: 09.10.23 16:54
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, baxton_ulf, Вы писали:


_>>он не масштабируется и не обобщается


C>Гвозди тоже не масштабируются и не обощаются. Когда-то надо использовать шурупы, когда-то болты, а когда-то и дюбели. Всё отменить, заменить одним универсальным решением!!!!!!1111


совершенно верно в области забивания гвоздей и завинчивания шурупов все use-cases охвачены. так что мимо. опять ляпнул не подумав.
кстати, а зачем ты на гвозди перешёл? какие-то болезненные воспоминания? мы же вроде о проведении интервью в IT

C>В общем чувак, со своими идеями о всеобщем обобщении ты просто невменяем.


ну да. ты у нас известный гуру диалога
Re[6]: жизнь не перестает удивлять
От: Slawa Ms Россия http://www.SlawaMs.com
Дата: 09.10.23 20:45
Оценка:
Здравствуйте, nikkit, Вы писали:


SM>>Еще есть exit.


N>Application.Exit в винформс? или ты про паскаль?

Я про Дельфи, ТС не написал, какой язык имеется в виду.
Выход из функции: Delphi — exit, Python — return.
Других языков не знаю
"Can You Remember, Remember My Name." (c) DP
Re[16]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 05:52
Оценка:
Здравствуйте, baxton_ulf, Вы писали:

_>совершенно верно в области забивания гвоздей и завинчивания шурупов все use-cases охвачены.


Причем множеством разных методов, а не одним универсальным, как этого хочешь ты.

_>так что мимо. опять ляпнул не подумав.


Да. Ты.
Всё, свободен.
Ад пуст, все бесы здесь.
Re[14]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 05:54
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Ну вот я не писал — не было нужды. Всё, что мне надо, уже написано.


Это говорит только о том, что ты не можешь лучше.

SVZ>Но в целом у всех всё одинаково.


Это точно не так.

SVZ>А не надо соваться в "зачуханные шарашкины конторы"


Уже давно не, но в стародавние времена приходилось. Не всем всё достается на тарелочке.
Ад пуст, все бесы здесь.
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 05:55
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>...либо те, кто с этим сталкивался в реальной работе.


Все те многочисленные люди, кому случалось проектировать новый youtube с нуля
Ад пуст, все бесы здесь.
Re[11]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 05:56
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Да ты сам сектант. Новых идей не воспринимаешь.

LVV>И считаешь свое мнение единственно правильным.

Реалии таковы, что обычно никакого лишнего места во входном массиве нет. Так что собственно всё.
Ад пуст, все бесы здесь.
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 10.10.23 05:57
Оценка:
Здравствуйте, ????????G???????, Вы писали:

?G?>с точки зрения выразительности while/until всегда будет выигрывать прерванным циклам. понятно, что много от культуры программирования зависит но со временем любой код обрастает кораллами и то как это делет цикл с брейком намного выглядит паршивей вайла. тоже относится к continue, да полезная вещь в редких ситуациях, но она провоцирует людей писать трудноподдерживаемый код.

Я тебе про Фому, а ты мне про Ерему.
В любом случае, ничего нового ты не сказал. Я все это уже не один десяток раз слышал.
Ад пуст, все бесы здесь.
Re[15]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 10.10.23 06:17
Оценка:
Здравствуйте, Codealot, Вы писали:

SVZ>>Ну вот я не писал — не было нужды. Всё, что мне надо, уже написано.


C>Это говорит только о том, что ты не можешь лучше.


А ты можешь написать Фотошоп лучше, чем у Адоба?
В одиночку? Правда что-ли?
Я бы на это посмотрел!

SVZ>>А не надо соваться в "зачуханные шарашкины конторы"


C>Уже давно не, но в стародавние времена приходилось. Не всем всё достается на тарелочке.


Это намёк в мой адрес?
Так я тут тебе вааще не конкурент. Я даже не программист по диплому.
_____________________
С уважением,
Stanislav V. Zudin
Re[4]: жизнь не перестает удивлять
От: Pzz Россия https://github.com/alexpevzner
Дата: 10.10.23 07:20
Оценка:
Здравствуйте, smeeld, Вы писали:

Pzz>>Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.


S>Эх вы, сишные динозавры. Это вы не понимаете, в модных молодежных язычках такое знать не требуется


Я хорошо знаю Go. Некоторые особенности Go совершенно очевидны сишным динозаврам, но как их понимают люди из Питона, ума ни приложу.
Re[5]: жизнь не перестает удивлять
От: Dym On Россия  
Дата: 10.10.23 13:37
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это точно не базовые конструкции языка, так что не надо мутить воду.

Да ладно, это обсасывается почти везде, даже во многих учебниках.

Есть фишки покруче, например, метод Даффа
Счастье — это Glück!
Re[6]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 10.10.23 13:51
Оценка:
Здравствуйте, Dym On, Вы писали:

C>>Это точно не базовые конструкции языка, так что не надо мутить воду.

DO>Да ладно, это обсасывается почти везде, даже во многих учебниках.
DO>Есть фишки покруче, например, метод Даффа

+1
или как работает continue внутри switch
Re[4]: жизнь не перестает удивлять
От: syrompe  
Дата: 10.10.23 15:39
Оценка:
Pzz>>Сейчас неожиданно окажется, что полфорума не понимают эту запись, но стесняются сказать.

S>Эх вы, сишные динозавры. Это вы не понимаете, в модных молодежных язычках такое знать не требуется


Мне вот потребовалось недавно. Ибо в модном молодежном .Net int.Parse работает в 1000 раз медленнее чем приведенный код.
Re[2]: жизнь не перестает удивлять
От: B0FEE664  
Дата: 10.10.23 17:51
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Хе-хе, друг мой давнишний как-то жаловался.

SVZ>

SVZ>а = (c[0] — '0') *100 + (c[1] — '0')*10 + (c[2] — '0')


c, "надеюсь", входные данные?
И каждый день — без права на ошибку...
Re[17]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 10.10.23 18:01
Оценка:
Здравствуйте, Codealot, Вы писали:

SVZ>>А ты можешь написать Фотошоп лучше, чем у Адоба?

SVZ>>В одиночку? Правда что-ли?
SVZ>>Я бы на это посмотрел!

C>Что, кроме аж целого фотошопа других вариантов нет? Обычное доведение до абсурда.


Почему ты везде ищешь подвох?
Занимался фотографией, нужны были фотошоп и лайтрум.
Всё остальное доступно забесплатно или за маленькую денежку.

Приведи свой пример, что тебе потребовалось написать руками для себя для любимого.
Мне реально любопытно, что люди мастерят дома для себя. Чего такого можно выложить в качестве петпроекта.

C>Тоже мне проблема. Я был знаком с одним менеджером из Амазона, так он и вовсе оперный певец. Вполне буквально.


Мой научный руководитель по совместительству был регентом церковного хора.
_____________________
С уважением,
Stanislav V. Zudin
Re[3]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 10.10.23 18:06
Оценка:
Здравствуйте, B0FEE664, Вы писали:

SVZ>>Хе-хе, друг мой давнишний как-то жаловался.

SVZ>>

SVZ>>а = (c[0] — '0') *100 + (c[1] — '0')*10 + (c[2] — '0')


BFE>c, "надеюсь", входные данные?


Это, если я правильно понял, приходило из последовательного порта. На какой-то железке.
Видимо были ограничения, почему не использовали atoi.
_____________________
С уважением,
Stanislav V. Zudin
Re[18]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 10.10.23 18:20
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Мой научный руководитель по совместительству был регентом церковного хора.


эм... а регент разве не про управление гос-ом?
Re[19]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 10.10.23 18:56
Оценка:
Здравствуйте, night beast, Вы писали:

SVZ>>Мой научный руководитель по совместительству был регентом церковного хора.


NB>эм... а регент разве не про управление гос-ом?

Про управление — да, про гос-во — не обязательно
_____________________
С уважением,
Stanislav V. Zudin
Re[20]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 10.10.23 18:59
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

NB>>эм... а регент разве не про управление гос-ом?

SVZ>Про управление — да, про гос-во — не обязательно

вроде бы, если не про государство, то говорят ИО
Re[21]: жизнь не перестает удивлять
От: Stanislav V. Zudin Россия  
Дата: 10.10.23 19:20
Оценка:
Здравствуйте, night beast, Вы писали:

NB>>>эм... а регент разве не про управление гос-ом?

SVZ>>Про управление — да, про гос-во — не обязательно

NB>вроде бы, если не про государство, то говорят ИО


ИО = "исполняющий обязанности".
Регент = руководитель.
_____________________
С уважением,
Stanislav V. Zudin
Re[22]: жизнь не перестает удивлять
От: night beast СССР  
Дата: 10.10.23 19:24
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

NB>>вроде бы, если не про государство, то говорят ИО


SVZ>ИО = "исполняющий обязанности".

SVZ>Регент = руководитель.

я кажется понял. это из церковного

Ре́гент – (от лат. regens «правящий, правитель») — руководитель церковного хора.
...
В наше время регент управляет церковным хором, он же готовит певчих и подбирает необходимые книги для богослужения – проводит репетиции хора и отвечает за его организацию, составляет структуру исполняемых молитвословий на богослужении, приобретает и отвечает за сохранность соответствующих богослужебных книг и нот.

Re[5]: жизнь не перестает удивлять
От: Нomunculus Россия  
Дата: 12.10.23 10:24
Оценка:
Здравствуйте, Философ, Вы писали:

не тому ответил
Re[5]: жизнь не перестает удивлять
От: _typhoon  
Дата: 12.10.23 12:19
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>break, return, goto, throw знаю, а вот "цикл с выходом из середины" — какая-то непонятная хрень. Никогда не слышал.

Ф>Какой-то новый термин.
continue еще можно под это притянуть
Re[6]: жизнь не перестает удивлять
От: sergey2b ЮАР  
Дата: 12.10.23 12:41
Оценка:
еще есть
https://www.geeksforgeeks.org/c-setjump-and-longjump/amp/

И exit()
Re[3]: жизнь не перестает удивлять
От: mike_rs Россия  
Дата: 16.10.23 18:17
Оценка:
Здравствуйте, Codealot, Вы писали:

Н>>Break что ли?

C>Естественно. А чем еще это может быть?

goto
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 17.10.23 17:17
Оценка:
Здравствуйте, mike_rs, Вы писали:

_>goto


Никакой goto там не нужен.
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 17.10.23 17:18
Оценка:
Здравствуйте, Философ, Вы писали:

Ф>Никогда не слышал.


То что ты о чем-то не слышал говорит только о твоем уровне знаний.
Ад пуст, все бесы здесь.
Re[6]: жизнь не перестает удивлять
От: Философ Ад http://vk.com/id10256428
Дата: 17.10.23 17:50
Оценка:
Здравствуйте, Codealot, Вы писали:

C>То что ты о чем-то не слышал говорит только о твоем уровне знаний.


Я погуглил — действительно в учебниках встречается. Однако я когда-то тоже циклы учил, и в моих учебниках такого не было. Вероятно, авторы посчитали это лишним искуственным терменом и просто выкинули его. И я более чем 20 лет ни разу не слышал, чтобы кто-то так говорил — понятия цикла достаточно и для объяснения чего-либо и для написания всего чего угодно.
Запоминать и держать в голове лишние сущности не вижу смысла.
Всё сказанное выше — личное мнение, если не указано обратное.
Re[7]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>И exit()

panic() тогда уже тоже
Ну и чтоб два раза не вставать — ещё и NMI
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, Osaka, Вы писали:

SVZ>>и почему придуманная им инициализация char* c = {1,2,3} не работает

O>Минут 5 думал, что в данном контексте означает "работает".

Классика же!
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[3]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, night beast, Вы писали:

NB>так может и не нужно этого знать?

NB>как часто может потребоваться писать такое самому?

Чем чаще сталкиваешься с новомодными фреймворками тем чаще приходится.
Ибо про производительность аффтары оных похоже не слышали совсем.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это элементарщина, которую на собеседованиях уже давно не спрашивают.

И похоже зря — студни позабыли что простые вещи могут быть быстрыми
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[15]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Всё отменить, заменить одним универсальным решением!

Да! Шурупы! Молотком! Криво!

У меня такое ощущение что большинство новомодных фреймворков именно таким подходом и руководствуются
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[19]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, Codealot, Вы писали:

C>С неадекватами и лжецами не спорю.

Неужто ты с зеркалом перестал разговаривать?

C> До тебя медленно доходит?

А нет, не перестал...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[14]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, Stanislav V. Zudin, Вы писали:

SVZ>Ну вот я не писал — не было нужды. Всё, что мне надо, уже написано.

Хорошо тебе...

SVZ>Если уж говорить аллегориями, то предпочитаю унитаз промышленного изготовления, а не кустарного

Не ну если ты только кустарный код можешь производить то тогда да...
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[7]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 00:45
Оценка:
Здравствуйте, night beast, Вы писали:

NB>или как работает continue внутри switch

А никак. Он применяется с тому циклу, внутри которого switch
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[16]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 01:50
Оценка:
Здравствуйте, CreatorCray, Вы писали:

Да не только фреймворки. Гниль распространяется.
Ад пуст, все бесы здесь.
Re[7]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 02:38
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Это точно не базовые конструкции языка

CC>>Это как раз самые что ни на есть базовые.
C>Расскажи мне, в чем смысл писать индексацию как

Т.е. ты признаёшь что это базовое свойство языка?
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 02:48
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Т.е. ты признаёшь что это базовое свойство языка?


Извращения к числу базовых конструкций не относятся. Знать их новичкам точно не надо. А за использование надо бить палкой, чтобы лучше доходило.
Ну так на вопрос ты ответить в состоянии?
Ад пуст, все бесы здесь.
Re[9]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 24.10.23 04:00
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Извращения к числу базовых конструкций не относятся.

Что значит извращения?
Это легальное свойство языка. Особенно тернарный оператор.

C>Ну так на вопрос ты ответить в состоянии?

Перевод темы вопросом не считается.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[10]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 15:13
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Что значит извращения?

CC>Это легальное свойство языка. Особенно тернарный оператор.

Где ты видишь тернарный оператор в приведенной мной цитате? Хватит юлить. Отвечай на вопрос.
Ад пуст, все бесы здесь.
Re[2]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 24.10.23 15:13
Оценка:
Здравствуйте, oncer, Вы писали:

O>"цикл с выходом из середины" — лексика странная. Чел вполне мог не понять. Особенно, если чел читает книги на Инглише, а тут .... "цикл с выходом из середины" — я тож такую формулировку впервые слышу...

O>Может "прерывание цикла" было бы понятнее?

Как я уже сказал, чувак просто смотрел на код. Не надо высасывать из пальца.
Ад пуст, все бесы здесь.
Re[11]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 25.10.23 04:59
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Где ты видишь тернарный оператор в приведенной мной цитате?

Я обсуждаю всё ещё вот это:

C>Это точно не базовые конструкции языка


C> Хватит юлить. Отвечай на вопрос.

Ты не задал вопрос, ты попытался соскочить с темы. Но не вышло.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[2]: жизнь не перестает удивлять
От: cthsq  
Дата: 25.10.23 15:23
Оценка:
сто лет на квыт не заходил
но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
как будто был тут вчера
Re[3]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 25.10.23 20:58
Оценка:
Здравствуйте, cthsq, Вы писали:

C>сто лет на квыт не заходил

C>но меня порадовало когда увидел что тут всё те же люди всё так же из малюсенькой фразы раздувают километровое обсуждение)
Я было пропустил недельку и насрали столько что только недавно разгрёб
И то пришлось на все темы авторства Shmj сразу пометки "прочитано" и "не показывать больше" поставить
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[12]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 26.10.23 17:27
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Ты не задал вопрос, ты попытался соскочить с темы. Но не вышло.


Нет дружок, с темы пытаешься соскочить только ты.
Извращения не входят в число базовых знаний. Что тут может быть непонятно?
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 12:53
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Здравствуйте, Pzz, Вы писали:


Pzz>>Нет.


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


Предложу не стесняться, и написать сразу лямбду.
Re: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 28.10.23 13:03
Оценка:
Здравствуйте, Codealot, Вы писали:

C>Общался тут с одним чуваком по поводу ревью кода, и он не понимает, что такое цикл с выходом из середины. Вообще не знает, что это такое и зачем может быть нужно.


Тоже поплачусь.

Работая в одной безусловно крупной софтовой фирме очень сильно удивил на код-ревью оператором do-while
без фигурных скобок. Условно: "do *x != y; while(++x);".

А уж объяснить, что в языках C/C++ есть понятие временного значения (например, возвращаемого из функции)
у которого есть в свою очередь понятие срока жизни -- вообще трудно. Не говоря уж о том, что на это
временное значение могут существовать ссылки/указатели, у которых тоже срок жизни...
Re[4]: жизнь не перестает удивлять
От: Codealot Земля  
Дата: 05.11.23 17:58
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


На самом деле нет. Но фанатикам нюансы не интересны.
Ад пуст, все бесы здесь.
Re[5]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 19.11.23 12:37
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>Здравствуйте, fk0, Вы писали:


fk0>> Я отчасти с ним согласен. break -- по-сути есть замаскированный goto, нарушающий принципы структурного программирвоания.


K>А циклы сами по себе — это тоже по сути замаскированные goto/jmp.

K>Как с ними не нарушать принципов структурного программирования?

Нет. Есть принципиальная разница между циклом с goto и циклом с использованием операторов структурного программирования:
при использовании последних все объекты создаваемые в цикле, в каждом цикле вначале заново инициализируются, а в конце
цикла неявным образом уничтожаются. И вообще могут иметь разные адреса в каждом цикле. А с goto получается чёрти что.
Re[6]: жизнь не перестает удивлять
От: karbofos42 Россия  
Дата: 20.11.23 08:49
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Нет. Есть принципиальная разница между циклом с goto и циклом с использованием операторов структурного программирования:

fk0>при использовании последних все объекты создаваемые в цикле, в каждом цикле вначале заново инициализируются, а в конце
fk0>цикла неявным образом уничтожаются. И вообще могут иметь разные адреса в каждом цикле. А с goto получается чёрти что.

цикл на нижнем уровне — это просто условный переход jmp или как там уж это называется.
бесконечный цикл может быть представлен как безусловный переход goto.
И выполнение функции — это тоже переход на нужный адрес в памяти.
Всё это управление стеком, инициализацию переменных, очистку памяти,... добавляет компилятор.
Никто не мешает этому самому компилятору нормально обрабатывать и goto и уведомлять о существующих проблемах.
Собственно, в C# goto из цикла превращается в break.
А без дублирования return или break, как в структурном программировании предлагается сделать банальный поиск элемента в массиве?
int FindIndex(int[] arr, int value)
{
  for (int i = 0; i < arr.Length; ++i)
  {
    if (arr[i] == value)
      return i;
  }
  return -1;
}

даже если первый элемент подойдёт, продолжим пробегать всю коллекцию, чтобы было структурно и молодёжно?
int FindIndex(int[] arr, int value)
{
  int result = -1;
  for (int i = 0; i < arr.Length; ++i)
  {
    if (result == -1 && arr[i] == value)
      result = i;
  }
  return result;
}

А то ведь return внутри цикла может привести к тому, что разработчик что-то забудет удалить или сделать, должна быть одна точка выхода из функции.
Я сам как-то goto не использую и редко такое нужно, но вот думаю: а зачем я для выхода из вложенных циклов горожу флаги и леплю лишние проверки, когда можно просто goto написать и перейти в нужную точку.
Re[7]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 21.11.23 20:31
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>Здравствуйте, fk0, Вы писали:


fk0>> Нет. Есть принципиальная разница между циклом с goto и циклом с использованием операторов структурного программирования:

fk0>>при использовании последних все объекты создаваемые в цикле, в каждом цикле вначале заново инициализируются, а в конце
fk0>>цикла неявным образом уничтожаются. И вообще могут иметь разные адреса в каждом цикле. А с goto получается чёрти что.

K>цикл на нижнем уровне — это просто условный переход jmp или как там уж это называется.

K>бесконечный цикл может быть представлен как безусловный переход goto.

НЕТ, ещё раз: цикл в распространённых языках C/C++ уничтожает и создаёт заново все объекты
созданные в теле цикла. Это ПРИНЦИПИАЛЬНОЕ свойство цикла. Для C++ программистов оно означает,
что "for (auto& x : MakeTempObject())" не будет работать (вроде как будет пофикшено в C++23 для
этого частного случая), для C-программистов означает, что переменные объявленные в теле цикла
не обязаны сохранять свои значения (и адреса) в каждой новой итерации. Последнее легко заметно
в каком-нибудь интерпретаторе C, вроде Ch.

K>И выполнение функции — это тоже переход на нужный адрес в памяти.


Я знаю ассемблер. Но цикл и вызов функции -- это не только переход.
Переход лишь как средство реализации. И оно может оказаться совершенно другим.
Цикл может быть развёрнут, может быть tail call оптимизация, функция может быть
заинлайнена, да что угодно ещё...

K>Всё это управление стеком, инициализацию переменных, очистку памяти,... добавляет компилятор.

K>Никто не мешает этому самому компилятору нормально обрабатывать и goto и уведомлять о существующих проблемах.
K>Собственно, в C# goto из цикла превращается в break.

Но никто не мешает порождать код с UB и молча молчать. И получать неинициализированные
переменные например. При прыжке вперёд через инициализацию переменной (C++ запрещает)
или прыжке назад в середину тела цикла в котором декларировались переменные.

K>А без дублирования return или break, как в структурном программировании предлагается сделать банальный поиск элемента в массиве?


Любой код может быть написан через рекурсию...

K>
K>int FindIndex(int[] arr, int value)
K>{
K>  for (int i = 0; i < arr.Length; ++i)
K>  {
K>    if (arr[i] == value)
K>      return i;
K>  }
K>  return -1;
K>}
K>

K>даже если первый элемент подойдёт, продолжим пробегать всю коллекцию, чтобы было структурно и молодёжно?

Нет. Условие прерывания цикла может переехать в оператор for, например.


K>
K>int FindIndex(int[] arr, int value)
K>{
K>  int result = -1;
K>  for (int i = 0; i < arr.Length; ++i)
K>  {
K>    if (result == -1 && arr[i] == value)
K>      result = i;
K>  }
K>  return result;
K>}
K>

K>А то ведь return внутри цикла может привести к тому, что разработчик что-то забудет удалить или сделать, должна быть одна точка выхода из функции.

Вообще-то да. В голом C или паскале. В языках с RAII это не так критично.

K>Я сам как-то goto не использую и редко такое нужно, но вот думаю: а зачем я для выхода из вложенных циклов горожу флаги и леплю лишние проверки, когда можно просто goto написать и перейти в нужную точку.


И сразу вопрос, что делать компилятору с переменными созданными в цикле?
Деструктор для них же надо вызывать? И становится goto очень неочевидным оператором,
с очень неявным control flow...
Re[8]: жизнь не перестает удивлять
От: CreatorCray  
Дата: 21.11.23 21:13
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> НЕТ, ещё раз: цикл в распространённых языках C/C++ уничтожает и создаёт заново все объекты созданные в теле цикла.

В С всё на ручнике
Потом, тело цикла это то, что под for а не внутри.

fk0>Для C++ программистов оно означает, что "for (auto& x : MakeTempObject())" не будет работать

Это как раз работает даже в C++11, где range-for только появился.

Ибо range for это синтаксический сахар, который разворачивается в как минимум вот такое:
{
    auto&& __range = range-expression; <<< результат moves в __range который спокойно себе живёт вне for-loop, и переживает его
    for (auto __begin = begin-expr, __end = end-expr; __begin != __end; ++__begin)
    {
        range-declaration = *__begin;
        loop-statement
    }
}

Потом ещё больше вынесли наружу, но это не суть.

Проблемы будут с "for (auto& x : MakeTempObject().getObjects())"
Но совсем не потому что for.
... << RSDN@Home 1.3.110 alpha 5 rev. 62>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[8]: жизнь не перестает удивлять
От: karbofos42 Россия  
Дата: 21.11.23 21:21
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> НЕТ, ещё раз: цикл в распространённых языках C/C++ уничтожает и создаёт заново все объекты

fk0>созданные в теле цикла. Это ПРИНЦИПИАЛЬНОЕ свойство цикла. Для C++ программистов оно означает,
fk0>что "for (auto& x : MakeTempObject())" не будет работать (вроде как будет пофикшено в C++23 для
fk0>этого частного случая), для C-программистов означает, что переменные объявленные в теле цикла
fk0>не обязаны сохранять свои значения (и адреса) в каждой новой итерации.

Ну, вот код на C++:
for (int i = 0; i < 10; ++i)
{
  A *arr = new A();
}

цикл каждую итерацию будет удалять созданный объект класса A или всё же память утечёт и нет никакой гарантии про все объекты?

fk0> Я знаю ассемблер. Но цикл и вызов функции -- это не только переход.

fk0>Переход лишь как средство реализации. И оно может оказаться совершенно другим.
fk0>Цикл может быть развёрнут, может быть tail call оптимизация, функция может быть
fk0>заинлайнена, да что угодно ещё...

Но технически все эти функции и циклы преобразуются в банальные goto или что-то подобное, а вся эта инициализация переменных, очистка стека — это добавляет компилятор.

fk0> Но никто не мешает порождать код с UB и молча молчать. И получать неинициализированные

fk0>переменные например. При прыжке вперёд через инициализацию переменной (C++ запрещает)
fk0>или прыжке назад в середину тела цикла в котором декларировались переменные.

Вопрос к создателям языка и компиляторов к нему. Никто им не мешает обойтись без UB

fk0> Нет. Условие прерывания цикла может переехать в оператор for, например.


В простейшем случае в итоге получим некрасивую запись и лишнюю проверку в конце, где будем выяснять причины попадания в строку
(коллекция кончилась и ничего нужного не нашлось или же наткнулись на искомый элемент и нужно его вернуть).
На деле же условие выхода из цикла будет с предварительными расчётами и в for не влезет.
Можно конечно всякого нагородить, но не понятно зачем.
Там же и читабельность кода снизится и лишние операции добавятся.

fk0> И сразу вопрос, что делать компилятору с переменными созданными в цикле?

fk0>Деструктор для них же надо вызывать?

примерно то же самое, что компилятор делает при break

fk0>И становится goto очень неочевидным оператором,

fk0>с очень неявным control flow...

у исключений с try/catch не проще и потенциальных проблем от них не меньше, но народ как-то живёт.
Ну, сложно с goto — пусть дадут оператор для выхода из всех циклов.
Бывают ситуации типа:
int value = 0; // стандартное значение
for (int i = 0; i < 10; ++i)
{
  for (int j = i + 1; j < 11; ++j)
  {
    for (int k = j + 1; k < 12; ++k)
    {
      if (...)
        value = ...;  // меняем значение на расчётное
        break; // тут хочется выйти из всех 3-х циклов
    }
  }
}
// Дальше используем value вне зависимости от того какое значение (стандартное или расчётное)

break из одного цикла почему-то не является проблемой для создателей языков.
Как и return из любой строки.
Не понимаю что не так с break из пары вложенных циклов и чем это принципиально отличается.
Можно конечно всё это в единственный while переписать или ещё чего намудрить, но читаемость кода снизится,
а по факту будет выполняться примерно то же самое, что можно с goto написать и не терять в читаемости.
И в итоге на практике не понятно что выйдет надёжнее в поддержке:
странно написанный и непонятный код по всем правилам структурного программирования или лаконичный код с сомнительным goto.
Re[9]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 21.11.23 22:51
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, fk0, Вы писали:


fk0>> НЕТ, ещё раз: цикл в распространённых языках C/C++ уничтожает и создаёт заново все объекты созданные в теле цикла.

CC>В С всё на ручнике
CC>Потом, тело цикла это то, что под for а не внутри.

Всё да не всё. Формально "рантайм" освобождает память из под переменных скоупе тела цикла
и формально может назначить на следующей итерации другие адреса. Повторюсь, в каком-нибудь Ch
можно запросто напороться на то, что не работает, но строго соответствует букве стандарта.

Или второй операнд оператора for (где может быть декларация переменной) будет вычисляться каждый
раз в начале цикла и уничтожаться в конце цикла. Это же не просто так.

fk0>>Для C++ программистов оно означает, что "for (auto& x : MakeTempObject())" не будет работать

CC>Это как раз работает даже в C++11, где range-for только появился.

Да, я не прав. Не рабоатет MakeTempObject().getter(), но это другое.
Re[9]: жизнь не перестает удивлять
От: fk0 Россия https://fk0.name
Дата: 21.11.23 23:01
Оценка:
Здравствуйте, karbofos42, Вы писали:

K>Здравствуйте, fk0, Вы писали:


fk0>> НЕТ, ещё раз: цикл в распространённых языках C/C++ уничтожает и создаёт заново все объекты

fk0>>созданные в теле цикла. Это ПРИНЦИПИАЛЬНОЕ свойство цикла. Для C++ программистов оно означает,
fk0>>что "for (auto& x : MakeTempObject())" не будет работать (вроде как будет пофикшено в C++23 для
fk0>>этого частного случая), для C-программистов означает, что переменные объявленные в теле цикла
fk0>>не обязаны сохранять свои значения (и адреса) в каждой новой итерации.

K>Ну, вот код на C++:

K>
K>for (int i = 0; i < 10; ++i)
K>{
K>  A *arr = new A();
K>}
K>

K>цикл каждую итерацию будет удалять созданный объект класса A или всё же память утечёт и нет никакой гарантии про все объекты?

Причём здесь new? Если A() будет без new (на стеке) и написать деструктор, то будет видно, что он вызывается...
А по-указателю C++-компилятор сам ничего удалять не будет. Вот переменную указателя он "удалит". Но у ней деструктор
пустой.

K>у исключений с try/catch не проще и потенциальных проблем от них не меньше, но народ как-то живёт.

K>Ну, сложно с goto — пусть дадут оператор для выхода из всех циклов.
K>Бывают ситуации типа:

K>
K>int value = 0; // стандартное значение
K>for (int i = 0; i < 10; ++i)
K>{
K>  for (int j = i + 1; j < 11; ++j)
K>  {
K>    for (int k = j + 1; k < 12; ++k)
K>    {
K>      if (...)
K>        value = ...;  // меняем значение на расчётное
K>        break; // тут хочется выйти из всех 3-х циклов
K>    }
K>  }
K>}
K>// Дальше используем value вне зависимости от того какое значение (стандартное или расчётное)
K>


Оператора выхода из всех циклов потому и нет, что он порождает ошибки и непонятно
как его сделать. Вместо него может выступать goto, может выступать return, могут выступать
более сложные условия. В некоторых языках... (bash) такой оператор есть, но лучше б не было...
В некоторых других (tcl) нет и невозможен goto, и break делается... через исключение!

K>Не понимаю что не так с break из пары вложенных циклов и чем это принципиально отличается.


Из скольки именно циклов? А если циферку числа циклов впишут, а потом код поменяют?

K>Можно конечно всё это в единственный while переписать или ещё чего намудрить, но читаемость кода снизится,

K>а по факту будет выполняться примерно то же самое, что можно с goto написать и не терять в читаемости.

Вот полезные применения goto как раз:

1) обработка ошибок, вместо отсутствующего оператора defer: https://gustedt.gitlabpages.inria.fr/defer/
2) прерывание нескольких вложенных циклов;
3) возможно ещё какие-то экзотические случаи, которые сходу не припомнить.

Но ведь заставь дурака богу молиться -- лоб расшибёт.

K>И в итоге на практике не понятно что выйдет надёжнее в поддержке:

K>странно написанный и непонятный код по всем правилам структурного программирования или лаконичный код с сомнительным goto.

См выше.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.