Programar em C - Funções Recursivas - Aula 35

Поділитися
Вставка
  • Опубліковано 9 лис 2024

КОМЕНТАРІ • 225

  • @videos12344444444
    @videos12344444444 8 років тому +347

    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).

    • @mvdamassa
      @mvdamassa 8 років тому +2

      e se no caso eu resolvesse colocar o valor 9, eu conseguiria o fatorial? eu teria que ir no meu algoritmo e muda-lo?

    • @ddg7927
      @ddg7927 8 років тому +1

      Vai resolver o fatorial de qualquer numero

    • @mvdamassa
      @mvdamassa 8 років тому +2

      obg, é que eu tinha me confundido na explicação dele

    • @italomillermachado8965
      @italomillermachado8965 7 років тому +1

      Ótima explicação.

    • @isaacweber7398
      @isaacweber7398 7 років тому +2

      fiquei meio confuso porque ele entrou dentro do comando "else" sendo que era zero e pensei que deveria apenas retornar 1.

  • @fimbulwint3r
    @fimbulwint3r 10 років тому +117

    Muito bom, conseguiu explicar em dez minutos, o que meu professor não conseguiu em 3 aulas! Obrigado.

  • @Hendrix463
    @Hendrix463 Рік тому +4

    Cara a melhor aula explicando recursividade que já vi. Parabéns! 10 anos desse vídeo. Sucesso.

  • @videos12344444444
    @videos12344444444 9 років тому +50

    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

  • @allanbontempo8587
    @allanbontempo8587 2 роки тому +1

    UOUU foda!
    Agora entendi!
    O return sempre bugava minha cabeça, mas faz sentido deixar em tempo de espera!
    FODA! Obrigado!

  • @eliabbernardinodepaulajuni545
    @eliabbernardinodepaulajuni545 3 роки тому +1

    achei fenomenal esse jeito de explicar recursão

  • @murilomullergomes8127
    @murilomullergomes8127 3 роки тому +8

    O vídeo é velho, mas ajuda que é uma beleza kkkkk
    Explicou melhor do q muitas outras aulas

  • @futuroArtificialOficial
    @futuroArtificialOficial 3 роки тому +2

    Obrigado mesmo, De Aluno Para Aluno

  • @luigid.122
    @luigid.122 11 років тому +31

    Como eu queria que o infeliz do meu professor de programação explicasse assim... Muito bom o vídeo, parabéns!

  • @vimariaaa
    @vimariaaa Місяць тому

    Que aula incrível!!!! Nem na faculdade é tão bem explicado como foi aqui. Muito obrigada!!

  • @profruiogawa
    @profruiogawa 6 років тому +1

    Sou professor de informática e digo que essa é uma das melhores explicações sobre recursividade que já vi. Parabéns pelo vídeo!

  • @iedaroqueduarte3514
    @iedaroqueduarte3514 3 роки тому +1

    Eu tava surtando por estar tendo dificuldade em entender, mas você me salvou 🙏🙏🙏. Aula muito boa!

  • @carlaribeiro4206
    @carlaribeiro4206 2 роки тому +1

    cara muito boa explicação, muito obrigada!

  • @doomer24y
    @doomer24y Рік тому

    Salvou demais amigo, parabéns pela explicação, tava arregaçando minha cabeça tentando entender como era realizado o cálculo. Valeu demais.

  • @TheJangashi
    @TheJangashi 6 років тому +3

    Por que você não faz mais vídeos?!
    Sua didática é excelente!

  • @dougaprendizdeconfeiteiro
    @dougaprendizdeconfeiteiro 2 роки тому

    A pessoa que descobriu esse método (de fazer fatorial com a própria função) é incrível.

  • @evertondearaujosilva4766
    @evertondearaujosilva4766 3 роки тому

    eu já pesquisei. Esse é o melhor vídeo sobre o assunto!

  • @bdlgamersbr9713
    @bdlgamersbr9713 4 роки тому +1

    Muito bom, sanando dúvidas até mesmo depois de 8 anos da data de postagem!

  • @ColldMaster
    @ColldMaster 3 роки тому

    Amigo! Parabéns! Melhor explicação da função de Recursividade que eu já vi!!! Muito bom mesmo!!!

  • @HOUPI_Games
    @HOUPI_Games 2 роки тому

    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.

  • @razor0wn3d
    @razor0wn3d 4 роки тому

    Eu tinha a idéia de recursividade bem superficial, agora consegui entender o que de fato acontece. Obrigado!

  • @matheusmagalhaes7054
    @matheusmagalhaes7054 3 роки тому

    Primeira vez que vejo um video sobre recursividade e consegui compreender perfeitamente, meus parabéns pela didática.

  • @asmgutinho
    @asmgutinho Рік тому

    Inacreditável como você fez parecer tão simples!!!!
    Que aula incrível!!!!!! 👏🏼👏🏼👏🏼👏🏼👏🏼

  • @joaquimpedro8474
    @joaquimpedro8474 9 років тому +1

    ó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

  • @theocoelhov
    @theocoelhov 3 роки тому

    Professor com a melhor didática que eu já vi na minha vida, seus videos me salvam!!!

  • @monys140
    @monys140 Рік тому

    Muito ótima sua explicação! Parabéns e obrigada por compartilhar!

  • @hicg
    @hicg 3 роки тому +2

    Assistindo novamente em 2021! Excelente Aula!

  • @silveiratalita
    @silveiratalita 5 років тому +1

    Vc tem o dom de ensinar, parabéns, pq agora estou entendendo! Obrigada!

  • @felipe1jn
    @felipe1jn 10 років тому

    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!

  • @ezboy3059
    @ezboy3059 4 роки тому

    Ótimo, muito bem esclarecido. Em 2020, a melhor explicação que encontrei foi essa.

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  12 років тому +1

    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

  • @TheMaceloLaian
    @TheMaceloLaian 9 років тому +2

    Exelente explicação, principalmente no momento do "Q da questão"
    Estava precisando entender recursividade para partir para ordenaçao megeSort.
    Parabéns!!

  • @kozmicaos
    @kozmicaos 8 років тому

    Melhor explicação sobre recursividade que já vi. Obrigado.

  • @EfraimDays
    @EfraimDays 8 років тому +1

    Nunca tinha pensado em fazer a fatorial desta forma, parabéns pelo algoritimo, programação sempre nos surpreendendo

  • @carlosfernando6739
    @carlosfernando6739 8 років тому +2

    Mesmo programando em java as suas aulas de C ainda me ensinam, kkkk. Você é demais!

  • @gnunes72
    @gnunes72 3 роки тому

    Parabéns pela explicação. Muito obrigado!!!

  • @giovannibrancher5996
    @giovannibrancher5996 8 років тому +2

    Cara, suas aulas são sensacionais! Parabéns, ótimo trabalho!!!

  • @dksbanex
    @dksbanex 10 років тому

    pqp cara que coisa loka... nunca achei que ia entender isso.. obrigado muito obrigado

  • @JoséHenriqueMartinsBarretoSilv

    Incrível parabéns 👏👏, explicação muito boa parabéns!!

  • @nilnfa
    @nilnfa 7 років тому

    Brigadão!!! Tava com dúvida sobre como funciona uma função recursiva, mas agora tá tudo mais claro. :)

  • @bacaninhagames8995
    @bacaninhagames8995 Рік тому

    vídeo atemporal, explicação perfeita

  • @marialuizaribeirodasilva5165
    @marialuizaribeirodasilva5165 2 роки тому

    As suas aulas são as melhores!!!

  • @thiagopetherson1268
    @thiagopetherson1268 8 років тому +17

    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

  • @LuizFelipe-zs8yh
    @LuizFelipe-zs8yh 3 роки тому +2

    Muito a frente do seu tempo
    Em 2012 já fazia vídeo de 100 camadas de função

  • @cevima
    @cevima 11 років тому

    Excelente ! Vai ajudar e muito como complemento das aulas da Facul (ou a "aulas" da facul serão um complemento), bem explicado!!! Obrigado !

  • @thiagodev7800
    @thiagodev7800 2 роки тому

    Melhor explicação de todas!!!!!

  • @Yokkay-dl
    @Yokkay-dl Рік тому

    Esse vídeo me ajudou demais!! Obrigado!!👏👏👏

  • @riachomolhado999
    @riachomolhado999 6 років тому +2

    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

  • @ru.exe.anonymous
    @ru.exe.anonymous 3 роки тому

    Caramba , conseguiu explicar com maestria!!!!! Ótima vídeo aula!!

  • @Nicolau1997
    @Nicolau1997 11 років тому

    Cara, melhor explicação de recursividade que eu já vi, parabéns!

  • @Bemnyr_Britto
    @Bemnyr_Britto 10 років тому

    Muito legal, sua explicação analítica da função recursiva.

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 років тому +1

    ó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

  • @guilhermedelcistia6256
    @guilhermedelcistia6256 8 років тому

    Só consegui entender com esse video, recebeu um like! parabens!

  • @sidneyp4826
    @sidneyp4826 6 років тому

    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

  • @dlucassucessosertanejo
    @dlucassucessosertanejo 9 років тому

    Cara parabéns ajudou muito, vou sempre curtir as suas vídeo aula, são muito bacana, muito obrigado mesmo..

  • @natanholanda821
    @natanholanda821 3 роки тому

    aula boa é atemporal, mandando um olá de 2021 hehe SIMPLISMENTE INCRÍVEL!

  • @heriveltonnunes188
    @heriveltonnunes188 9 років тому

    Caramba!!!! Esse cara explica muito bem.

  • @LuisHenriqueChagasLeite
    @LuisHenriqueChagasLeite 10 років тому

    Excelentes aulas, estou acompanhando para complementar o estudo da Faculdade. Parabens!

  • @joaoeduardodasilvabarbosa1391
    @joaoeduardodasilvabarbosa1391 5 років тому +1

    parabéns pela aula muito boa sua explicação

  • @felyppe6509
    @felyppe6509 Рік тому

    Cara, explicou muito bemmmm! Obrigado!

  • @framered
    @framered 8 років тому

    Sério cara , tuas aulas são muito boas !!! Aprendo bastante com vc !

  • @m.souzamorgana6092
    @m.souzamorgana6092 7 років тому

    Nossaaa Inception total. Ótima explicação!

  • @jonasantunes8865
    @jonasantunes8865 10 років тому

    Excelente explicação! Tive de usar papel e caneta, mas entendi. Muito obrigado pelas aulas!

  • @wiltonmartins732
    @wiltonmartins732 6 років тому

    muito show me ajudou a entender melhor esta função.

  • @heltonjose4020
    @heltonjose4020 6 років тому

    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.

  • @brdsnet
    @brdsnet 9 років тому

    Ajudou muito. Obrigado!

  • @juliaaa.garcia
    @juliaaa.garcia Рік тому

    moço vc é uma lenda!!!

  • @guibarreta1993
    @guibarreta1993 8 років тому

    cara esse canal é sensacional, parabéns pela didática!!!

  • @MatheusRagoso
    @MatheusRagoso 11 років тому

    Impressionante esse exemplo. Parabéns Italo. Você é demais =D

  • @mauro-bueno
    @mauro-bueno 4 роки тому

    Muito boa a explicação.

  • @brenoduraes9165
    @brenoduraes9165 8 років тому +2

    Caralho maluco, Parabéns!
    Até que enfim entendi recursão! kKKKKKK

  • @saulodefreitas4031
    @saulodefreitas4031 Рік тому

    Sem palavras 👏

  • @kirovalexandre7289
    @kirovalexandre7289 2 роки тому

    fez jus ao nome do canal, obrigado pela explicação detalhada...

  • @LuizHeringerCantor
    @LuizHeringerCantor 10 років тому

    Muito Bom... Parabéns.

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 років тому

    muito obrigado Lucas!

  • @andersonsoldeira2204
    @andersonsoldeira2204 9 років тому

    EXELENTE aula.

  • @AdailAntonio
    @AdailAntonio 10 років тому

    Excelente explicação. Parabens.

  • @matheuscavalcantedeoliveir6680
    @matheuscavalcantedeoliveir6680 10 років тому

    cara ajudou bagarai tava com uma duvida cruel quanto a sintaxe e talz valeu mesmo

  • @sergioaraujo4519
    @sergioaraujo4519 8 років тому

    Fiquei a entender. Obrigado!

  • @tecnotubeplus
    @tecnotubeplus 9 років тому

    Parabéns ótima explicação.

  • @DeAlunoParaAluno
    @DeAlunoParaAluno  11 років тому

    Vlw Filipe

  • @isabelamarton1940
    @isabelamarton1940 9 років тому

    Fantástico! Ajudou muito!

  • @gabrielpeixoto91
    @gabrielpeixoto91 8 років тому

    Perfeita explicação! Ficou bem fácil de entender, muito obrigado!!!

  • @rafaelferraaz
    @rafaelferraaz 10 років тому

    Muito Obrigado !

  • @leandroalbuquerque8286
    @leandroalbuquerque8286 10 років тому

    Muito bem explicado!

  • @thaynafagundes4302
    @thaynafagundes4302 8 років тому

    Melhor aula

  • @MrMate1212
    @MrMate1212 5 років тому

    Muito boa a sua explicação. Facilitou demais, valeu :)

  • @tenma_vr7738
    @tenma_vr7738 Рік тому

    EXPLICAÇÃO MT BOA 👌🤌👍

  • @max.felipe
    @max.felipe 11 років тому

    Explica melhor que meu Professor! :D Vlw cara!

  • @henriquealves5734
    @henriquealves5734 7 років тому

    Sensacional essa aula

  • @AP-gc5ss
    @AP-gc5ss 6 років тому

    Cara vai dar aula na Uninter pq o professor lá nem ele mesmo se entende. Valeu pela explicação! +De aluno para aluno

  • @fernandosousa-criminalista8815
    @fernandosousa-criminalista8815 11 років тому

    Valeu Cara boa explicação !!!

  • @beiraodoaloucura9295
    @beiraodoaloucura9295 7 років тому

    perfeita explicação

    • @beiraodoaloucura9295
      @beiraodoaloucura9295 7 років тому

      Principio da indução finita é base pra entender como funciona a recursão

  • @lucasmuniz4014
    @lucasmuniz4014 11 років тому

    Muito Bom!

  • @Thiagocords08
    @Thiagocords08 11 років тому

    Valeu me ajudou muito

  • @juliocabral3749
    @juliocabral3749 6 років тому

    Bastante didático, obrigado!

  • @kenneymaquese6989
    @kenneymaquese6989 10 років тому

    Boa explicação!

  • @eduardoantonio1337
    @eduardoantonio1337 5 років тому

    O que ocorre é que quando você executa uma função que diferente de um Procedimento possui um retorno ela devolve um valor para trecho de código onde foi feita sua chama
    em uma função recursiva na qual uma função realiza uma chamada de outra função("ou a si mesma") a função executando dentro de outra função deve ser resolvida primeiro pelo compilador e retornar um valor para a função que efetuou seu chamado assim permitindo que ela finalize sua execução .No exemplo apresentado no vídeo podemos observar essa regra se aplicando a cada chamada até encontrar seu critério de parada , no caso 'x=0" e então retornar seu valor para a função anterior na qual recebeu seu chamado permitindo que ela finalize e repita o ciclo até que retorne a função principal ;

  • @DoctorComputersBgi
    @DoctorComputersBgi 7 років тому +2

    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

  • @Mafia1171
    @Mafia1171 10 років тому

    muito show!!!