Para quem não entendeu ainda, é incrivelmente simples: vamos pegar o exemplo do vídeo: int fatorial(int x) { int resultado; if( x == 0) { resultado = 1; } else { resultado = x * fatorial (x - 1); } } O que vai acontecer: Vamos supor que em main eu chamei a função fatorial desta forma: fatorial(3); então ele entra na função fatorial() e faz literalmente assim: fatorial(x = 3) { int resultado; x é igual a 0 ? : Não. Então: (4) resultado = 3 * fatorial (3 - 1); // Como ele não resolveu ainda, ele chama denovo a função fatorial(), ainda em else: fatorial( x = 2 ) { int resultado; x é igual a 0 ?: Não. Então: (3) resultado = 2 * fatorial ( 2 - 1); // Como ele não resolveu ainda, ele chama denovo a função fatorial, ainda em else: fatorial( x = 1 ) { int resultado; x é igual a 0? : Não. Então: (2) resultado = 1 * fatorial( 1 - 1 ); //Como ele não resolveu ainda, ele chama denovo a função fatorial: fatorial( x = 0) { int resultado; x é igual a 0? : Sim. Então: (1) resultado = 1; return resultado; (retornou 1) } //Finalmente, ele finalizou e definiu resultado como 1... agora, e compilador // faz o caminho INVERSO, e calcula todas as variáveis anteriores, pois só // agora conseguiu um resultado (por isso o nome função RECURSIVA, pois // ela faz o CURSO CONTRÁRIO quando resolve um problema deste tipo): // Se ligou nos números entre parênteses nas variáveis "resultado" acima? // agora siga elas para você entender o que está sendo feito logo abaixo: (1) resultado = 1; // voltando com o valor 1 (2) resultado = 1 * (1) = 1; // voltando com o valor 1 (3) resultado = 2 * (1) = 2; // voltando com o valor 2 (4) resultado = 3 * (2) = 6; // finalmente resolvido } } } // Depois de tudo isso, ele finalmente chega ao fim desta função, e o return retorna // o resultado da variável "resultado" que, neste caso, é 6: return resultado (6); } E isso é função recursiva :D ( um forte abraço para o professor do vídeo, fez um excelente trabalho de didática, eu só consegui explicar porque ele conseguir me fazer entender... parabéns).
Eu vou te dizer: já lí muitos livros e ví muitas aulas na internet nos últimos anos... mais mano, em menos de 13 minutos você conseguiu fazer o que nenhum desses citados conseguiu !!! Eu finamente entendí como funciona a recursividade de funções pqp .... se vc conseguir a mesma proeza em ponteiros, você será um gênio da didatica :D.... estou esperançoso para as aulas de ponteiros...obrigado
Essa aula deu um nó na minha mente, mas com a ajuda de um comentário aqui no youtube eu pude entender perfeitamente como funciona uma função recursiva. Muito obrigado por compartilhar mais uma aula prof! Ótima didática como sempre.
Exelente explicação, principalmente no momento do "Q da questão" Estava precisando entender recursividade para partir para ordenaçao megeSort. Parabéns!!
Estou aprendendo sozinho c++, comprei uns livros e são muito úteis, mas, as vezes algumas coisas ficam vagas e essa foi uma delas estava empacado em um problema e tu ajudou muito, obrigado!
Cara, simplesmente a melhor esplicação de recursividade. Assisti a muitos, mas você matou a questão ao 6:31 "Como se houvesse uma pausa".....Pronto, agora entendi essa porra. :D
ótima sugestão cara.. realmente eu deveria ter feito isso desde o início mas na época nem pensei... estou só com preguiça de voltar em todos os vídeos e reescrever o código de todas as aulas :/ .. Nos vídeos de Java estou sempre fornecendo um link para download do código fonte ;) Valeu pela dica e assim que puder vou fazer isso
vc é muito foda, ia voltar pra dar like em todos os vídeos só depois q eu terminasse de ver todos mas tive q parar nesse aqui pra comentar. Excelente explicaçao.
Muito bem explicado. As apostilas que eu estava lendo não mencionavam de forma tão clara o armazenamento da variável com mesmo nome e valores diferentes na memória
Você percebe que está aprendendo, quando percebe algo errado e fica procurando, ai logo depois no vídeo o professor se corrige e vê que ele tinha errado. HAHAHAHAHA
instancia... a palavra correta seria, que a função fatorial quando chama a si mesma, ela abre uma outra instancia da função fatorial... e assim sucessivamente vai abrindo outras instancias da função até obter o resultado e retornar o valor obtido
Para quem não entendeu ainda, é incrivelmente simples:
vamos pegar o exemplo do vídeo:
int fatorial(int x)
{
int resultado;
if( x == 0)
{
resultado = 1;
} else
{
resultado = x * fatorial (x - 1);
}
}
O que vai acontecer:
Vamos supor que em main eu chamei a função fatorial desta forma:
fatorial(3);
então ele entra na função fatorial() e faz literalmente assim:
fatorial(x = 3)
{
int resultado;
x é igual a 0 ? : Não.
Então:
(4) resultado = 3 * fatorial (3 - 1);
// Como ele não resolveu ainda, ele chama denovo a função fatorial(), ainda em else:
fatorial( x = 2 )
{
int resultado;
x é igual a 0 ?: Não.
Então:
(3) resultado = 2 * fatorial ( 2 - 1);
// Como ele não resolveu ainda, ele chama denovo a função fatorial, ainda em else:
fatorial( x = 1 )
{
int resultado;
x é igual a 0? : Não.
Então:
(2) resultado = 1 * fatorial( 1 - 1 );
//Como ele não resolveu ainda, ele chama denovo a função fatorial:
fatorial( x = 0)
{
int resultado;
x é igual a 0? : Sim.
Então:
(1) resultado = 1;
return resultado; (retornou 1)
}
//Finalmente, ele finalizou e definiu resultado como 1... agora, e compilador
// faz o caminho INVERSO, e calcula todas as variáveis anteriores, pois só
// agora conseguiu um resultado (por isso o nome função RECURSIVA, pois
// ela faz o CURSO CONTRÁRIO quando resolve um problema deste tipo):
// Se ligou nos números entre parênteses nas variáveis "resultado" acima?
// agora siga elas para você entender o que está sendo feito logo abaixo:
(1) resultado = 1; // voltando com o valor 1
(2) resultado = 1 * (1) = 1; // voltando com o valor 1
(3) resultado = 2 * (1) = 2; // voltando com o valor 2
(4) resultado = 3 * (2) = 6; // finalmente resolvido
}
}
}
// Depois de tudo isso, ele finalmente chega ao fim desta função, e o return retorna
// o resultado da variável "resultado" que, neste caso, é 6:
return resultado (6);
}
E isso é função recursiva :D ( um forte abraço para o professor do vídeo, fez um excelente trabalho de didática, eu só consegui explicar porque ele conseguir me fazer entender... parabéns).
e se no caso eu resolvesse colocar o valor 9, eu conseguiria o fatorial? eu teria que ir no meu algoritmo e muda-lo?
Vai resolver o fatorial de qualquer numero
obg, é que eu tinha me confundido na explicação dele
Ótima explicação.
fiquei meio confuso porque ele entrou dentro do comando "else" sendo que era zero e pensei que deveria apenas retornar 1.
Muito bom, conseguiu explicar em dez minutos, o que meu professor não conseguiu em 3 aulas! Obrigado.
True story ;)
Verdade.
ahaha também me aconteceu o mesmo xD
Eu vou te dizer: já lí muitos livros e ví muitas aulas na internet nos últimos anos... mais mano, em menos de 13 minutos você conseguiu fazer o que nenhum desses citados conseguiu !!! Eu finamente entendí como funciona a recursividade de funções pqp .... se vc conseguir a mesma proeza em ponteiros, você será um gênio da didatica :D.... estou esperançoso para as aulas de ponteiros...obrigado
Cara a melhor aula explicando recursividade que já vi. Parabéns! 10 anos desse vídeo. Sucesso.
O vídeo é velho, mas ajuda que é uma beleza kkkkk
Explicou melhor do q muitas outras aulas
UOUU foda!
Agora entendi!
O return sempre bugava minha cabeça, mas faz sentido deixar em tempo de espera!
FODA! Obrigado!
Como eu queria que o infeliz do meu professor de programação explicasse assim... Muito bom o vídeo, parabéns!
achei fenomenal esse jeito de explicar recursão
Que aula incrível!!!! Nem na faculdade é tão bem explicado como foi aqui. Muito obrigada!!
Sou professor de informática e digo que essa é uma das melhores explicações sobre recursividade que já vi. Parabéns pelo vídeo!
Eu tava surtando por estar tendo dificuldade em entender, mas você me salvou 🙏🙏🙏. Aula muito boa!
Obrigado mesmo, De Aluno Para Aluno
cara muito boa explicação, muito obrigada!
Salvou demais amigo, parabéns pela explicação, tava arregaçando minha cabeça tentando entender como era realizado o cálculo. Valeu demais.
Obrigado pelo comentário... eu terminando a série de vídeos que já tenho aqui planejado vou tentar fazer uma série focado em testes booleanos. ;D
vlws
A pessoa que descobriu esse método (de fazer fatorial com a própria função) é incrível.
Mesmo programando em java as suas aulas de C ainda me ensinam, kkkk. Você é demais!
Muito bom, sanando dúvidas até mesmo depois de 8 anos da data de postagem!
eu já pesquisei. Esse é o melhor vídeo sobre o assunto!
ótima hora que fui ver vídeo aulas sobre prog1, você quebrou meu bloqueio, antes odiava essa matéria e agora é uma das minhas preferidas
Professor com a melhor didática que eu já vi na minha vida, seus videos me salvam!!!
Cara, suas aulas são sensacionais! Parabéns, ótimo trabalho!!!
Amigo! Parabéns! Melhor explicação da função de Recursividade que eu já vi!!! Muito bom mesmo!!!
Primeira vez que vejo um video sobre recursividade e consegui compreender perfeitamente, meus parabéns pela didática.
Essa aula deu um nó na minha mente, mas com a ajuda de um comentário aqui no youtube eu pude entender perfeitamente como funciona uma função recursiva. Muito obrigado por compartilhar mais uma aula prof!
Ótima didática como sempre.
Exelente explicação, principalmente no momento do "Q da questão"
Estava precisando entender recursividade para partir para ordenaçao megeSort.
Parabéns!!
Vc tem o dom de ensinar, parabéns, pq agora estou entendendo! Obrigada!
Assistindo novamente em 2021! Excelente Aula!
Inacreditável como você fez parecer tão simples!!!!
Que aula incrível!!!!!! 👏🏼👏🏼👏🏼👏🏼👏🏼
Nunca tinha pensado em fazer a fatorial desta forma, parabéns pelo algoritimo, programação sempre nos surpreendendo
Eu tinha a idéia de recursividade bem superficial, agora consegui entender o que de fato acontece. Obrigado!
Muito ótima sua explicação! Parabéns e obrigada por compartilhar!
As suas aulas são as melhores!!!
Estou aprendendo sozinho c++, comprei uns livros e são muito úteis, mas, as vezes algumas coisas ficam vagas e essa foi uma delas estava empacado em um problema e tu ajudou muito, obrigado!
Ótimo, muito bem esclarecido. Em 2020, a melhor explicação que encontrei foi essa.
Muito legal, sua explicação analítica da função recursiva.
pqp cara que coisa loka... nunca achei que ia entender isso.. obrigado muito obrigado
Cara, simplesmente a melhor esplicação de recursividade. Assisti a muitos, mas você matou a questão ao 6:31 "Como se houvesse uma pausa".....Pronto, agora entendi essa porra. :D
Por que você não faz mais vídeos?!
Sua didática é excelente!
Caramba , conseguiu explicar com maestria!!!!! Ótima vídeo aula!!
Melhor explicação sobre recursividade que já vi. Obrigado.
Incrível parabéns 👏👏, explicação muito boa parabéns!!
vídeo atemporal, explicação perfeita
ótima sugestão cara.. realmente eu deveria ter feito isso desde o início mas na época nem pensei... estou só com preguiça de voltar em todos os vídeos e reescrever o código de todas as aulas :/ ..
Nos vídeos de Java estou sempre fornecendo um link para download do código fonte ;)
Valeu pela dica e assim que puder vou fazer isso
Sério cara , tuas aulas são muito boas !!! Aprendo bastante com vc !
Cara, melhor explicação de recursividade que eu já vi, parabéns!
Esse vídeo me ajudou demais!! Obrigado!!👏👏👏
Melhor explicação de todas!!!!!
Só consegui entender com esse video, recebeu um like! parabens!
Brigadão!!! Tava com dúvida sobre como funciona uma função recursiva, mas agora tá tudo mais claro. :)
Excelente ! Vai ajudar e muito como complemento das aulas da Facul (ou a "aulas" da facul serão um complemento), bem explicado!!! Obrigado !
Parabéns pela explicação. Muito obrigado!!!
vc é muito foda, ia voltar pra dar like em todos os vídeos só depois q eu terminasse de ver todos mas tive q parar nesse aqui pra comentar. Excelente explicaçao.
Cara parabéns ajudou muito, vou sempre curtir as suas vídeo aula, são muito bacana, muito obrigado mesmo..
aula boa é atemporal, mandando um olá de 2021 hehe SIMPLISMENTE INCRÍVEL!
Excelentes aulas, estou acompanhando para complementar o estudo da Faculdade. Parabens!
Impressionante esse exemplo. Parabéns Italo. Você é demais =D
Muito bem explicado. As apostilas que eu estava lendo não mencionavam de forma tão clara o armazenamento da variável com mesmo nome e valores diferentes na memória
cara esse canal é sensacional, parabéns pela didática!!!
Excelente explicação! Tive de usar papel e caneta, mas entendi. Muito obrigado pelas aulas!
Caramba!!!! Esse cara explica muito bem.
Cara, explicou muito bemmmm! Obrigado!
Nossaaa Inception total. Ótima explicação!
moço vc é uma lenda!!!
Caralho maluco, Parabéns!
Até que enfim entendi recursão! kKKKKKK
parabéns pela aula muito boa sua explicação
Perfeita explicação! Ficou bem fácil de entender, muito obrigado!!!
Você percebe que está aprendendo, quando percebe algo errado e fica procurando, ai logo depois no vídeo o professor se corrige e vê que ele tinha errado. HAHAHAHAHA
muito obrigado Lucas!
Muito boa a sua explicação. Facilitou demais, valeu :)
muito show me ajudou a entender melhor esta função.
Explica melhor que meu Professor! :D Vlw cara!
Vlw Filipe
Sem palavras 👏
Ajudou muito. Obrigado!
Muito a frente do seu tempo
Em 2012 já fazia vídeo de 100 camadas de função
Muito Bom... Parabéns.
Muito bom cara! Valeu pela explicação! Continua as aulas PF :)
EXELENTE aula.
EXPLICAÇÃO MT BOA 👌🤌👍
cara ajudou bagarai tava com uma duvida cruel quanto a sintaxe e talz valeu mesmo
Muito boa a explicação.
Excelente explicação. Parabens.
Fantástico! Ajudou muito!
Fiquei a entender. Obrigado!
Parabéns ótima explicação.
Bastante didático, obrigado!
Melhor aula
Cara vai dar aula na Uninter pq o professor lá nem ele mesmo se entende. Valeu pela explicação! +De aluno para aluno
Cara que genial :D muito boa a aula!!
fez jus ao nome do canal, obrigado pela explicação detalhada...
Muito bem explicado!
Sensacional essa aula
Muito Obrigado !
Valeu Cara boa explicação !!!
Parabéns mano! Me salvou❤❤
instancia... a palavra correta seria, que a função fatorial quando chama a si mesma, ela abre uma outra instancia da função fatorial... e assim sucessivamente vai abrindo outras instancias da função até obter o resultado e retornar o valor obtido
porra valeu!!!
Muito Bom!
muito show!!!
muito bem explicado, valeu!!