Рекурсия что это. Рекурсия программирование. Рекурсия и цикл. Рекурсия с++. Для начинающих. Урок #43

  Рет қаралды 271,314

#SimpleCode

#SimpleCode

Күн бұрын

Пікірлер: 323
@arystanmuzdakhanov5843
@arystanmuzdakhanov5843 6 жыл бұрын
Я не понимаю людей которые ставят Dislike, тут все доходчиво объясняется, спасибо автору!
@Рыззе
@Рыззе 6 жыл бұрын
быдлокодеры стаят дизы)
@Nikitich1988
@Nikitich1988 6 жыл бұрын
На самом деле просто у людей паркинсон. Не всегда получается попадать.
@АлександрАлександр-и6с
@АлександрАлександр-и6с 6 жыл бұрын
Согласен. Тут видимо только дибилы не могут понять
@bat_bsv
@bat_bsv 5 жыл бұрын
это конкуренты с других каналов.
@ПавліченкоЮрій
@ПавліченкоЮрій 5 жыл бұрын
Позволь поинересоваться, вот ты год назад посмотрел этот видос. Так вот, ты стал программистом?
@eugenesidelnyk4600
@eugenesidelnyk4600 6 жыл бұрын
Мужик красава, не смотря на все свои проблемы, находит время, чтобы делать видео и объяснять программирование. Спасибо)
@ВадимКобилянський-я3м
@ВадимКобилянський-я3м 4 жыл бұрын
Ідеальне пояснення матеріалу. Мені , Ваші, уроки дуже сильно допомагають!!! Дякую, Вам, велике за цю працю, яку ви робите 100% не із-за великої зп))) Дуже мало таких людей як Ви.😌 Ви настільки влучно пояснюєте, як то, Ви самі вчора були джуніором а сьогодні вже сенйор і фокусуєтесь саме на тих моментах які не зрозумілі для новачка)))) Ще раз, Велике Вам дякую😌
@dusk-a-stone-throw
@dusk-a-stone-throw 4 жыл бұрын
Ще не вмерла України, ні слава, ні воля, Ще нам, браття молодії, усміхнеться доля! Згинуть наші воріженьки, як роса на сонці, Запануєм і ми, браття, у своїй сторонці! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду!
@ДимДимыч-ц1в
@ДимДимыч-ц1в 3 жыл бұрын
0:43 - Что такое рекурсия? 2:17 - Алгоритм стека 4:00 - Цикл while 7:00 - Условие выхода из рекурсии 7:38 - Логика работы рекурсии 12:29 - Алгоритм выхода из рекурсии Когда переменная a = 0 срабатывает return 0; затем - 17:03
@SeshAlex
@SeshAlex 6 жыл бұрын
Лайк. Но хотелось бы, что бы вы в уроках указывали в каких случаях они используются:)) Например те же шаблоны, или inline, ну и собственно рекурсия. А то тема, мозги кипят, а к чему она применяется не поймешь. Так бы легче было.
@winsert
@winsert 4 жыл бұрын
Это основы программирования, которые в дальнейшем нужны будет для более сложной работы. Если он начнет объяснять, где это понадобится в дальнейшем, то это будет трудно понять, просто знай, что точно понадобится в будущем)
@taguhinikoghosyan613
@taguhinikoghosyan613 4 жыл бұрын
Это глобальная проблема ) никакой учитель не отвечает на этот вопрос
@QScientist
@QScientist 3 жыл бұрын
@@taguhinikoghosyan613 вообще то пихать в один урок сразу все - ничему не научишься. Тут выделили кусок, который отвечает за понимание механизма рекурсии и стэка вызовов. Есть такой принцип: делить сложное на простые части и с ними по отдельности разбираться, что автор и сделал. Можно заметить, что был предыдущий урок тоже про рекурсию, где автор рассматривал другие ее аспекты. Нормальный специалист конечно знает, где и что применяется. Видимо или вам не повезло с учителем или у вас предвзятое отношение и непонимание, как надо разбирать сложные вопросы.
@RDcrossChanel
@RDcrossChanel 3 жыл бұрын
@@QScientist думаю что всё же эффективней ученика столкнуть с проблемой, а потом уже научить как её решать, если наоборот то будут возникать вопросы "зачем?!", хотя может я и не прав. В любом случае качество уроков на безвозмездной основе на высоте.
@harpermarley5217
@harpermarley5217 3 жыл бұрын
instablaster.
@fregat...
@fregat... Жыл бұрын
Читал книги там действительно сразу объясняется на факториале числа на огромной функции, следовательно ничего не понятно было, особенно когда не знаешь даже что такое факториал числа. По вашему курсу гораздо легче воспринимать информацию. Респект и уважуха!
@schoolAmoreBin
@schoolAmoreBin Жыл бұрын
не хочешь подружиться?
@EJNINE
@EJNINE 4 жыл бұрын
Огромное спасибо, обьяснено все на высшем уровне, спасибо с 1 курса института и я к вам скорее всего не один раз еще вернусь ^^
@КлешОфКланс-я3в
@КлешОфКланс-я3в 5 жыл бұрын
Отличный урок! Мне, спавшему 6 часов, всё понятно с первого раза! Спасибо!!!
@АртемКулык-у9х
@АртемКулык-у9х 7 жыл бұрын
отличные уроки!
@dekstor5657
@dekstor5657 6 жыл бұрын
Спасибо за уроки!!!!! Лучший учитель))) Пересматриваю этот урок второй раз, по тихоньку понимаю рекурсию. Спасибо!
@ДмитрийРоманчук-д2н
@ДмитрийРоманчук-д2н 4 жыл бұрын
Рекурсивно лайкаю уроки
@LenTos1337
@LenTos1337 6 жыл бұрын
Тема не самая простая, но нужно вникать. Спасибо вам большое за урок
@siegfriedfrei7467
@siegfriedfrei7467 9 ай бұрын
Сергей, сердечное спасибо. Изучаю программирование самостоятельно по книгам, уже много раз хотелось бросить, наткнулся на ваши уроки и изучение программирования превратилось в удовольствие, мало того, теперь понятно, что написано в книгах !
@ДмитрийОсипов-х1ф
@ДмитрийОсипов-х1ф 7 жыл бұрын
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
@vicar-martyr
@vicar-martyr 4 жыл бұрын
Ставлю лайк прежде чем начинаю просмотр.
@pahimself
@pahimself 3 жыл бұрын
Не понимаю зачем ходить на курсы, если тут такие классные уроки.
@archiechellaut9483
@archiechellaut9483 3 жыл бұрын
Большое спасибо за урок, Сергей!
@magzhanashirbaev9390
@magzhanashirbaev9390 5 жыл бұрын
Жаль что такие каналы (образовательные) имеют менее 100 000 подписчиков и не популярны в среде молодых людей . А про игры , кино , пранки и тд в трендах. Спасибо что объясняешь такие не простые вещи . Знание сила
@kadencode5347
@kadencode5347 2 жыл бұрын
Тому-що ігри, кіно це жанр творчості. У багатьох ці жанри пов'язані з хорошими емоціями, і багатьом ці жанри запали в душу.
@barsnow
@barsnow 2 жыл бұрын
Как фармить быстрее всех? Зачем на самом деле нужны диффуза?)
@Firuz26
@Firuz26 7 жыл бұрын
Спасибо за урок
@SimpleCodeIT
@SimpleCodeIT 7 жыл бұрын
#рекурсия #SimpleCode #урокипрограммирования
@mrtonomon407
@mrtonomon407 7 жыл бұрын
А почему у if не было области видимости?
@vitalybikmetov7391
@vitalybikmetov7391 3 жыл бұрын
@@mrtonomon407 потому что использовалась всего одна строка, при этом область видимости не нужна.
@globalpower6967
@globalpower6967 7 ай бұрын
У вас там ошибка! Было 6 вызовов функции, а не 7. В стеке 6 должно быть.
@globalpower6967
@globalpower6967 7 ай бұрын
Первый вызов - функция выводит 4 Второй - 3 Третий - 2 Четвертый - 1 Пятый - 0 Шестой - срабатывает условие return 0
@SibMan54
@SibMan54 5 жыл бұрын
Автору большое спасибо, все доходчиво объясняет, я лично понимаю с полуслова!
@rostyslavklyba1746
@rostyslavklyba1746 6 жыл бұрын
Все доступно и понятно объясняется, спасибо.
@itchyyy1529
@itchyyy1529 Жыл бұрын
Пришлось посмотреть ролик 2 раза, но в итоге я понял, спасибо огромное за ваш труд !
@valeriykhoma9702
@valeriykhoma9702 6 жыл бұрын
Спасибо большое за отличное объяснение!
@АндрейБерилло-и7ь
@АндрейБерилло-и7ь 5 жыл бұрын
Спасибо тебе добрый человек за разъяснения!
@Евгений-к1г9е
@Евгений-к1г9е 7 жыл бұрын
Супер! Спасибо за урок
@nijatjafarguliyev
@nijatjafarguliyev 4 жыл бұрын
Спасибо! До сих про актуально.
@АлександрШкляев-ч7з
@АлександрШкляев-ч7з 5 жыл бұрын
Божееееественно!!!! Все понятно!!!! Огонь! Спасибо тебе огромное!!!
@Igrogun
@Igrogun Жыл бұрын
Благодарю, спасибо Вам большое!
@Nick-md4by
@Nick-md4by 3 жыл бұрын
Самое лучшее объяснение! Спасибо!
@amaterasu_60hz
@amaterasu_60hz 2 жыл бұрын
Лучший препод которого я встречал !)) Спасибо за урок
@МарияДуванова-э1т
@МарияДуванова-э1т 6 жыл бұрын
Спасибо. Понятно в общих чертах.
@smorodya74
@smorodya74 Жыл бұрын
Спасибо, ты очень доступно объяснил
@elvinaustin1022
@elvinaustin1022 5 жыл бұрын
Спасибо Серега за уроки
@bulba1995
@bulba1995 2 жыл бұрын
Отличный урок , тоже смотрел про рекурсию думал что понял ,теперь понял.
@Ms001man
@Ms001man 6 жыл бұрын
Спасибо за урок!
@ВиталийСахно-ъ1р
@ВиталийСахно-ъ1р 6 жыл бұрын
Для сортировки больших массивов с рекурсией самая быстрая из всех сортировок. Она так и называется рекурсивная сортировка (Это я не для Вас пишу, а для других слушателей Ваших уроков). А Вам все равно спасибо за тонкости рекурсии, на которые я раньше не обращал внимания.
@Ermine882
@Ermine882 7 жыл бұрын
Спасибо.
@leganovich
@leganovich 3 ай бұрын
Спасибо вам большое, наконец то понял ))
@muradapayev6258
@muradapayev6258 5 жыл бұрын
Гениально объяснил!Спасибо большое!
@malygos1898
@malygos1898 6 жыл бұрын
Спасибо! Всё доходчиво и понятно!
@aronvitkavendish9106
@aronvitkavendish9106 5 жыл бұрын
Мне в свое время помогла понять асоция с плоской пружинкой :)
@АндрейДынер
@АндрейДынер 5 жыл бұрын
Спасибо тебе огромное за такие уроки !
@Vladislav3329RUS
@Vladislav3329RUS 5 жыл бұрын
Понял, в каком порядке вызываются функции из стека, а вот почему в консоли выводится первым крайнее число, а не 0, никак не допру) ладно, уверен, с помощью следующих видео разберусь. Спасибо!!!!!
@ДавидМархевка-л5й
@ДавидМархевка-л5й Жыл бұрын
ляяя это как раз таки мой главный вопрос, уже понял как? Я не могу понять...
@Vladislav3329RUS
@Vladislav3329RUS Жыл бұрын
@@ДавидМархевка-л5йс того момента уж воды утекло))) пошел во фронты вообще
@Шамиль07
@Шамиль07 Жыл бұрын
@@ДавидМархевка-л5й потому что у нас в функции есть cout который и выводит изменяющуюся переменную, пока рекурсия не дойдет до своего конца, а в конце уже функция и возвращает тот самый нолик
@tricking16
@tricking16 7 жыл бұрын
спасибо ,очень доходчиво объясняешь ,респект
@3x__
@3x__ 3 жыл бұрын
СПАСИБО ЗА УРОК!))
@yujin-mayson
@yujin-mayson 5 жыл бұрын
"Если что это слово return" тут я орнул ибо думал что он пишет "четыре")))
@roockeet3460
@roockeet3460 6 ай бұрын
16:25
@dmytroboiko1
@dmytroboiko1 4 жыл бұрын
Прям понятно стало, спасибо!)
@modernhuman6460
@modernhuman6460 5 жыл бұрын
Огромное спасибо благодаря вам , я действительно понял рекурсию
@vladimirdiadichev6140
@vladimirdiadichev6140 7 жыл бұрын
Спасибо
@DENIKgame
@DENIKgame 5 жыл бұрын
Спасибо за урок.
@qaupqode4331
@qaupqode4331 6 жыл бұрын
добрий день, чий канал можете порадити по С#, бо Ви проводите курс дуже класно, але це не те що мені потрібно, моя Вам подяка авансом. !!!!!!!!
@user-qb1oh2in3n
@user-qb1oh2in3n 6 ай бұрын
Возможно стоило сделать вывод переменной после рекурсивного вызова функции, чтобы увидеть, что такой вызов сработает после выполнения вызванной "дочерней" функции сверху. Наглядно - числа будут выводиться в обратном порядке.
@ДимДимыч-ц1в
@ДимДимыч-ц1в 3 жыл бұрын
int out(int a) //Функция int out с параметром a=10; { if (a < 1) //Если а=0; return 0; //Срабатывает return out(a); cout
@alexandrsargsyan2202
@alexandrsargsyan2202 2 жыл бұрын
я и подписался и лайкнул не знаю чем ещё благодарить
@OrionKropt
@OrionKropt 2 жыл бұрын
The best teacher
@КириллСафронов-о9д
@КириллСафронов-о9д 2 жыл бұрын
Спасибо!!!🥰🥰🥰
@ОлексійЛебедєв-ж6о
@ОлексійЛебедєв-ж6о 7 жыл бұрын
Вот ещё такой монстр :))) #include using namespace std; int func2(int); int func(int a) { cout
@НикитаТолстой-м6ъ
@НикитаТолстой-м6ъ 6 жыл бұрын
Очень доходчиво ))) Спасибо
@sekta817
@sekta817 4 жыл бұрын
3:36 наша программка крашится 😍 🥰 😛
@java9674
@java9674 5 жыл бұрын
Super uroki Respekt Bro
@sanekvelikiy
@sanekvelikiy 2 жыл бұрын
ведео гуд,спасибо
@nello3878
@nello3878 5 жыл бұрын
Отлично учишь, спасибо! + Like + Subscribe
@nikolay94-cc4
@nikolay94-cc4 5 жыл бұрын
сложная тема,спасибо)
@ГусейнСалахов
@ГусейнСалахов 5 жыл бұрын
Удачи в развитии канала)))
@Nyamchik-0_0
@Nyamchik-0_0 4 жыл бұрын
Короче кто не понял смотрим фильм "Начало" с Ди Каприо...хд) не благодарите
@alexgaran5339
@alexgaran5339 4 жыл бұрын
Топ комент)
@DedeyMil
@DedeyMil 4 жыл бұрын
Топ коммент
@DedeyMil
@DedeyMil 4 жыл бұрын
👏👏👏👏
@mar_kha
@mar_kha 4 жыл бұрын
Или поиграйте с матрёшкой (внутри которой ещё матрёшка)
@семсем-к7я
@семсем-к7я 4 жыл бұрын
четко подметил
@cu1rasss
@cu1rasss 5 жыл бұрын
Спасибо!
@РусланКарнеенко
@РусланКарнеенко Жыл бұрын
СПАСИБО
@Дмитрий-з3ц7й
@Дмитрий-з3ц7й 3 жыл бұрын
Почему return 0 считается как вызов функции. Функция, которая последняя вызывалась была с нулём же 16:07. return 0 же результат работы foo(0).Может я чет не понимаю, отпишите те, кто шарит.
@FeinGe
@FeinGe Жыл бұрын
В пред последний вызов поступает 1, потом декрементом становится a = 0 и передается в return Foo(a), функция снова вызывается и срабатывает условие if (a < 1) return 0, что и возвращает как конечный результат функции Foo().
@sleepyNovember_project
@sleepyNovember_project 11 ай бұрын
Я понял так: return 0 в данном случае считается не вызовом функции, а просто ещё одним добавлением задачи в стек
@CoolbitsVDA
@CoolbitsVDA 2 жыл бұрын
Сергей, отличные уроки. Огромное вам спасибо! По уроку с рекурсией не совсем понял, зачем функция вызывается 7-ой раз, если уже на 6-ом вызове мы передали ноль в качестве параметра. По идее return 0 должен был отработать уже на 6 вызове. И не совсем понятно, как return 0 передается в предыдущие функции. Там какой-то буфер обмена или что-то в этом роде? С остальным вроде разобрался, принцип LIFO у стека понял. Вместо тарелок можно представить магазин автомата.
@sleepyNovember_project
@sleepyNovember_project Жыл бұрын
Из-за твоего комментария я кажется понял... Она походу и так после return 0 завершается, а дальше таким образом просто идёт очищение стека
@Chester_bell
@Chester_bell 4 жыл бұрын
"Это ноль такой"- убило))) НО уроки очень полезны)
@АртёмСергеевич-в3з
@АртёмСергеевич-в3з 6 жыл бұрын
Класс !
@RamazanOmorov
@RamazanOmorov 4 ай бұрын
Учу Джава по вашим роликам, в просторах Ютюба нету уроков по Джава как ваши на С++. ориентируюсь на ваш контент ))). вернитесь
@ИоаннДейкун
@ИоаннДейкун Жыл бұрын
привет из 2023. Большое спасибо за уроки!
@user-8454null
@user-8454null Жыл бұрын
Что это значит 17:07 ?
@michaelbondarev8788
@michaelbondarev8788 4 жыл бұрын
43й урок за 2 дня, все конечно понятно но мозги кипят, будь проклят этот карантин
@ВладимирФилиппов-б3ю
@ВладимирФилиппов-б3ю 3 жыл бұрын
Из урока понял что рекурсию можно использовать в качестве задержки. Допустим когда параллельно выполняются две операции и результат первой является продолжением второй параллельно выполняющейся операции.
@sleepyNovember_project
@sleepyNovember_project 11 ай бұрын
Они вроде не могут именно выполняться параллельно, предыдущая задача по идее уходит в ожидание результата работы следующей, просто скорость выполнения операций очень большая
@alienhazzard7201
@alienhazzard7201 11 ай бұрын
Что-то ты не то понял. Читай про concurrency, future / promise
@pvp717
@pvp717 2 жыл бұрын
Накидал функцию которая вычисляет факториал числа передаваемого ей, в качестве закрепления понятного =) template T FactorialGenereator(T input) { T res; input--; if (input == 0) { return 1; } res = input++ * FactorialGenereator(input); return res; }
@alienhazzard7201
@alienhazzard7201 11 ай бұрын
Ну и для чего тут рекурсия? Ты б еще вычисление n-го числа Фибоначчи написал рекурсией. uint64_t fac(uint64_t n) { uint64_t ans = 1; for (unsigned i = 1; i
@alienhazzard7201
@alienhazzard7201 11 ай бұрын
input-- / input++ что это за дичь? uint64_t fac(uint64_t n) { return (n < 2) ? 1 : n * fac(n-1); }
@jads_channel
@jads_channel Жыл бұрын
Объясните мне только одно : почему если метод обработки тут FILO (first input last output), то функции не выдают результат в консоль в обратном порядке 0 1 2 3 4? я так понимаю, что выполняются они по принципу-первая поступила первая выполнилась, а стек очищается по принципу обратному или как?
@Роман-т8с1ь
@Роман-т8с1ь Жыл бұрын
Так cout стразу выдавал результат...
@sleepyNovember_project
@sleepyNovember_project Жыл бұрын
Я тоже именно этими вопросами задался, не понимаю
@ОлегСизов-ф4б
@ОлегСизов-ф4б 6 ай бұрын
@@sleepyNovember_project В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так: int Foo(int a) { if (a < 1) { return 0; } a--; int result = Foo(a); // вызов функции std::cout
@АлександрКасьян-д7й
@АлександрКасьян-д7й 6 жыл бұрын
Спасибо, очень многое понятно, а есть видео с быстрой сортировкой через рекурсию?
@faustomendez6567
@faustomendez6567 6 жыл бұрын
#спасибо
@МаксимМалышев-р5е
@МаксимМалышев-р5е 7 жыл бұрын
По аналогии с тарелками. Почему в консоли первым напечаталось число 4, а не число 0 ? Получается, что мы все-таки взяли тарелку с самого конца, а не с начала.
@ДмитрийФил-ъ4ж
@ДмитрийФил-ъ4ж 7 жыл бұрын
Как я понял, аналогия с тарелками относится не к выводу числа на экран, а к завершению функций.
@BobTheBuilder_2334
@BobTheBuilder_2334 7 жыл бұрын
какой тогда вообще смысл ее использования, если с циклом проще?
@tala293
@tala293 7 жыл бұрын
потому что cout стоит после декремента
@alexeysolodov9324
@alexeysolodov9324 6 жыл бұрын
Вот я тоже не очень понял, вроде стоит cout в теле и как говорилось функция зашедшая последней выполняется первой, а про то, что вывод в консоль идет в обратном как-то не сказали ни слова. P. S. Пересмотрел урок 2 раз все понятно стало, вывод на экран идет только после завершения работы самой функии, я ее материнской(главной) для себя назвал, а дочерние в нее как бы закидывают свои значения в порядке работы сверху вниз. Мне кажется было бы удобней, для понимания, нарисовать каждый верхний блок чуть меньше по ширине нижнего, чтобы было понятно, что они находятся в теле материнской. А уроки просто отличные, очень жаль, что в моем университете не было такого преподавателя!
@1nchore
@1nchore 6 жыл бұрын
Понимаю , что поздно , но может потом кто-то ещё задастся этим вопросом и найдёт на него ответ. В данном случае cout стоит перед следующим входом в рекурсию , но после декремента , поэтому числа выводятся в порядке складывания тарелок , но если cout поставить после входа в функцию , то после того , как вернётся 0 , она начнёт выходить из функций именно с той , которая была последней (сверху стека) и т.к cout после этого выхода , то она выведет число , которое было последним( сверху стека).
@tobokelmaratov6024
@tobokelmaratov6024 3 жыл бұрын
Лучший
@nanachiqq
@nanachiqq 2 жыл бұрын
вот по этой теме было бы круто дз получить, нужно немного практики чтобы понять как с этим работать
@ВолодимирПаламарчук-й1ю
@ВолодимирПаламарчук-й1ю 2 жыл бұрын
Как дз можно посчитать тот же факториал самостоятельно, а следующий урок рассматривать как объяснение дз
@thetraveler7779
@thetraveler7779 4 жыл бұрын
Если мы не попадаем в строку 21, где вызываем метод Foo и передаем аргументы, которая находится внутри функции Main, то как на экран выводится возвращаемое значение? Получается именно в самом конце когда доходим до 1 возвращается return 0, возвращая одним разом целиком сразу все 9 с половиной итераций? По другому вроде не получается 🤔 ,но почему тогда при точке останова всё выводится по очереди, то есть не целиком, а по одному раз оно не может дойти до 21 строки, пока не дойтёт до выхода из метода? В С# тот же самый принцип выполнения рекурсии?
@TheRuhaja
@TheRuhaja 3 жыл бұрын
Кто знает какого максимального значения stack может быть? И возможно ли его размер как-то регулировать? Или это просто тех возможности оперативки?
@ВананаБанана-ы7ю
@ВананаБанана-ы7ю 3 жыл бұрын
программа насчитала ~4783
@alienhazzard7201
@alienhazzard7201 11 ай бұрын
В настройках компилятора задается.
@shaphrol9896
@shaphrol9896 2 жыл бұрын
Получается рекурсия много ресурсов жрёт раз так стэк заполняет? Спасибо за уроки!😊 Очень понятные и полезные :)
@ДавидМархевка-л5й
@ДавидМархевка-л5й Жыл бұрын
но она потом удаляет всё это, но по идее это как и с циклом, но рекурсия не создает новых переменных и тд, так что она кажется быстрее работает.
@alienhazzard7201
@alienhazzard7201 11 ай бұрын
@@ДавидМархевка-л5й Она работает медленнее.
@vmostyko
@vmostyko 4 жыл бұрын
А почему консоль 0 выводит? Там же уже return 0 должен сработать и завершить программу
@faytoom6762
@faytoom6762 3 жыл бұрын
Функция возвращает ноль, а "cout" выводит его
@егорщербанов
@егорщербанов 5 жыл бұрын
обновил visual studio 2019 при этом изменилась цветовая палитра. С ней неприятно работать, где взять конфиг с прежней цветовой палитрой.
@Hmhomevideo
@Hmhomevideo 5 жыл бұрын
Не понятны 2 момента: 1 Зачем было делать if с нулем, декремент все равно бы уменьшил "а" до 0 (допустим это придирка) 2 Почему функция в рекурсии передавалась через return, а не просто вызывалась в теле функции (и что происходит при вызове не через return) вот этот момент очень бы хотелось понять PS За уроки спасибо.
@da_costa-h7t
@da_costa-h7t 5 жыл бұрын
1) Нужно было останавливать рекурсию, без этого она бы ушла в (- бесконечность) 2) Можно без возвращения. Возвращение в данном примере было нужно для остановки рекурсии. Без return можно так написать void foo(int a){ if (a>0){ cout
@ДенисВысоцкий-е2с
@ДенисВысоцкий-е2с 2 жыл бұрын
ну я так понял функци должна что то делать, то есть возвращать результат. В случае с void она просто покажет изменения счетчика
@wizard_still
@wizard_still 2 ай бұрын
Если рисовать потоньше функции можно и 20 функций сделать в стеке
@mikesteinar2713
@mikesteinar2713 4 жыл бұрын
16:27 - если что, то это переполнение стека🤣
@ProHolmes
@ProHolmes 2 ай бұрын
Автор тихой сапой применил однострочный if без фигурных скобок, и даже не упомянул, что так тоже можно. Пришлось гуглить, чтоб понять, что конкретно тут является телом у if.
@ДжонМнацаканян-ч5э
@ДжонМнацаканян-ч5э 10 ай бұрын
Подобный цикл я реализовал в void. Подскажите правильно или нет? Или можна как то лучше оптимизировать? void Test(int a) { cout
@ОлегСизов-ф4б
@ОлегСизов-ф4б 6 ай бұрын
Да, все верно. Разве что можно вызывать Test(a - 1) и не использовать декремент
@mileskuwhatyr2700
@mileskuwhatyr2700 Жыл бұрын
Я немножко не поняла. Вы говорите, используем функцию стека "последний зашел, первый вышел". но тут, если параметр у функции 5, то первым зашла пятерка стала в Foo -1, то есть 4 и вывелась на экран 4. Потом 3, 2, 1, 0. То есть принцип первый зашел первый вышел??? Поясните, пож-та...
@chmowashe2221
@chmowashe2221 Жыл бұрын
Тоже сижу и понять не могу этот момент. Есть вероятность, что компилятор заранее все просчитал, а отладчик просто неверно прогнал программу
@sleepyNovember_project
@sleepyNovember_project Жыл бұрын
Цыганские фокусы
@ОлегСизов-ф4б
@ОлегСизов-ф4б 6 ай бұрын
В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так: int Foo(int a) { if (a < 1) { return 0; } a--; int result = Foo(a); // вызов функции std::cout
@marlonbrando458
@marlonbrando458 4 жыл бұрын
Заебочек спасибо!
@brffclips1
@brffclips1 5 жыл бұрын
Прикольно
@setoza
@setoza 6 ай бұрын
Понять не могу. 7:35 на этом тайминге он пишет if (a < 1) return 0; Почему нет никаких скобок фигурных и точек с запятой (кроме return)? И почему это работает?
@setoza
@setoza 6 ай бұрын
@@CrimAnn1662 спасибо тебе большое! И спасибо за совет с chatgpt, буду пользоваться!
@JohnSmith-es2fh
@JohnSmith-es2fh 4 жыл бұрын
то есть это почти тоже самое, что если бы я написал цикл while? или не совсем?
@ВиталийСусский-я2м
@ВиталийСусский-я2м 4 жыл бұрын
сложна пока но cout
@ЭЛС-й1м
@ЭЛС-й1м 2 жыл бұрын
Я не совсем понимаю вызов функции 7 раз. Разве return 0 считается как вызов функции?
@R080T
@R080T 2 жыл бұрын
Не считается, Вы правильно заметили. Вызовов Foo тут всего шесть, из которых рекурсивных - пять (вызов из main не является рекурсивным). Собственно, сам стек видно на видео в IDE, область снизу справа. Жаль, что автор позволяет такие допущения, особенно в обучающем основам языка курсе. От себя добавлю, что функцию можно наглядно сократить: return a ? Foo(--a) : 0
@sleepyNovember_project
@sleepyNovember_project 11 ай бұрын
@@R080T а разве не: a < 1 ? return 0 : return Foo(--a); ?
Изучение C++ для начинающих / #12 - Указатели и ссылки
23:04
Школа itProger / Программирование
Рет қаралды 81 М.
Sigma girl VS Sigma Error girl 2  #shorts #sigma
0:27
Jin and Hattie
Рет қаралды 124 МЛН
요즘유행 찍는법
0:34
오마이비키 OMV
Рет қаралды 12 МЛН
Рекурсия. Репка и матрёшка
18:37
Тимофей Хирьянов
Рет қаралды 120 М.
Примеры рекурсивных алгоритмов
23:54
Тимофей Хирьянов
Рет қаралды 59 М.