Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
НИКТО НЕ ЗНАЕТ ОТВЕТ НА ЭТОТ ВОПРОС. --- Давненько меня интересует вопрос. Но чтобы его задать нужно некое вступление. Знач, таксс: Если ООП это метод, подход, способ, парадигма, философия написания программ и процедурное программирование тоже способ, метод, подход к написанию программ, то...: - при изучении, вникании, понимании ООП проясняются такие вещи: - класс - это то что записано в текстовом редакторе - методы класса - возможности класса - объект - некая херня, которая "оживает и живёт" во время выполнения программы. Объект создается на основании (на основе) класса. То что создается называется экземпляр класса (или объект?). (ВНИМАНИЕ, ВАЖНЫЙ МОМЕНТ!) Этот объект имеет методы которые располагаются в памяти компутера. - Если создается клон, копия, еще один экземпляр класса, то его методы ссылаются на методы, которые для данного класса являются общими. Этот новый экземпляр класса, объект может иметь дополнительные методы и свойства, или не иметь тех методов и свойств, которые изначально записаны в определении класса. Это мое, скорей всего неправильное, представление об ООП, но не в этом суть. Вопрос вот в чем: Если для программы нет никакой разницы каким хандибубером ее написали, то КАК? можно увязать выполнение программы написанной в процедурном стиле с выполнением программы, написанной в стиле ООП? Какие классы, методы, объекты в процедурщине? Как, с точки зрения самой исполняемой программы, она будет выполняться? --- Модератор: Ссылку удалил, никакой дополнительной информации там нет, похоже на раскрутку сайта ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:42 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Какой-то полный бред После сочитание слов "класс - это то что записано в текстовом редакторе", мозг вскипает, а руки отказываются нажимать на клавиатуру и кормить тролля Превозмогая неуверенность в руках, все же постараюсь ответить: Какие классы, методы, объекты в процедурщине Исходя из Вашего подхода, в процедурщине все тоже самое, что и в ООП Файлы написанные в текстовом редакторе; буковки, запятые, прочие знаки пряпинания, хренобулины и хандибуберы ))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:55 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
и да, на удивление, все это в процедурщине, так же как в ООП, так же "располагаются в памяти компутера" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:57 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Для взаимодействия между программами делают API . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 19:58 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Leonid KudryavtsevКакой-то полный бред После сочитание слов "класс - это то что записано в текстовом редакторе", мозг вскипает, а руки отказываются нажимать на клавиатуру и кормить тролля Превозмогая неуверенность в руках, все же постараюсь ответить: Какие классы, методы, объекты в процедурщине Исходя из Вашего подхода, в процедурщине все тоже самое, что и в ООП Файлы написанные в текстовом редакторе; буковки, запятые, прочие знаки пряпинания, хренобулины и хандибуберы ))) Я не троль. На сколько я понимаю то в исполняющейся программе понятия класс - нет. Есть объект. Я же написал КАК можно объяснить выполнение программы НАПИСАННОЙ В СТИЛЕ ООП И В ПРОЦЕДУРНОМ СТИЛЕ (с точки зрение самой программы, кода) ВО ВРЕМЯ ЕЕ ВЫПОЛНЕНИЯ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:33 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Dima TДля взаимодействия между программами делают API . Вы не поняли вопрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:35 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinDima TДля взаимодействия между программами делают API . Вы не поняли вопрос? Похоже что нет. Поподробнее объясни суть вопроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:46 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
компилятор всё перегонит в обычные функции ООП только для людей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:50 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskin, Поверим, что не тролль. НИКАК. В процедурном стиле можно А. Написать подпрограмму, которая обрабатывает структуру - получим инкапсуляцию. Б. Эту же подпрограмму вызывать из другой подпрограммы - получим наследование. В. Передавать туда же адреса callback-функций - получим полиморфизм. Разница будет лишь в размере текста в редакторе и читаемости оного. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 20:52 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78компилятор всё перегонит в обычные функции ООП только для людей вот и я так подумываю, и скорее всего объяснения про то как исполняется программа написанная на ООП - тоже строго только для людей. Ведь машинный код будет (должен быть!) идентичен для одной и той же программы написанной в ооп и в процед стиле. Значит ли это что все пояснения про ООП об объектах, методах и пр. - не правда? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:02 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский Борисaliskin, Поверим, что не тролль. НИКАК. В процедурном стиле можно А. Написать подпрограмму, которая обрабатывает структуру - получим инкапсуляцию. Б. Эту же подпрограмму вызывать из другой подпрограммы - получим наследование. В. Передавать туда же адреса callback-функций - получим полиморфизм. Разница будет лишь в размере текста в редакторе и читаемости оного. А как же объяснения в вузах, книгах? Например в ооп создается объект Калькулятор (имеет один метод - сложить два числа, и вернуть результат). В процедурном стиле НАВЕРНОЕ это будет функция которая складывает два числа и возвращает результат(?) Если с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов? Я не пойму этого. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:14 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskintip78компилятор всё перегонит в обычные функции ООП только для людей Значит ли это что все пояснения про ООП об объектах, методах и пр. - не правда? то есть эти обьяснения тоже только для людей.(?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:18 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinЕсли с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов? Значит будет несколько функций ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:26 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinА как же объяснения в вузах, книгах? Что "как же"? ООП и Flat - это разные концепции архитектуры исходного кода, а не исполнения. Калькулятор, как и любое другое простенькое приложение, все равно как писать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 21:32 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
ИзопропилaliskinЕсли с одним объектом и одним методом более/менее понятно , то что и как ЕСЛИ у объекта Калькулятор будет множество методов? Значит будет несколько функций Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине? В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"... А если прога написана не ООП’ом? Позже я приведу конкретный пример. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 22:08 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinА если прога написана не ООП’ом? Тогда память выделяется malloc, например ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 22:18 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinИзопропилпропущено... Значит будет несколько функций Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине? В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"... А если прога написана не ООП’ом? Позже я приведу конкретный пример. объет = переменная метод = ф-я для них также выделяется память как и для всего в компе даже сраной клавиатуре память подавай ^^ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 22:47 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinИзопропилпропущено... Значит будет несколько функций Как в таком случае оюяснить (увязать, связать) создание объекта в ооп и отсуствин оного (его) в процедурщине? В вузах и книгах рассказывают: "при создании объекта в памяти выделяется место для данных объкта и для его методов"... А если прога написана не ООП’ом? Позже я приведу конкретный пример. Когда Иоганна Себастиана Баха спросили как он так прекрасно играет - он ответил что всё очень просто. Надо всего-лишь своевременно нажимать соответсвтующие клавиши. К чему это я. ООП - это метафора. Любая "прога" в конечном счете превращается в бинарный код который манипулирует с регистрами процессора, I/O портами и памятью. ООП не нужно процессору. Оно нужно человеку чтобы притянуть в код с десяток абстракций. На ООП - спекулируют. Каждый ЯП имеет свою собственную реализацию ООП. ООП часто ограничивает разработчика. Вместо решения бизнес задачи разработчик играется ерундой перекладывая инкапсуляции из одного места в другое или комбинируя классы и экземпляры в группы (шаблоны проектирования). Обсуждение ООП часто разжигает религиозные войны между разработчиками. ООП имеет кривую и до сих пор неопределённую терминологию (extend/inherit/implement/is_a, class/type/object/trait). Учебные примеры использования ООП (собака наследует волка) представляют собой фейерический бред, который не выдержит критики со стороны зоолога или биолога. Некоторые опции безопасности ООП (protected) оказались не нужны либо применяются не так как хотели создатели. Некоторые тестировочные фреймворки хакают private/protected чтобы провести тестовые сценарии. Некоторые парадигмы инкапсуляции (EJB) являют собой нагромождение ненужного синтаксиса от которого сегодня стонут и плачут но не могут ничего поделать. ООП не используется при разработке операционных систем. Единственная (BeOS) умерла так и не пожив. ООП содержит парадоксы наследования (ромбовидное). Попытка работать с БД с использованием ООП породила целый ряд монструозных фреймворков которые сегодня являются "визитной карточкой" энтерпрайза (если вы не знаете Хибернейт то вы скорее всего не пройдете собес). Существуют альтернативные парадигмы где ООП вообще не имеет никакого значения но значимо понятие функции и реентерабельности и еще целой кучи плюшек типа частичной вычислимости. Отцы-основатели алгоритмических теорий (Никлаус Вирт, Дональд Кнут) недолюбливают ООП в современном виде. Большинство литературы по теории алгоритмов написано без ООП на процедурных языках. Господин Кнут вообще создал свой ассемблер. И последнее мнение - моё собственное никем не подтверждённое. Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. Многие тезисы ООП мы принимаем на веру как есть безо всякого доказательства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 22:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. Могу собственным опытом поделиться. ООП не ускоряет процесс разработки, скорее наоборот. НО: он сильно упрощает сопровождение и модификацию кода. И есть задачи, где без него совсем тяжело. Недавно получил в наследство коды для прошивки Ардуинок, написанные без ООП - это АДъ. Притом, что сам код не так уж и плохо был написан, но разобраться в бесконечных ветвлениях под разные платы и состав компонентов прошивки стоило громадных усилий. Потом плюнул и все переписал под ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 23:29 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinНа сколько я понимаю то в исполняющейся программе понятия класс - нет. Есть объект. В исполняющейся программе нет классов и объектов. Там обычные машинные команды, гоняющие значения по регистрам и оперативке. Классы превращаются в команды путем использования компилятора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 23:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
да ладно вам, ни ооп ни процедурного в компьютере не существует. это все видимость и фикция. в компьютере электроны по проводам бегают и п-н-п переходы переключают. ни про какие процедурные и ооп электроны ничего не знают. когда их бенджамин франклин изобретал, он ни то что про ооп не думал, а даже и китайского смартфона у него не было. а как электроны изобрел, тут же стал у короля английского айфон требовать. а когда ему не дали - устроил американский майдан и полный кавардак. думаю, все примерно так и происходило. имху. п.с. одного не понимаю, нафига нормальный китайский чай было в бостоне в море выкидывать. ((( майдан майданом, но нафига хорошие продукты переводить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.04.2018, 23:41 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Я знаю кто/что знает ответ. Компиляторы и линковщики знают как и что. Потому что это они сжирают написанные символы и переваривают их в машинные инструкции. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 02:41 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonИ последнее мнение - моё собственное никем не подтверждённое. Не существует никаких математически обоснованных утвержденний о том что ООП ускоряет процесс разработки или уменьшает количество ошибок. Нет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. Многие тезисы ООП мы принимаем на веру как есть безо всякого доказательства . и при всем этом абсолютно все (или большинство) при упоминании про ООП, смотрят на задающего вопрос как на древнего динозавра, типа: "чё-чё, ты все никак не можешь осилить ооп?, та кто сейчас вообще прогнрамит не на ооп?" Все-таки читабельность кода написанного на оопе :) высокая. Потому проще понять о чем этот код, отсюда следует вывод - сопровождение кода становится легче. И именно для этого придумали ООП(?) --- "Нет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. Многие тезисы ООП мы принимаем на веру как есть безо всякого доказательства ." - а мне интересно! Но, вынужден повториться, более/менее понятный ответ знают компиляторы и линковщики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 02:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
и при всем этом абсолютно все (или большинство) при упоминании о ПРОЦЕДУРНОМ стиле программир ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 02:59 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
жаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 03:03 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
там где не нужно наследование можно вполне написать на процедурках и разложить по разным файлам, никто разницы не заметит авторООП не используется при разработке операционных систем. Единственная (BeOS) умерла так и не пожив. вот кстати, в nginx-ах всяких есть ООП, и много где ещё авторООП в БДлол ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 03:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 03:22 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Давно написан - HHVM ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 06:39 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinНет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. с точностью до моего склероза - гном и кде ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 07:08 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе. Открою тайну: С не ООП, а процедурный. ООП это С++. Как уже написали ООП синтаксический сахар для удобства написания кода и не более того. Как ООП превращается в процедурный: допустим у нас есть класс Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. В процедурном стиле свойства превращаются в структуру, а методы в функции с доп.параметром указатель на структуру Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Именно так компилятор избавляется от ООП ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 07:27 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Потому что это скриптовое дерьмо. Т.е. все равно придется линковать весь интерпретатор, для того, чтобы оно как-то работало. Ну или выносить интерпретатор в библиотеки, как например Java или C#. И не факт, что после "компиляции" бинарник будет работать быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 08:42 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskinжаль я не зная Си. Так бы заколбасил бы "2+2" в процедруном стиле и на опе. Всё очень просто. У тебя не НЕ хватает знаний ООП. У тебя не хватает ПРОСТО знаний. Когда я изучал ООП (После Ассемблера и Бейсика) у меня не возникало вопросов. Всё зашло естественным образом. По поводу 2+2 это сарказм? Надеюсь ты понимаешь что никто овер-проектированием не занимается и 2+2 в ООП складывают так-же как и в процедурном. Может ты хотел сложить два вектора или две матрицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:05 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulНу или выносить интерпретатор в библиотеки, как например Java или C#. Чё? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:05 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Dima TИменно так компилятор избавляется от ООП Семантически, имеет смысл переименовать первый аргумент в this. Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:09 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tchingizaliskinНет также сведений о сравнении двух одинаковых или похожих проектов разработанных с ООП или без. с точностью до моего склероза - гном и кде Не думаю что их можно сравнивать. Давайте найдем диаграммы стеков их используемых технологий и посмотрим. Если будет слишком большая разница в слое API (GTK+) то мы не сможем ставить знак равенства или нам придётся как-то дополнительно доказывать что изначально условия были одинаковые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 09:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Зря вы полезли в абстракции. ТС просто не знает, как работает компилятор =) Хотя догадывается в нужную сторону. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 10:57 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
schi +++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 11:19 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonСемантически, имеет смысл переименовать первый аргумент в this. А, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 14:23 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovА, учитывая уже существующий синтаксис, его тип должен быть указателем. Именно так мы и приходим к коду Код: plaintext 1. Учитывая существующий синтаксис возникает вопрос: а зачем вообще писать this->x, когда можно просто x. Это же вам не джава какая-то ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 16:12 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Изопропилtip78кстати, есть другой важный вопрос - почему не напишут тулзу к тому же ПХП, которая компильнёт код в бинарник и его потом можно тупо отдавать веб-серверу? так он это делает на каждом запросе, а так бы 1 раз и всё. Давно написан - HHVM хм авторAs a process virtual machine that provides the execution environment, HHVM has the ability to use live type information to produce more efficient native code, leading to a higher web server throughput and lower latency. In Q4 2012, the execution of facebook.com's source code on HHVM achieved performance parity with HPHPc,[8] and in December 2013 HPHPc was even surpassed by around 15%. это в 2013 а в PHP7 какие результаты, интересно. Он типа на 40% быстрее PHP5 получился ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 16:24 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
aliskin, Знаете такой анекдот... Воскресили коммунисты ВИЛ. На следующее утро ищут - нигде нет. На столе записка - "Жду в разливе. Начинаем всё сначала." Возвращаясь к баранам... Рекомендую прочитать альма-матер по ООА и ООП. (к слову: "П" - это НЕ программирование) Гради Буч "Объектно-Ориентированный Анализ и Проектирование" с примерами приложений на C++ Первые главы, ОБЯЗАТЕЛЬНО! прочитать и попытаться ПРИМЕНИТЬ! к своей простой задаче. Отвечая на Ваш вопрос: ОО подход - это МЕТОДИКА ПЕРЕХОДА ОТ БИЗНЕС МОДЕЛИ К КОДУ. - других методик тупо нет (умные словосочетания не объясняют стэп-бай-стэп как в ОО сам переход от "ХАЧУ" к "ТО ЧТО НУЖНО!") - при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу. удачи вам (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2018, 22:36 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
kolobok0- при использовании ОО один из профитов = СТАТИЧНОСТЬ кода. Т.е. меньше всего переделок. Если это не так - то разработчику надо читать теорию - т.е. указанную книгу. дам ещё раз ссылку: https://habrahabr.ru/company/hexlet/blog/303160/]как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA «The Power of 10: Rules for Developing Safety-Critical Code»В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего станда Вот перевод этого списка. 1. Нужно сильно ограничивать ветвления и условия. Не использовать goto, setjmp или longjmp, не использовать прямую или косвенную рекурсию. 2. У всех циклов должен быть предел. Проверяющая программа должна иметь возможность легко доказать, что определенное количество итераций не может быть превышено. Если предел невозможно доказать статически, то правило считается нарушенным. 3. Не использовать динамическое распределение памяти после инициализации. 4. Любая функция должна уместиться на одном стандартном листе бумаги, одно выражение на строку и одна строка на определение. Обычно это означает, что функция не должна быть длиннее 60 строк. 5. Плотность assert-ов в коде должна быть не менее двух assert-ов на каждую функцию (!!! ТУТ ОШИБКА ПЕРЕВОДА БЫЛА: не более 2х assert-ов). Assert-ы используются для проверки аномальных условий, которые не могут произойти при реальном запуске. Assert-ы не должны содержать сайд-эффектов, и по формату должны быть Boolean-тестами. Когда assert падает, должно запуститься специальное действие по восстановлению, например, возврат условия падения обратно в вызывающую функцию. Если проверяющая программа доказывает, что assert никогда не фейлится или никогда не удовлетворяется, то правило считается нарушенным. (Нельзя обойти это правило с помощью бессмысленных “assert(true)”). 6. Объекты с данными должны быть задекларированы на самом низком (из возможных) уровне области видимости. 7. Возвращаемое значение не-void функции должно проверяться вызывающей функцией. Валидность параметров должна проверяться внутри каждой функции. 8. Препроцессор можно использовать только для включения header-файлов и простых макро-определений. Token pasting, вариативные функции и рекурсивные макро вызовы запрещены. Использование условных директив компиляции нежелательно, но иногда неизбежно. Это означает, что только в редких случаях уместно использовать больше чем одно или два условия в директивах компиляции, даже в больших проектах. 9. Использование указателей должно быть ограничено. Допустимо не больше одного уровня разыменования. Операторы разыменования не должны быть скрыты в макро определениях или внутри typedef. Указатели на функции запрещены. 10.Весь код должен компилироваться при всех включенных warning'ах, на самых дотошных настройках компилятора с самого первого дня разработки. Весь код должен компилироваться с такими настройками без единого warning'а. Весь код должен проверяться каждый день (как минимум раз в день, но желательно чаще), с использованием лучшего из доступных на текущий день статического анализатора кода, и должен проходить анализ без единого warning'а. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 01:59 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
tip78как сопровождать 10 миллионов строк кода и не сойти с ума - 10 правил от NASA Код: plaintext 1. Правила хорошие. Годные. Единственное. Последнее 10 правило КМК для современного компиллятора (а тем более статического анализатора) практически невыполнимо. Если вы подключаете SonarQube к примеру то даже в очень хорошем коде может выдавать "параноидальные" советы. Всем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции. Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями "на самых дотошных настройках" как описано в статье. И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 09:16 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton...И прошу отписаться... подтверждаю, что максимальный warning, отсутствие ругани в логах и использование этого подхода ВСЕГДА - это хорошая практика. Проекты разные(разные языки, компиляторы, оси) от единиц до тысяч классов (читай файлов). правда не понял каким боком ПРАВИЛА КОДИРОВАНИЯ(НЕ!!! отвечают на вопрос как перейти от мысли к коду) относятся к МЕТОДИКЕ(превращает бизнес слова в код) анализа и проектирования - хз... лично для меня - это принципиально разные вещи, хоть и связанные... удачи усем (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton... ЯП и размер проекта (сколько тысяч строк) и сколько... ээээээээээээээ если в цифрах. то мне кажется как то так: что вспомнил, за последние года... азм (51, avr, stm32) / 15-20 файлов строк по 200-500 где то / 0 warnings / года 2004-2014 где то c (avr, stm32) / 15-20 файлов строк по 100-200 где то / 0 warnings / года 2006-2015 где то c++ (ms) / 8-10 файлов строк по 300-400 где то / 0 warnings / года 2015-2016 qt, c++ (ms) / 20-30 файлов строк по 400-600 где то / десятки warnings (из за кути там лезут) / 2015-2016 java (android) / 5-10 файлов строк по 100-200 кажется / 0 warnings / года 2013-2015 где то как то так... всё по памяти = плюс-минус трамвайная остановка. это чиссо свои проекты. нету явного отключения warnings. уровень - на полную катушку. и? (круглый) ЗЫ О блин... забыл ышо парочку проектов по си плас плас, парочку по вэбовским делам типа пых-пыха, js и прочая фигня... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 11:45 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonПравила хорошие. Годные. А мне кажется, что как минимум половина из них идиотские. С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева? Или откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска". maytonИ прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. Delphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал). Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 12:31 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский Борис, По поводу рекурсии. Кажется недавно здесь в sql. Ru Уже обсудили этот документ и решили что это NASA, аэрокосмос и как следствие повышенные Требования к real-time. Вобщем нишевый документ но в своем сегменте годный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 13:06 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mayton, сомневаюсь даже насчет сегмента. Помнится, именно у NASA один ракетоноситель грохнулся именно из-за таких "разумных ограничений" (softwarer подробно описывал). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 13:27 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисА мне кажется, что как минимум половина из них идиотские. С какой стати нужно избегать рекурсии, к примеру, при обходе узлов дерева? Переполнение стека, не? :-) Соколинский БорисИли откуда в универсальной подпрограмме должно возникнуть ограничение на количество итераций? Пару раз получал сбой работы оттого, что мои коллеги считали это правило разумным с т.з. "реального запуска". Бесконечный цикл, не? :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:02 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, 1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать. 2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисDelphi, проект с со всеми плагинами порядка 2 млн. (может и больше, не считал). Сразу отключаю предупреждения типа "unsafe typecast", за остальными слежу и не допускаю. Вплоть до того, что вставляю бессмысленные с т.з. кода конструкции чтобы компилятор не нервничал. Аналогично. Хинты и предупреждения при ночной сборке - это предмет для разбирательства с программистом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 14:35 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
maytonВсем участникам топика - посмотрите на свои собственные проекты. В части логов компилляции. Действительно ли у вас компилляция всегда проходит без WARNINGS в включенными опциями "на самых дотошных настройках" как описано в статье. И прошу отписаться. Интересует ЯП и размер проекта (сколько тысяч строк) и сколько WARNINGS вы получаете. ну я не C, а ПХП (начинал вообще с bash, потом perl 2-3 года) (кучу мелких проектов пропустим, парсеров всяких там, серверных скриптов, доргенов итд) начал с простенькой CRM (5000 строк) для малого бизнеса на perl ещё был игровой хостинг на нём же (примерно тот же объём) а потом уже крутая ERP-система с нуля (на собственном фреймворке). Там в итоге неск. сотен тысяч строк получилось и много файлов. Венец, на сегодня, это собственный магазин (заканчиваю на данный момент). Помимо самого магазина там также пишется и ERP, но уже со складом и прочими фишками - самый крупный проект на сегодняшний день (но далее есть задумки на ещё крупнее) Ну а ещё я администрирую сервера с 2008 года. Сразу отвечу на вопрос - почему не нанимаю команду писать всё это... Ну потому что ни одна команда не напишет это правильно. В магазине, например, нужно учитывать кучу маркетинговых фишек, которые ни один программист просто не знает. А ещё их всех надо отучать от Laravel... Да и команда там, на самом деле, не нужна вовсе. Вот эти все раздутые IT-отделы по 200-300 программеров - я их вообще не понимаю. Нет там столько труда. Когда код нормальный (вот примерно какой мы обсуждаем), то вообще изи. Да и просто интересно программировать ;) А делегировать можно, например, SMM. Варнинги конечно по нулям. В вебе варнинги сразу фиксятся. Причём система шлёт на мыло найденную ошибку immediately. Из правил вынес, что функции это клёво + про варнинги, а остальное там про память в основном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.04.2018, 18:12 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский Борисmad_nazgul, 1. Чтобы при конечной рекурсии переполнился стек на современной технике нужно ну очень сильно постараться. В принципе не исключено, но для таких случаев нужно нормально правило сформулировать. А что стараться. В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-) Тут иногда кучи не хватает, не говоря уже о стеке. Соколинский Борис2. Цикл циклу рознь. То, что исполняемому фрагменту может показаться бесконечным, с т.з. вызывающего может быть нормальным и наоборот. Всегда можно задать извне максимальное число итераций, а не заниматься самодеятельностью при неполной информации. См. законы Мерфи. Иначе Если цикл может быть бесконечным, он будет бесконечным. А потом думай, какого фига программа зависает. :-) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul, А что стараться. В легкую. Практически любая NP-полная задача выест весь стек, еще добавки попросит. :-) Тут иногда кучи не хватает, не говоря уже о стеке. [/quote] Я с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим. Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. Соколинский БорисЕсли цикл может быть бесконечным, он будет бесконечным. Уже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией. Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:41 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. с рекурсией - это от бедности ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 10:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
ИзопропилСоколинский БорисСкажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. с рекурсией - это от бедности скорее от лени ))) "Но не все так однозначно" ( C ) дочь офицера Скажем делал поиск по графу (все существующие в мире авиамаршруты) на Java. Сначала хотел без рекурсии, но с рекурсией на _порядки_ быстрее. Т.к. вместо коллекций для хранения данных, используется аппаратный стек. В результате - получившийся код работал очень быстро, требовал мало памяти (3 атомик параметра в рекурсивной ф-ции) и практически не использовал heap (объект создавался фактически только для возврата результате) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 11:17 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Чуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить. А вы до сих пор распинаетесь )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 14:59 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyЧуваки, топик-стартер исчез, как только модер удалил ссылку, которую он этим топиком пытался пиарить. А вы до сих пор распинаетесь )) Даже интересно стало, что он мог тут пытаться пиарить - курсы войтивойти для умственно отсталых, рен тв, а может "ойти жто видите как сложно, а в онлайн-лохотроне Н вы поднимите бабла без мозга"? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.04.2018, 17:13 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Anatoly Moskovsky, тссс.. на священных войнах отрезвляющим речам места нет! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 00:06 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Полагаю топик можно закрыть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 09:01 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисЯ с трудом представляю, зачем в NP-полной задаче нужна рекурсия. Но предположим. Тогда правило должно формулироваться как "избегайте рекурсии если предполагаемое число итераций превышает N", а не "избегайте рекурсий всегда". Скажем, парсинг арифметических выражений глупо делать без рекурсии, потраченное время не на что только ради дурацкой бумажки. Если бы мы жили в идеальном мире, то да. А так проще не использовать рекурсию по умолчанию. Тем более вангование на тему "предполагаемое число итераций" дело рискованное. Соколинский БорисУже вроде написал как нужно - для циклов с неопределенным числом итераций ограничения должны задаваться извне. А на что они устанавливаются - сходимость, итерации или время определяется "вызыватором", а не собственно реализацией. Так обычно и делается, к примеру для упомянутых NP задач, решаемых эволюционными алгоритмами. Если есть ограничения на количество итераций, то это то что было предложено. Т.е. мы можем доказать, что количество циклов будет конечно. В противном случае внутр цикла вы никак не доберетесь. Типа такого Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 12:03 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgul Код: plaintext 1. 2. 3. 4. чё-та сложна.. во: Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:09 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulЕсли бы мы жили в идеальном мире, то да. А так проще не использовать рекурсию по умолчанию. Проще исключительно начальству, которая плохо себе представляет внутреннюю кухню. И по простоте душевной считает что сложные задачи можно решить простыми способами. mad_nazgulТем более вангование на тему "предполагаемое число итераций" дело рискованное. Отнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии. mad_nazgulВ противном случае внутр цикла вы никак не доберетесь. В противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 13:20 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Соколинский БорисПроще исключительно начальству, которая плохо себе представляет внутреннюю кухню. И по простоте душевной считает что сложные задачи можно решить простыми способами. Проще программистам, которые будут потом поддерживать проект. Т.к. одной проблемой/контекстом меньше, которые нужно держать в голове. Соколинский БорисОтнюдь, в большинстве случаев это можно предварительно оценить. Если нельзя, то не делать рекурсии. На текущий момент времени. Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку. Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. Еще одно лишнее усложнение, ради чего?! Зачем нужен бесконечный цикл? Или можно все таки сделать выход из цикла по определенным условиям, которые будут гарантированно срабатывать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 14:56 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
mad_nazgulПроще программистам, которые будут потом поддерживать проект. Совсем не проще. Код без рекурсии будет содержать намного больше строк и промежуточных данных. mad_nazgulНа текущий момент времени. Но при изменении требований/условий/окружения эти оценки можно выкинуть на помойку. Не надо ничего выкидывать. Оценку нужно делать по входным данным а не "разумным" предположением. Соколинский БорисВ противном случае из цикла вызывается callback, который возвращает флаг прерывания. А по каким признакам пусть сам решает. mad_nazgulИли можно все таки сделать выход из цикла по определенным условиям, которые будут гарантированно срабатывать? Если эти условия сработают до того, как будет найдено решение, с тем же успехом можно в цикл вообще не входить. На примере: решаем мы NP задачу, допустим "коммивояжера". Как определить "разумное" итераций не зная ни требуемой точности, ни допустимого времени? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 15:51 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
Хвостовую будем рассматривать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 17:08 |
|
||
|
ООП vs процедурное - Никто не знает ответ на этот вопрос
|
|||
|---|---|---|---|
|
#18+
В методичке сказано - рекурсию не использовать. Мало ли что - может компилятор не умеет её оптимизировать. P.S. Это был сарказм, если кто-то не догадался. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.04.2018, 17:16 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340130]: |
0ms |
get settings: |
8ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
254ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
101ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 407ms |

| 0 / 0 |
