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!!
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
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
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!
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
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
muito bom suas videos aulas,parabens, agora eu queria que vc deixar-se um link ou fizesse outras explicaçãoes sobre testes booleanos ou váriveis booleanas vlw obg
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
Cara a melhor aula explicando recursividade que já vi. Parabéns! 10 anos desse vídeo. Sucesso.
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
UOUU foda!
Agora entendi!
O return sempre bugava minha cabeça, mas faz sentido deixar em tempo de espera!
FODA! Obrigado!
achei fenomenal esse jeito de explicar recursão
O vídeo é velho, mas ajuda que é uma beleza kkkkk
Explicou melhor do q muitas outras aulas
Sou professor de informática e digo que essa é uma das melhores explicações sobre recursividade que já vi. Parabéns pelo vídeo!
Muito legal, sua explicação analítica da função recursiva.
Que aula incrível!!!! Nem na faculdade é tão bem explicado como foi aqui. Muito obrigada!!
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
Como eu queria que o infeliz do meu professor de programação explicasse assim... Muito bom o vídeo, parabéns!
Por que você não faz mais vídeos?!
Sua didática é excelente!
Vc tem o dom de ensinar, parabéns, pq agora estou entendendo! Obrigada!
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.
Amigo! Parabéns! Melhor explicação da função de Recursividade que eu já vi!!! Muito bom mesmo!!!
Professor com a melhor didática que eu já vi na minha vida, seus videos me salvam!!!
cara muito boa explicação, muito obrigada!
eu já pesquisei. Esse é o melhor vídeo sobre o assunto!
Eu tava surtando por estar tendo dificuldade em entender, mas você me salvou 🙏🙏🙏. Aula muito boa!
Salvou demais amigo, parabéns pela explicação, tava arregaçando minha cabeça tentando entender como era realizado o cálculo. Valeu demais.
Primeira vez que vejo um video sobre recursividade e consegui compreender perfeitamente, meus parabéns pela didática.
Obrigado mesmo, De Aluno Para Aluno
Inacreditável como você fez parecer tão simples!!!!
Que aula incrível!!!!!! 👏🏼👏🏼👏🏼👏🏼👏🏼
Muito bom, sanando dúvidas até mesmo depois de 8 anos da data de postagem!
Exelente explicação, principalmente no momento do "Q da questão"
Estava precisando entender recursividade para partir para ordenaçao megeSort.
Parabéns!!
Muito ótima sua explicação! Parabéns e obrigada por compartilhar!
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
ó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
Eu tinha a idéia de recursividade bem superficial, agora consegui entender o que de fato acontece. Obrigado!
Assistindo novamente em 2021! Excelente Aula!
Melhor explicação sobre recursividade que já vi. Obrigado.
Ótimo, muito bem esclarecido. Em 2020, a melhor explicação que encontrei foi essa.
Cara, suas aulas são sensacionais! Parabéns, ótimo trabalho!!!
Mesmo programando em java as suas aulas de C ainda me ensinam, kkkk. Você é demais!
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
A pessoa que descobriu esse método (de fazer fatorial com a própria função) é incrível.
ó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
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!
Nunca tinha pensado em fazer a fatorial desta forma, parabéns pelo algoritimo, programação sempre nos surpreendendo
Cara, melhor explicação de recursividade que eu já vi, parabéns!
Incrível parabéns 👏👏, explicação muito boa parabéns!!
Caramba , conseguiu explicar com maestria!!!!! Ótima vídeo aula!!
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!!!
pqp cara que coisa loka... nunca achei que ia entender isso.. obrigado muito obrigado
Só consegui entender com esse video, recebeu um like! parabens!
Esse vídeo me ajudou demais!! Obrigado!!👏👏👏
Melhor explicação de todas!!!!!
vídeo atemporal, explicação perfeita
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!
Nossaaa Inception total. Ótima explicação!
Sério cara , tuas aulas são muito boas !!! Aprendo bastante com vc !
Excelentes aulas, estou acompanhando para complementar o estudo da Faculdade. Parabens!
Caramba!!!! Esse cara explica muito bem.
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.
Impressionante esse exemplo. Parabéns Italo. Você é demais =D
Excelente explicação! Tive de usar papel e caneta, mas entendi. Muito obrigado pelas aulas!
Caralho maluco, Parabéns!
Até que enfim entendi recursão! kKKKKKK
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!!!
Cara, explicou muito bemmmm! Obrigado!
parabéns pela aula muito boa sua explicação
Muito a frente do seu tempo
Em 2012 já fazia vídeo de 100 camadas de função
Perfeita explicação! Ficou bem fácil de entender, muito obrigado!!!
muito show me ajudou a entender melhor esta função.
moço vc é uma lenda!!!
Muito boa a sua explicação. Facilitou demais, valeu :)
muito obrigado Lucas!
Explica melhor que meu Professor! :D Vlw cara!
Muito bom cara! Valeu pela explicação! Continua as aulas PF :)
Vlw Filipe
cara ajudou bagarai tava com uma duvida cruel quanto a sintaxe e talz valeu mesmo
Excelente explicação. Parabens.
Muito Bom... Parabéns.
Parabéns ótima explicação.
Fantástico! Ajudou muito!
Ajudou muito. Obrigado!
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!!!
Fiquei a entender. Obrigado!
EXELENTE aula.
fez jus ao nome do canal, obrigado pela explicação detalhada...
Bastante didático, obrigado!
Sem palavras 👏
Você poderia fazer um exercicio envolvendo a torre de hanoi? Nao achei nenhum video relacionado com o Dev
Cara que genial :D muito boa a aula!!
EXPLICAÇÃO MT BOA 👌🤌👍
Muito bem explicado!
Muito boa a explicação.
Valeu Cara boa explicação !!!
Sensacional essa aula
muito bom suas videos aulas,parabens, agora eu queria que vc deixar-se um link ou fizesse outras explicaçãoes sobre testes booleanos ou váriveis booleanas
vlw obg
Cara vai dar aula na Uninter pq o professor lá nem ele mesmo se entende. Valeu pela explicação! +De aluno para aluno
Parabéns mano! Me salvou❤❤
Melhor aula
cara que loco.. mt massa.
muito bem explicado, valeu!!