Мужик красава, не смотря на все свои проблемы, находит время, чтобы делать видео и объяснять программирование. Спасибо)
@arystanmuzdakhanov58436 жыл бұрын
Я не понимаю людей которые ставят Dislike, тут все доходчиво объясняется, спасибо автору!
@Рыззе6 жыл бұрын
быдлокодеры стаят дизы)
@Nikitich19886 жыл бұрын
На самом деле просто у людей паркинсон. Не всегда получается попадать.
@АлександрАлександр-и6с6 жыл бұрын
Согласен. Тут видимо только дибилы не могут понять
@bat_bsv5 жыл бұрын
это конкуренты с других каналов.
@ПавліченкоЮрій5 жыл бұрын
Позволь поинересоваться, вот ты год назад посмотрел этот видос. Так вот, ты стал программистом?
@ДимДимыч-ц1в3 жыл бұрын
0:43 - Что такое рекурсия? 2:17 - Алгоритм стека 4:00 - Цикл while 7:00 - Условие выхода из рекурсии 7:38 - Логика работы рекурсии 12:29 - Алгоритм выхода из рекурсии Когда переменная a = 0 срабатывает return 0; затем - 17:03
@ВадимКобилянський-я3м4 жыл бұрын
Ідеальне пояснення матеріалу. Мені , Ваші, уроки дуже сильно допомагають!!! Дякую, Вам, велике за цю працю, яку ви робите 100% не із-за великої зп))) Дуже мало таких людей як Ви.😌 Ви настільки влучно пояснюєте, як то, Ви самі вчора були джуніором а сьогодні вже сенйор і фокусуєтесь саме на тих моментах які не зрозумілі для новачка)))) Ще раз, Велике Вам дякую😌
@dusk-a-stone-throw4 жыл бұрын
Ще не вмерла України, ні слава, ні воля, Ще нам, браття молодії, усміхнеться доля! Згинуть наші воріженьки, як роса на сонці, Запануєм і ми, браття, у своїй сторонці! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду! Душу й тіло ми положим за нашу свободу І - покажем, що ми, браття, козацького роду!
@EJNINE4 жыл бұрын
Огромное спасибо, обьяснено все на высшем уровне, спасибо с 1 курса института и я к вам скорее всего не один раз еще вернусь ^^
@fregat... Жыл бұрын
Читал книги там действительно сразу объясняется на факториале числа на огромной функции, следовательно ничего не понятно было, особенно когда не знаешь даже что такое факториал числа. По вашему курсу гораздо легче воспринимать информацию. Респект и уважуха!
@schoolAmoreBin Жыл бұрын
не хочешь подружиться?
@SeshAlex6 жыл бұрын
Лайк. Но хотелось бы, что бы вы в уроках указывали в каких случаях они используются:)) Например те же шаблоны, или inline, ну и собственно рекурсия. А то тема, мозги кипят, а к чему она применяется не поймешь. Так бы легче было.
@winsert4 жыл бұрын
Это основы программирования, которые в дальнейшем нужны будет для более сложной работы. Если он начнет объяснять, где это понадобится в дальнейшем, то это будет трудно понять, просто знай, что точно понадобится в будущем)
@taguhinikoghosyan6134 жыл бұрын
Это глобальная проблема ) никакой учитель не отвечает на этот вопрос
@QScientist3 жыл бұрын
@@taguhinikoghosyan613 вообще то пихать в один урок сразу все - ничему не научишься. Тут выделили кусок, который отвечает за понимание механизма рекурсии и стэка вызовов. Есть такой принцип: делить сложное на простые части и с ними по отдельности разбираться, что автор и сделал. Можно заметить, что был предыдущий урок тоже про рекурсию, где автор рассматривал другие ее аспекты. Нормальный специалист конечно знает, где и что применяется. Видимо или вам не повезло с учителем или у вас предвзятое отношение и непонимание, как надо разбирать сложные вопросы.
@RDcrossChanel3 жыл бұрын
@@QScientist думаю что всё же эффективней ученика столкнуть с проблемой, а потом уже научить как её решать, если наоборот то будут возникать вопросы "зачем?!", хотя может я и не прав. В любом случае качество уроков на безвозмездной основе на высоте.
@harpermarley52173 жыл бұрын
instablaster.
@КлешОфКланс-я3в5 жыл бұрын
Отличный урок! Мне, спавшему 6 часов, всё понятно с первого раза! Спасибо!!!
@ДмитрийОсипов-х1ф7 жыл бұрын
* Самые понятные, видео уроки по c++, на всём (RU) youtube *
@dekstor56576 жыл бұрын
Спасибо за уроки!!!!! Лучший учитель))) Пересматриваю этот урок второй раз, по тихоньку понимаю рекурсию. Спасибо!
@ДмитрийРоманчук-д2н4 жыл бұрын
Рекурсивно лайкаю уроки
@АртемКулык-у9х7 жыл бұрын
отличные уроки!
@LenTos13376 жыл бұрын
Тема не самая простая, но нужно вникать. Спасибо вам большое за урок
@vicar-martyr4 жыл бұрын
Ставлю лайк прежде чем начинаю просмотр.
@pahimself3 жыл бұрын
Не понимаю зачем ходить на курсы, если тут такие классные уроки.
@siegfriedfrei74679 ай бұрын
Сергей, сердечное спасибо. Изучаю программирование самостоятельно по книгам, уже много раз хотелось бросить, наткнулся на ваши уроки и изучение программирования превратилось в удовольствие, мало того, теперь понятно, что написано в книгах !
@magzhanashirbaev93905 жыл бұрын
Жаль что такие каналы (образовательные) имеют менее 100 000 подписчиков и не популярны в среде молодых людей . А про игры , кино , пранки и тд в трендах. Спасибо что объясняешь такие не простые вещи . Знание сила
@kadencode53472 жыл бұрын
Тому-що ігри, кіно це жанр творчості. У багатьох ці жанри пов'язані з хорошими емоціями, і багатьом ці жанри запали в душу.
@barsnow2 жыл бұрын
Как фармить быстрее всех? Зачем на самом деле нужны диффуза?)
@SimpleCodeIT7 жыл бұрын
#рекурсия #SimpleCode #урокипрограммирования
@mrtonomon4077 жыл бұрын
А почему у if не было области видимости?
@vitalybikmetov73913 жыл бұрын
@@mrtonomon407 потому что использовалась всего одна строка, при этом область видимости не нужна.
@globalpower69677 ай бұрын
У вас там ошибка! Было 6 вызовов функции, а не 7. В стеке 6 должно быть.
@globalpower69677 ай бұрын
Первый вызов - функция выводит 4 Второй - 3 Третий - 2 Четвертый - 1 Пятый - 0 Шестой - срабатывает условие return 0
@Firuz267 жыл бұрын
Спасибо за урок
@SibMan545 жыл бұрын
Автору большое спасибо, все доходчиво объясняет, я лично понимаю с полуслова!
@archiechellaut94833 жыл бұрын
Большое спасибо за урок, Сергей!
@itchyyy1529 Жыл бұрын
Пришлось посмотреть ролик 2 раза, но в итоге я понял, спасибо огромное за ваш труд !
@rostyslavklyba17466 жыл бұрын
Все доступно и понятно объясняется, спасибо.
@valeriykhoma97026 жыл бұрын
Спасибо большое за отличное объяснение!
@АлександрШкляев-ч7з5 жыл бұрын
Божееееественно!!!! Все понятно!!!! Огонь! Спасибо тебе огромное!!!
@АндрейБерилло-и7ь5 жыл бұрын
Спасибо тебе добрый человек за разъяснения!
@amaterasu_60hz2 жыл бұрын
Лучший препод которого я встречал !)) Спасибо за урок
@Nick-md4by3 жыл бұрын
Самое лучшее объяснение! Спасибо!
@nijatjafarguliyev4 жыл бұрын
Спасибо! До сих про актуально.
@Евгений-к1г9е7 жыл бұрын
Супер! Спасибо за урок
@Ermine8827 жыл бұрын
Спасибо.
@МарияДуванова-э1т6 жыл бұрын
Спасибо. Понятно в общих чертах.
@bulba19952 жыл бұрын
Отличный урок , тоже смотрел про рекурсию думал что понял ,теперь понял.
@Igrogun Жыл бұрын
Благодарю, спасибо Вам большое!
@elvinaustin10225 жыл бұрын
Спасибо Серега за уроки
@Ms001man6 жыл бұрын
Спасибо за урок!
@aronvitkavendish91065 жыл бұрын
Мне в свое время помогла понять асоция с плоской пружинкой :)
@smorodya74 Жыл бұрын
Спасибо, ты очень доступно объяснил
@ВиталийСахно-ъ1р6 жыл бұрын
Для сортировки больших массивов с рекурсией самая быстрая из всех сортировок. Она так и называется рекурсивная сортировка (Это я не для Вас пишу, а для других слушателей Ваших уроков). А Вам все равно спасибо за тонкости рекурсии, на которые я раньше не обращал внимания.
@АндрейДынер5 жыл бұрын
Спасибо тебе огромное за такие уроки !
@muradapayev62585 жыл бұрын
Гениально объяснил!Спасибо большое!
@ДимДимыч-ц1в3 жыл бұрын
int out(int a) //Функция int out с параметром a=10; { if (a < 1) //Если а=0; return 0; //Срабатывает return out(a); cout
@yujin-mayson5 жыл бұрын
"Если что это слово return" тут я орнул ибо думал что он пишет "четыре")))
@roockeet34606 ай бұрын
16:25
@tricking167 жыл бұрын
спасибо ,очень доходчиво объясняешь ,респект
@malygos18986 жыл бұрын
Спасибо! Всё доходчиво и понятно!
@leganovich3 ай бұрын
Спасибо вам большое, наконец то понял ))
@vladimirdiadichev61407 жыл бұрын
Спасибо
@Vladislav3329RUS5 жыл бұрын
Понял, в каком порядке вызываются функции из стека, а вот почему в консоли выводится первым крайнее число, а не 0, никак не допру) ладно, уверен, с помощью следующих видео разберусь. Спасибо!!!!!
@ДавидМархевка-л5й Жыл бұрын
ляяя это как раз таки мой главный вопрос, уже понял как? Я не могу понять...
@Vladislav3329RUS Жыл бұрын
@@ДавидМархевка-л5йс того момента уж воды утекло))) пошел во фронты вообще
@Шамиль07 Жыл бұрын
@@ДавидМархевка-л5й потому что у нас в функции есть cout который и выводит изменяющуюся переменную, пока рекурсия не дойдет до своего конца, а в конце уже функция и возвращает тот самый нолик
@modernhuman64605 жыл бұрын
Огромное спасибо благодаря вам , я действительно понял рекурсию
@user-qb1oh2in3n6 ай бұрын
Возможно стоило сделать вывод переменной после рекурсивного вызова функции, чтобы увидеть, что такой вызов сработает после выполнения вызванной "дочерней" функции сверху. Наглядно - числа будут выводиться в обратном порядке.
@3x__3 жыл бұрын
СПАСИБО ЗА УРОК!))
@DENIKgame5 жыл бұрын
Спасибо за урок.
@OrionKropt2 жыл бұрын
The best teacher
@dmytroboiko14 жыл бұрын
Прям понятно стало, спасибо!)
@alexandrsargsyan22022 жыл бұрын
я и подписался и лайкнул не знаю чем ещё благодарить
@java96745 жыл бұрын
Super uroki Respekt Bro
@ОлексійЛебедєв-ж6о7 жыл бұрын
Вот ещё такой монстр :))) #include using namespace std; int func2(int); int func(int a) { cout
@sekta8174 жыл бұрын
3:36 наша программка крашится 😍 🥰 😛
@sanekvelikiy2 жыл бұрын
ведео гуд,спасибо
@КириллСафронов-о9д2 жыл бұрын
Спасибо!!!🥰🥰🥰
@nikolay94-cc45 жыл бұрын
сложная тема,спасибо)
@НикитаТолстой-м6ъ6 жыл бұрын
Очень доходчиво ))) Спасибо
@qaupqode43316 жыл бұрын
добрий день, чий канал можете порадити по С#, бо Ви проводите курс дуже класно, але це не те що мені потрібно, моя Вам подяка авансом. !!!!!!!!
@cu1rasss5 жыл бұрын
Спасибо!
@Chester_bell4 жыл бұрын
"Это ноль такой"- убило))) НО уроки очень полезны)
@Nyamchik-0_04 жыл бұрын
Короче кто не понял смотрим фильм "Начало" с Ди Каприо...хд) не благодарите
@alexgaran53394 жыл бұрын
Топ комент)
@DedeyMil4 жыл бұрын
Топ коммент
@DedeyMil4 жыл бұрын
👏👏👏👏
@mar_kha4 жыл бұрын
Или поиграйте с матрёшкой (внутри которой ещё матрёшка)
@семсем-к7я4 жыл бұрын
четко подметил
@ГусейнСалахов5 жыл бұрын
Удачи в развитии канала)))
@nello38785 жыл бұрын
Отлично учишь, спасибо! + Like + Subscribe
@ВладимирФилиппов-б3ю3 жыл бұрын
Из урока понял что рекурсию можно использовать в качестве задержки. Допустим когда параллельно выполняются две операции и результат первой является продолжением второй параллельно выполняющейся операции.
@sleepyNovember_project11 ай бұрын
Они вроде не могут именно выполняться параллельно, предыдущая задача по идее уходит в ожидание результата работы следующей, просто скорость выполнения операций очень большая
@alienhazzard720111 ай бұрын
Что-то ты не то понял. Читай про concurrency, future / promise
@РусланКарнеенко Жыл бұрын
СПАСИБО
@Дмитрий-з3ц7й3 жыл бұрын
Почему return 0 считается как вызов функции. Функция, которая последняя вызывалась была с нулём же 16:07. return 0 же результат работы foo(0).Может я чет не понимаю, отпишите те, кто шарит.
@FeinGe Жыл бұрын
В пред последний вызов поступает 1, потом декрементом становится a = 0 и передается в return Foo(a), функция снова вызывается и срабатывает условие if (a < 1) return 0, что и возвращает как конечный результат функции Foo().
@sleepyNovember_project11 ай бұрын
Я понял так: return 0 в данном случае считается не вызовом функции, а просто ещё одним добавлением задачи в стек
@АртёмСергеевич-в3з6 жыл бұрын
Класс !
@faustomendez65676 жыл бұрын
#спасибо
@RamazanOmorov4 ай бұрын
Учу Джава по вашим роликам, в просторах Ютюба нету уроков по Джава как ваши на С++. ориентируюсь на ваш контент ))). вернитесь
@mikesteinar27134 жыл бұрын
16:27 - если что, то это переполнение стека🤣
@ИоаннДейкун Жыл бұрын
привет из 2023. Большое спасибо за уроки!
@user-8454null Жыл бұрын
Что это значит 17:07 ?
@michaelbondarev87884 жыл бұрын
43й урок за 2 дня, все конечно понятно но мозги кипят, будь проклят этот карантин
@pvp7172 жыл бұрын
Накидал функцию которая вычисляет факториал числа передаваемого ей, в качестве закрепления понятного =) template T FactorialGenereator(T input) { T res; input--; if (input == 0) { return 1; } res = input++ * FactorialGenereator(input); return res; }
@alienhazzard720111 ай бұрын
Ну и для чего тут рекурсия? Ты б еще вычисление n-го числа Фибоначчи написал рекурсией. uint64_t fac(uint64_t n) { uint64_t ans = 1; for (unsigned i = 1; i
@alienhazzard720111 ай бұрын
input-- / input++ что это за дичь? uint64_t fac(uint64_t n) { return (n < 2) ? 1 : n * fac(n-1); }
@tobokelmaratov60243 жыл бұрын
Лучший
@CoolbitsVDA2 жыл бұрын
Сергей, отличные уроки. Огромное вам спасибо! По уроку с рекурсией не совсем понял, зачем функция вызывается 7-ой раз, если уже на 6-ом вызове мы передали ноль в качестве параметра. По идее return 0 должен был отработать уже на 6 вызове. И не совсем понятно, как return 0 передается в предыдущие функции. Там какой-то буфер обмена или что-то в этом роде? С остальным вроде разобрался, принцип LIFO у стека понял. Вместо тарелок можно представить магазин автомата.
@sleepyNovember_project Жыл бұрын
Из-за твоего комментария я кажется понял... Она походу и так после return 0 завершается, а дальше таким образом просто идёт очищение стека
@thetraveler77794 жыл бұрын
Если мы не попадаем в строку 21, где вызываем метод Foo и передаем аргументы, которая находится внутри функции Main, то как на экран выводится возвращаемое значение? Получается именно в самом конце когда доходим до 1 возвращается return 0, возвращая одним разом целиком сразу все 9 с половиной итераций? По другому вроде не получается 🤔 ,но почему тогда при точке останова всё выводится по очереди, то есть не целиком, а по одному раз оно не может дойти до 21 строки, пока не дойтёт до выхода из метода? В С# тот же самый принцип выполнения рекурсии?
@jads_channel Жыл бұрын
Объясните мне только одно : почему если метод обработки тут FILO (first input last output), то функции не выдают результат в консоль в обратном порядке 0 1 2 3 4? я так понимаю, что выполняются они по принципу-первая поступила первая выполнилась, а стек очищается по принципу обратному или как?
@Роман-т8с1ь Жыл бұрын
Так cout стразу выдавал результат...
@sleepyNovember_project Жыл бұрын
Я тоже именно этими вопросами задался, не понимаю
@ОлегСизов-ф4б6 ай бұрын
@@sleepyNovember_project В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так: int Foo(int a) { if (a < 1) { return 0; } a--; int result = Foo(a); // вызов функции std::cout
@АлександрКасьян-д7й6 жыл бұрын
Спасибо, очень многое понятно, а есть видео с быстрой сортировкой через рекурсию?
@nanachiqq2 жыл бұрын
вот по этой теме было бы круто дз получить, нужно немного практики чтобы понять как с этим работать
@ВолодимирПаламарчук-й1ю2 жыл бұрын
Как дз можно посчитать тот же факториал самостоятельно, а следующий урок рассматривать как объяснение дз
@МаксимМалышев-р5е7 жыл бұрын
По аналогии с тарелками. Почему в консоли первым напечаталось число 4, а не число 0 ? Получается, что мы все-таки взяли тарелку с самого конца, а не с начала.
@ДмитрийФил-ъ4ж7 жыл бұрын
Как я понял, аналогия с тарелками относится не к выводу числа на экран, а к завершению функций.
@BobTheBuilder_23347 жыл бұрын
какой тогда вообще смысл ее использования, если с циклом проще?
@tala2937 жыл бұрын
потому что cout стоит после декремента
@alexeysolodov93246 жыл бұрын
Вот я тоже не очень понял, вроде стоит cout в теле и как говорилось функция зашедшая последней выполняется первой, а про то, что вывод в консоль идет в обратном как-то не сказали ни слова. P. S. Пересмотрел урок 2 раз все понятно стало, вывод на экран идет только после завершения работы самой функии, я ее материнской(главной) для себя назвал, а дочерние в нее как бы закидывают свои значения в порядке работы сверху вниз. Мне кажется было бы удобней, для понимания, нарисовать каждый верхний блок чуть меньше по ширине нижнего, чтобы было понятно, что они находятся в теле материнской. А уроки просто отличные, очень жаль, что в моем университете не было такого преподавателя!
@1nchore6 жыл бұрын
Понимаю , что поздно , но может потом кто-то ещё задастся этим вопросом и найдёт на него ответ. В данном случае cout стоит перед следующим входом в рекурсию , но после декремента , поэтому числа выводятся в порядке складывания тарелок , но если cout поставить после входа в функцию , то после того , как вернётся 0 , она начнёт выходить из функций именно с той , которая была последней (сверху стека) и т.к cout после этого выхода , то она выведет число , которое было последним( сверху стека).
@wizard_still2 ай бұрын
Если рисовать потоньше функции можно и 20 функций сделать в стеке
@mikesteinar27134 жыл бұрын
15:22 КАКИЕ ВАШИ ДАКАЗАТЕЛЬСТВА!
@TheRuhaja3 жыл бұрын
Кто знает какого максимального значения stack может быть? И возможно ли его размер как-то регулировать? Или это просто тех возможности оперативки?
@ВананаБанана-ы7ю3 жыл бұрын
программа насчитала ~4783
@alienhazzard720111 ай бұрын
В настройках компилятора задается.
@Fakem1ner3 жыл бұрын
Смотрю, потому что забыл что такое рекурсия и не мог заснуть xD
@ProHolmes2 ай бұрын
Автор тихой сапой применил однострочный if без фигурных скобок, и даже не упомянул, что так тоже можно. Пришлось гуглить, чтоб понять, что конкретно тут является телом у if.
@vmostyko4 жыл бұрын
А почему консоль 0 выводит? Там же уже return 0 должен сработать и завершить программу
@faytoom67623 жыл бұрын
Функция возвращает ноль, а "cout" выводит его
@marlonbrando4584 жыл бұрын
Заебочек спасибо!
@setoza6 ай бұрын
Понять не могу. 7:35 на этом тайминге он пишет if (a < 1) return 0; Почему нет никаких скобок фигурных и точек с запятой (кроме return)? И почему это работает?
@setoza6 ай бұрын
@@CrimAnn1662 спасибо тебе большое! И спасибо за совет с chatgpt, буду пользоваться!
@JohnSmith-es2fh4 жыл бұрын
то есть это почти тоже самое, что если бы я написал цикл while? или не совсем?
@егорщербанов5 жыл бұрын
обновил visual studio 2019 при этом изменилась цветовая палитра. С ней неприятно работать, где взять конфиг с прежней цветовой палитрой.
@saidjonasrorov17212 жыл бұрын
хотел узнать как отреагирует переменная А при освобождение ресурса
@ВиталийСусский-я2м4 жыл бұрын
сложна пока но cout
@ДжонМнацаканян-ч5э10 ай бұрын
Подобный цикл я реализовал в void. Подскажите правильно или нет? Или можна как то лучше оптимизировать? void Test(int a) { cout
@ОлегСизов-ф4б6 ай бұрын
Да, все верно. Разве что можно вызывать Test(a - 1) и не использовать декремент
@brffclips15 жыл бұрын
Прикольно
@mileskuwhatyr2700 Жыл бұрын
Я немножко не поняла. Вы говорите, используем функцию стека "последний зашел, первый вышел". но тут, если параметр у функции 5, то первым зашла пятерка стала в Foo -1, то есть 4 и вывелась на экран 4. Потом 3, 2, 1, 0. То есть принцип первый зашел первый вышел??? Поясните, пож-та...
@chmowashe2221 Жыл бұрын
Тоже сижу и понять не могу этот момент. Есть вероятность, что компилятор заранее все просчитал, а отладчик просто неверно прогнал программу
@sleepyNovember_project Жыл бұрын
Цыганские фокусы
@ОлегСизов-ф4б6 ай бұрын
В данном случае основная работа функции (вывод числа) происходит во время заполнения стека, т.е. в прямом порядке. И уже потом в обратном порядке из стека выкидываются "отработавшие" функции. Для того, чтобы было наоборот, нужно поместить основную работу после рекурсивного вызова функции, вот так: int Foo(int a) { if (a < 1) { return 0; } a--; int result = Foo(a); // вызов функции std::cout