Linguagem C | Aula 52 - Recursão: Funcionamento

แชร์
ฝัง
  • เผยแพร่เมื่อ 2 ม.ค. 2025

ความคิดเห็น • 23

  • @brenocamaro2254
    @brenocamaro2254 ปีที่แล้ว +1

    MELHOR EXPLICAÇÃO SOBRE RECURSÃO QUE JÁ VI. Outros professores falavam: Treina que uma hora você entende. Esse professor não. Ele explicou de uma maneira SUPER compreensível. Parabéns

  • @dalvanjosedalvan8455
    @dalvanjosedalvan8455 9 หลายเดือนก่อน

    Estou digitindo com os pés porque com as mãos estou aplaudindo, muitíssimo obrigado Professor pelo seu "Dom" de ensinar!!!

  • @progdescomplicada
    @progdescomplicada  12 ปีที่แล้ว +6

    05 aulas sobre ponteiros foram gravadas e serão publicadas nos próximos dias, fique de olho no nosso blog! Link na descrição do vídeo! :)

  • @brenocamaro2254
    @brenocamaro2254 ปีที่แล้ว

    OBRA PRIMA ESSE VÍDEO. ME SALVOU DO FAZER SEM ENTENDER. O FAMOSO APERTAR PARAFUSOS.

  • @Joao-pz4cz
    @Joao-pz4cz ปีที่แล้ว

    Sabe muito

  • @franapmachado
    @franapmachado 9 ปีที่แล้ว +3

    Parabéns! Excelente aula!

  • @progdescomplicada
    @progdescomplicada  11 ปีที่แล้ว +1

    Seu raciocínio está certo. Apenas a forma como foi programado na víideo aula é que é diferente. Fica mais fácil como foi programado.

  • @fabricioadriel
    @fabricioadriel 12 ปีที่แล้ว

    Valeu antes eu achava que o if comparava apenas uma vez, juro que achei que daria certo apenas com while, obrigado por postar os videos estão me ajudando bastante.

  • @felixnoviolence
    @felixnoviolence 12 ปีที่แล้ว +1

    Caro Professor suas aulas são excelentes se vc puder colocar algum material sobre ponteiro ficaria muito agradecido pois tenho uma certa dificuldade em para entender essa parte

  • @ilivanilton
    @ilivanilton 9 ปีที่แล้ว +1

    TOP!!

  • @lionvan1
    @lionvan1 11 ปีที่แล้ว +1

    Professor, bela explicação... porém eu raciocinei de outro forma o cálculo,
    penso eu que também pode ser memorizado da seguinte forma:
    Se chamo "5" na função, por exemplo:
    fatorial(5) 5*4=20 -> 20*3=60 -> 60*2=120 -> 120*1=120
    achava eu que ele calculava assim!!! Pois dá o mesmo resultado.

  • @brunocalhiari976
    @brunocalhiari976 8 ปีที่แล้ว +3

    A quantidade de memória alocada pode ser um problema. Se eu usar um laço 'for' a maneira como ela aloca a memória é equivalente ou ela usa uma outra lógica?
    Por exemplo, se eu usar uma função recursiva com 100 iterações serão alocados a mesma quantidade de memória que 100 iterações de um laço 'for', ou o laço for usa outra maneira de manipular os dados?

    • @ricardoelfuego
      @ricardoelfuego 8 ปีที่แล้ว +3

      A recursividade aloca memória para cada chamada, isso é chamado de pilha toda essa pilha é amontoada e por fim desamontoada. Por exemplo, se vc fizer uma função recursiva e dentro dessa função existir uma declaração de vetor, será declarado um vetor para cada chamada, dependendo da situação é melhor usar laço

    • @brunocalhiari976
      @brunocalhiari976 8 ปีที่แล้ว

      Ricardo Vieira Eu entendi isso, talvez eu não fui claro, mas o que eu quero saber é se os laços "for" ou "while" usam a mesma lógica de pilha ou alguma outra lógica para serem executados. Obrigado pela sua atenção.

    • @ricardoelfuego
      @ricardoelfuego 8 ปีที่แล้ว +1

      Desculpe acho q faltou uma parte da explicação o loop utiliza as msm variaveis (Endereços de memória)

    • @ricardoelfuego
      @ricardoelfuego 8 ปีที่แล้ว +2

      Não da pra te dizer qual forma de trabalhar é a mais eficiente para cada situção existe um algoritmo

    • @brunocalhiari976
      @brunocalhiari976 8 ปีที่แล้ว +1

      Ahh sim. Obrigado pela sua atenção cara. Eu estava vendo aqui, e os algoritmos realmente são diferentes, porque em microcontroladores a pilha de endereço de memória é muito pequena, no último que programei tinha apenas 8 níveis, ou seja, se eu usasse uma função recursiva 9 vezes ele ia estourar a pilha e eu teria que criar uma condição apropriada pra isso que normalmente é o reset, mas em laços while ou for não existe limite de iterações, porque é necessário usar um while de loop infinito em todo microcontrolador pra ele funcionar, e se fosse a mesma lógica, isso ia estourar a pilha. Acho que isso responde minha pergunta hahahha. Pelo jeito, a função recursiva usa o comando equivalente em Assembly "call" pra funcionar, enquanto os laços, usam a comando em Assembly "goto".

  • @Mocreio-l2f
    @Mocreio-l2f 6 ปีที่แล้ว

    As aulas são boas, mas você poderia fala um pouco mais devagar, porque também da um eco na voz, e fica difícil entender pra quem não sabe.

  • @Lihzianne
    @Lihzianne 8 ปีที่แล้ว +1

    Deixa eu ver se eu entendi: uma recursão é tipo um subprograma dividido em partes menores?

    • @progdescomplicada
      @progdescomplicada  8 ปีที่แล้ว +3

      Não, é uma estratégia de dividir um problema em partes menores para resolvê-lo.

    • @Lihzianne
      @Lihzianne 8 ปีที่แล้ว +1

      ah sim, obrigado!