Рекурсия что это. Рекурсия программирование. Рекурсия и цикл. Рекурсия с++. Для начинающих. Урок #43
HTML-код
- Опубликовано: 10 июл 2017
- Понравилось видео или оказалось полезным? Подпишись!
Рекурсия что это. Рекурсия программирование. Рекурсия и цикл. Рекурсия с++. Для начинающих. Урок #43
Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут! =)
www.donationalerts.ru/r/simple...
или тут
/ simplecode
Уроки по программированию
Наша группа ВК smplcode
Подписывайтесь на канал / @simplecodeit
Мужик красава, не смотря на все свои проблемы, находит время, чтобы делать видео и объяснять программирование. Спасибо)
Я не понимаю людей которые ставят Dislike, тут все доходчиво объясняется, спасибо автору!
быдлокодеры стаят дизы)
На самом деле просто у людей паркинсон. Не всегда получается попадать.
Согласен. Тут видимо только дибилы не могут понять
это конкуренты с других каналов.
Позволь поинересоваться, вот ты год назад посмотрел этот видос. Так вот, ты стал программистом?
"Если что это слово return" тут я орнул ибо думал что он пишет "четыре")))
Лайк. Но хотелось бы, что бы вы в уроках указывали в каких случаях они используются:)) Например те же шаблоны, или inline, ну и собственно рекурсия. А то тема, мозги кипят, а к чему она применяется не поймешь. Так бы легче было.
Это основы программирования, которые в дальнейшем нужны будет для более сложной работы. Если он начнет объяснять, где это понадобится в дальнейшем, то это будет трудно понять, просто знай, что точно понадобится в будущем)
Это глобальная проблема ) никакой учитель не отвечает на этот вопрос
@@taguhinikoghosyan613 вообще то пихать в один урок сразу все - ничему не научишься. Тут выделили кусок, который отвечает за понимание механизма рекурсии и стэка вызовов. Есть такой принцип: делить сложное на простые части и с ними по отдельности разбираться, что автор и сделал. Можно заметить, что был предыдущий урок тоже про рекурсию, где автор рассматривал другие ее аспекты. Нормальный специалист конечно знает, где и что применяется. Видимо или вам не повезло с учителем или у вас предвзятое отношение и непонимание, как надо разбирать сложные вопросы.
@@QScientist думаю что всё же эффективней ученика столкнуть с проблемой, а потом уже научить как её решать, если наоборот то будут возникать вопросы "зачем?!", хотя может я и не прав. В любом случае качество уроков на безвозмездной основе на высоте.
instablaster.
0:43 - Что такое рекурсия?
2:17 - Алгоритм стека
4:00 - Цикл while
7:00 - Условие выхода из рекурсии
7:38 - Логика работы рекурсии
12:29 - Алгоритм выхода из рекурсии
Когда переменная a = 0 срабатывает return 0; затем - 17:03
отличные уроки!
Ідеальне пояснення матеріалу. Мені , Ваші, уроки дуже сильно допомагають!!!
Дякую, Вам, велике за цю працю, яку ви робите 100% не із-за великої зп))) Дуже мало таких людей як Ви.😌
Ви настільки влучно пояснюєте, як то, Ви самі вчора були джуніором а сьогодні вже сенйор і фокусуєтесь саме на тих моментах які не зрозумілі для новачка))))
Ще раз, Велике Вам дякую😌
Ще не вмерла України, ні слава, ні воля,
Ще нам, браття молодії, усміхнеться доля!
Згинуть наші воріженьки, як роса на сонці,
Запануєм і ми, браття, у своїй сторонці!
Душу й тіло ми положим за нашу свободу
І - покажем, що ми, браття, козацького роду!
Душу й тіло ми положим за нашу свободу
І - покажем, що ми, браття, козацького роду!
Огромное спасибо, обьяснено все на высшем уровне, спасибо с 1 курса института и я к вам скорее всего не один раз еще вернусь ^^
Спасибо за уроки!!!!! Лучший учитель))) Пересматриваю этот урок второй раз, по тихоньку понимаю рекурсию. Спасибо!
Ставлю лайк прежде чем начинаю просмотр.
Рекурсивно лайкаю уроки
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
Отличный урок! Мне, спавшему 6 часов, всё понятно с первого раза! Спасибо!!!
Спасибо. Понятно в общих чертах.
Супер! Спасибо за урок
Большое спасибо за урок, Сергей!
Божееееественно!!!! Все понятно!!!! Огонь! Спасибо тебе огромное!!!
Спасибо большое за отличное объяснение!
Спасибо за урок
Все доступно и понятно объясняется, спасибо.
Читал книги там действительно сразу объясняется на факториале числа на огромной функции, следовательно ничего не понятно было, особенно когда не знаешь даже что такое факториал числа. По вашему курсу гораздо легче воспринимать информацию. Респект и уважуха!
не хочешь подружиться?
Спасибо тебе огромное за такие уроки !
Сергей, сердечное спасибо. Изучаю программирование самостоятельно по книгам, уже много раз хотелось бросить, наткнулся на ваши уроки и изучение программирования превратилось в удовольствие, мало того, теперь понятно, что написано в книгах !
Жаль что такие каналы (образовательные) имеют менее 100 000 подписчиков и не популярны в среде молодых людей . А про игры , кино , пранки и тд в трендах. Спасибо что объясняешь такие не простые вещи . Знание сила
Тому-що ігри, кіно це жанр творчості. У багатьох ці жанри пов'язані з хорошими емоціями, і багатьом ці жанри запали в душу.
Как фармить быстрее всех? Зачем на самом деле нужны диффуза?)
#рекурсия #SimpleCode #урокипрограммирования
А почему у if не было области видимости?
@@mrtonomon407 потому что использовалась всего одна строка, при этом область видимости не нужна.
У вас там ошибка! Было 6 вызовов функции, а не 7. В стеке 6 должно быть.
Первый вызов - функция выводит 4
Второй - 3
Третий - 2
Четвертый - 1
Пятый - 0
Шестой - срабатывает условие return 0
Не понимаю зачем ходить на курсы, если тут такие классные уроки.
Спасибо! Всё доходчиво и понятно!
Спасибо тебе добрый человек за разъяснения!
Тема не самая простая, но нужно вникать. Спасибо вам большое за урок
Автору большое спасибо, все доходчиво объясняет, я лично понимаю с полуслова!
Гениально объяснил!Спасибо большое!
Спасибо за урок!
Самое лучшее объяснение! Спасибо!
Лучший препод которого я встречал !)) Спасибо за урок
Спасибо.
Спасибо! До сих про актуально.
Короче кто не понял смотрим фильм "Начало" с Ди Каприо...хд) не благодарите
Топ комент)
Топ коммент
👏👏👏👏
Или поиграйте с матрёшкой (внутри которой ещё матрёшка)
четко подметил
спасибо ,очень доходчиво объясняешь ,респект
Спасибо Серега за уроки
СПАСИБО ЗА УРОК!))
Благодарю, спасибо Вам большое!
Спасибо за урок.
Прям понятно стало, спасибо!)
Спасибо
Пришлось посмотреть ролик 2 раза, но в итоге я понял, спасибо огромное за ваш труд !
Спасибо, ты очень доступно объяснил
Огромное спасибо благодаря вам , я действительно понял рекурсию
Отличный урок , тоже смотрел про рекурсию думал что понял ,теперь понял.
Спасибо!
The best teacher
Спасибо!!!🥰🥰🥰
СПАСИБО
Super uroki Respekt Bro
сложная тема,спасибо)
Очень доходчиво ))) Спасибо
#спасибо
Класс !
Мне в свое время помогла понять асоция с плоской пружинкой :)
Отлично учишь, спасибо!
+ Like
+ Subscribe
Для сортировки больших массивов с рекурсией самая быстрая из всех сортировок. Она так и называется рекурсивная сортировка (Это я не для Вас пишу, а для других слушателей Ваших уроков). А Вам все равно спасибо за тонкости рекурсии, на которые я раньше не обращал внимания.
ведео гуд,спасибо
Спасибо, очень многое понятно, а есть видео с быстрой сортировкой через рекурсию?
спасибо
Удачи в развитии канала)))
я и подписался и лайкнул не знаю чем ещё благодарить
3:36 наша программка крашится
😍
🥰
😛
Лучший
обновил visual studio 2019 при этом изменилась цветовая палитра. С ней неприятно работать, где взять конфиг с прежней цветовой палитрой.
добрий день, чий канал можете порадити по С#, бо Ви проводите курс дуже класно, але це не те що мені потрібно, моя Вам подяка авансом. !!!!!!!!
Спсб
👍
Вот ещё такой монстр :)))
#include
using namespace std;
int func2(int);
int func(int a)
{
cout
"Это ноль такой"- убило))) НО уроки очень полезны)
👍👍👍
Прикольно
Nice
Привет ! Возможно ли взять у вас уроки по скайпу, просто сейчас занимаюсь c++ и многое не понимаю.
Если мы не попадаем в строку 21, где вызываем метод Foo и передаем аргументы, которая находится внутри функции Main, то как на экран выводится возвращаемое значение? Получается именно в самом конце когда доходим до 1 возвращается return 0, возвращая одним разом целиком сразу все 9 с половиной итераций? По другому вроде не получается 🤔 ,но почему тогда при точке останова всё выводится по очереди, то есть не целиком, а по одному раз оно не может дойти до 21 строки, пока не дойтёт до выхода из метода?
В С# тот же самый принцип выполнения рекурсии?
Заебочек спасибо!
Объясните мне только одно : почему если метод обработки тут FILO (first input last output), то функции не выдают результат в консоль в обратном порядке 0 1 2 3 4? я так понимаю, что выполняются они по принципу-первая поступила первая выполнилась, а стек очищается по принципу обратному или как?
Так cout стразу выдавал результат...
Я тоже именно этими вопросами задался, не понимаю
Подобный цикл я реализовал в void. Подскажите правильно или нет? Или можна как то лучше оптимизировать?
void Test(int a)
{
cout
int out(int a) //Функция int out с параметром a=10;
{
if (a < 1) //Если а=0;
return 0; //Срабатывает return out(a);
cout
Понял, в каком порядке вызываются функции из стека, а вот почему в консоли выводится первым крайнее число, а не 0, никак не допру) ладно, уверен, с помощью следующих видео разберусь. Спасибо!!!!!
ляяя это как раз таки мой главный вопрос, уже понял как? Я не могу понять...
@@user-fm4up1nb3nс того момента уж воды утекло))) пошел во фронты вообще
@@user-fm4up1nb3n потому что у нас в функции есть cout который и выводит изменяющуюся переменную, пока рекурсия не дойдет до своего конца, а в конце уже функция и возвращает тот самый нолик
А почему консоль 0 выводит? Там же уже return 0 должен сработать и завершить программу
Функция возвращает ноль, а "cout" выводит его
43й урок за 2 дня, все конечно понятно но мозги кипят, будь проклят этот карантин
Сергей, отличные уроки. Огромное вам спасибо!
По уроку с рекурсией не совсем понял, зачем функция вызывается 7-ой раз, если уже на 6-ом вызове мы передали ноль в качестве параметра. По идее return 0 должен был отработать уже на 6 вызове. И не совсем понятно, как return 0 передается в предыдущие функции. Там какой-то буфер обмена или что-то в этом роде? С остальным вроде разобрался, принцип LIFO у стека понял. Вместо тарелок можно представить магазин автомата.
Из-за твоего комментария я кажется понял...
Она походу и так после return 0 завершается, а дальше таким образом просто идёт очищение стека
то есть это почти тоже самое, что если бы я написал цикл while? или не совсем?
По аналогии с тарелками. Почему в консоли первым напечаталось число 4, а не число 0 ? Получается, что мы все-таки взяли тарелку с самого конца, а не с начала.
Как я понял, аналогия с тарелками относится не к выводу числа на экран, а к завершению функций.
какой тогда вообще смысл ее использования, если с циклом проще?
потому что cout стоит после декремента
Вот я тоже не очень понял, вроде стоит cout в теле и как говорилось функция зашедшая последней выполняется первой, а про то, что вывод в консоль идет в обратном как-то не сказали ни слова.
P. S. Пересмотрел урок 2 раз все понятно стало, вывод на экран идет только после завершения работы самой функии, я ее материнской(главной) для себя назвал, а дочерние в нее как бы закидывают свои значения в порядке работы сверху вниз. Мне кажется было бы удобней, для понимания, нарисовать каждый верхний блок чуть меньше по ширине нижнего, чтобы было понятно, что они находятся в теле материнской. А уроки просто отличные, очень жаль, что в моем университете не было такого преподавателя!
Понимаю , что поздно , но может потом кто-то ещё задастся этим вопросом и найдёт на него ответ. В данном случае cout стоит перед следующим входом в рекурсию , но после декремента , поэтому числа выводятся в порядке складывания тарелок , но если cout поставить после входа в функцию , то после того , как вернётся 0 , она начнёт выходить из функций именно с той , которая была последней (сверху стека) и т.к cout после этого выхода , то она выведет число , которое было последним( сверху стека).
Объясните пожалуйста как работает стэк на примере нахождения числа Фибоначчи рекурсией
Кто знает какого максимального значения stack может быть? И возможно ли его размер как-то регулировать? Или это просто тех возможности оперативки?
программа насчитала ~4783
В настройках компилятора задается.
Из урока понял что рекурсию можно использовать в качестве задержки. Допустим когда параллельно выполняются две операции и результат первой является продолжением второй параллельно выполняющейся операции.
Они вроде не могут именно выполняться параллельно, предыдущая задача по идее уходит в ожидание результата работы следующей, просто скорость выполнения операций очень большая
Что-то ты не то понял. Читай про concurrency, future / promise
хотел узнать как отреагирует переменная А при освобождение ресурса
привет из 2023. Большое спасибо за уроки!
Что это значит 17:07 ?
🤯
up
Можно ли вызывать функцию рекурсивно внутри main?
вот по этой теме было бы круто дз получить, нужно немного практики чтобы понять как с этим работать
Как дз можно посчитать тот же факториал самостоятельно, а следующий урок рассматривать как объяснение дз
а почему не стоят фигурные скобки после if? Пробела достаточно?
Если у тебя в теле только 1 команда, то скобки необязательно ставить.
Можно в одну строчку написать
Я немножко не поняла. Вы говорите, используем функцию стека "последний зашел, первый вышел". но тут, если параметр у функции 5, то первым зашла пятерка стала в Foo -1, то есть 4 и вывелась на экран 4. Потом 3, 2, 1, 0. То есть принцип первый зашел первый вышел??? Поясните, пож-та...
Тоже сижу и понять не могу этот момент. Есть вероятность, что компилятор заранее все просчитал, а отладчик просто неверно прогнал программу
Цыганские фокусы
Как я понимаю, return в середине функции сработает как break (может быть ты и говорил, а я прослушал:((
return завершает работу функции, так как она "отработала", в принципе можно скачать, что это breakно не очень хороший тон)