Введение в программирование
Переменные, декларативное и императивное программирование
Vyacheslav Makarov
Возникли проблемы с тестом. Думаю, не я один тут застрял. На моё усмотрение к императивному тут явно относится только рекурсия и изменение состояния. Но какие варианты не нажимал, всё неправильно. Могли бы вы разъяснить как отличить императивное от декларативного в данной ситуации? Извиняюсь за тупой вопрос, если что))
Выберите концепции, имеющие прямое отношение только к императивному программированию (нужно выбрать все правильные ответы)
- вызов функции
- рекурсия
- константа 4.цикл while
- переменные и изменение состояния
R. D.
Вы правы про изменение состояния. Но почему рекурсия? У этого вопроса два правильных ответа, и второй ответ связан с первым — с изменением состояния. В каком из пунктов происходит изменения состояния?
Vyacheslav Makarov
Спасибо за пояснение.
Vyacheslav Makarov
Суть в том, что декларативный и императивный подходы отличаются в способе достижения цели. Для императивного подхода необходимо задать четкие указания, как выполнить ту или иную задачу. К примеру: "чтобы приготовить пирог, мне нужно купить продукты". Декларативный: "приготовь пирог". Т.е. в декларативном подходе мы не опираемся на инструкции необходимые для реализации задачи, нам просто нужно её выполнить, не задумываясь о её деталях. Для примера (очень хорошего) можешь ознакомиться с элементами html и поймешь разницу. Сам долго разбирался, так как при декларативном подходе зачастую можно встретить нотку императивного и тут уже нужно мозговать:) Та же рекурсия имеет описание что ей необходимо сделать (как бы императивность есть), но в то же время это описание уже является желаемым результатом, чего не скажешь о сортировке, в которой много инструкций по достижению результата.
Дмитрий Храпонов
На моё усмотрение к императивному тут явно относится только рекурсия и изменение состояния
Попробуйте ещё раз вернуться в теорию где рассматривается пример с факториалом. Я напомню, что рекурсивная функция – декларативна. А что используется в итеративной функции факториала? Ответив на этот вопрос вы скорее всего пройдёте этот тест. Пишите, если будут вопросы.
Дмитрий Храпонов
Рекусрия это отложенные вычисления, а не изменения переменных. Переменные применяются непосредственно при вызове функции, дальше они не меняются, а происходит предсказуемая обработка данных без повторения частей программы и использования циклов. Советую вам почитать ту же википедию на эту тему, ну либо просто двигаться дальше по курсам профессии, где будет много задач требующих реализацию рекурсивных функций.
Osm
Я тоже не понял вопроса )
Vyacheslav Makarov
То есть, лучше задаваться вопросом "какие изменения происходят?", а не "как"? И почему в рекурсии не происходит никаких изменений, если мы в ней меняем значение переменной? Или о каком состоянии идет речь?
Alexander
не могу пройти этот тест. теорию читал
Алексей Бузуленков
вопрос в задании сформулирован немного непонятно. только почитав тут понял что спрашивают
user-9f80592d38936c51
тоже тест не осилил...
Александр
Это боль. Как по мне, вы даёте теоритечески супер сложную в начале человеку, который только синтаксис немного осилил, а тебя тут рекурсия, декларативное, императивное, поди разберись. И ещё вопрос, вопросов в тестах стало безумно много и все они проверяют одно и то же, некоторые два вопроса почти одинаковые. Штук по 10 стало, зачем так много ? Было достаточно и 3,4 вопроса, как ранее. Ведь вся сила в практике, которая у вас и так супер-крутая!