Lógica de Programação - Recursividade - 30
HTML-код
- Опубликовано: 6 фев 2025
- Lógica de Programação - Recursividade - 30
Neste vídeo vamos mostrar como funciona a Recursividade em Lógica de Programação, e criar dois exemplos de aplicação de funções recursivas: função fatorial e fibonacci.
Este curso é muito útil para estudantes de todos os níveis, desde cursos técnicos em informática até faculdade de tecnologia, como análise de sistemas, sistemas de informação, ciências da computação, tecnologia em bancos de dados e outros
Atenção: Lancei uma versão completa e atualizada de meu curso de Lógica de Programação, na plataforma da Udemy, a qual fornece certificado após o aluno concluir o curso, além de download de TODAS as apresentações usadas nas aulas, mais arquivos com listas de exercícios resolvidos, em PDF.
Link com preço promocional: bit.ly/3QKPn22
Seja membro deste canal e ganhe benefícios:
/ @bosontreinamentos
Outras formas de contribuição:
www.bosontreina...
Por Fábio dos Reis
Bóson Treinamentos: www.bosontreina...
Facebook: / bosontreinamentos
Pinterest: / bosontreina
Twitter: / bosontreina
Instagram: / bosontreinamentos
LInkedin: / f%c3%a1bio-dos-reis-06...
Outros projetos do autor:
Diário do Naturalista: www.diariodonat... Наука
Atenção: Lancei uma versão completa e atualizada de meu curso de Lógica de Programação, na plataforma da Udemy, a qual fornece certificado após o aluno concluir o curso, além de download de TODAS as apresentações usadas nas aulas, mais arquivos com listas de exercícios resolvidos, em PDF.
Link com preço promocional: bit.ly/3QKPn22
Estava complicado entender pela apostila da faculdade, sempre venho aqui pensando que vai "complementar", mas na verdade aprendo mais aqui! haha
Muito obrigado pelo vídeo, Fábio! Recursividade não é um tema fácil de explicar para os alunos, mas você apresentou muito bem!
Muito obrigado amigo!
Olho só que tá por aqui hehehe, sou seu inscrito :)
Caramba o Sargaz por aqui mano
Obrigado pelo conteúdo Fabio, assisto o seu canal desde de 2016, quando iniciei na programação no meu curso técnico de informática, atualmente estou cursando o mestrado e volto para ver as suas aulas.
Melhor explicação sobre recursividade que eu já vi.
Finalmente aprendi como funciona essas funcões recursivas.
Essa imagem sobre o funcionamento foi fantástica, bem como as explicações iniciais.
Que bom que ajudou! Obrigado Anderson!
Sou aluno de analise de sistemas e me ajudou bastante. Obrigado !!!
nao acho que meras palavras podem descrever o quanto que eu estou aliviado em finalmente entender funcao recursiva, vc esta de parabens professor! muito obrigado
Fàbio, você é um verdadeiro mestre. Muito obrigado pelo curso de Lògica de Programação.
Muito obrigado Ricardo!
Valeu mesmo Fabio, pelo excelente vídeo, excelente didática, eu já conhecia o exemplo do fatorial, mas o da sequência de Fibonacci realmente fez minha mente explodir, pois as chamadas da função aumentam de forma exponencial, isso eu demorei para entender. Vou compartilhar o vídeo e o canal para tentar retribuir a ajuda.
Tava com muita dificuldade de entender o funcionamento da recursividade, mas com seu video acabei entendendo (E olha que pesquisei bastante sobre o assunto). Muito Obrigado =D
Muito obrigado João!
Primeiro vídeo que me fez entender recursividade hahaha GRATIDÃO
ops falei cedo demais
@@caroliarasil kkkkkkkk
@@caroliarasil kskskskkss
@@caroliarasil kkkkkkkkkkkkkkk
Muito obrigado pelo trabalho professor Fábio, suas aulas são muito claras e sua didática nos ajuda a compreender de uma maneira mais fácil e direta os assuntos.
Parabéns, você explica muito bem. Vou voltar a ver alguns vídeos de funções para melhorar o entendimento nessa matéria que estou vendo agora no segundo semestre da faculdade. Suas aulas estão me ajudando a entender melhor.
Olá! acabei de ver aqui um potente material em que gostei bastante só estou a começar, vou até ao fim mais contudo agradeço pelo esforço e dedicação
Sim, apresentação excelente
Estou olhando justamente por isso estou tendo está matéria na faculdade em estrutura de dados, em análise e desenvolvimento de sistemas
Assisti um vídeo seu por acaso sobre SCP e decidi me inscrever.
A sua didática é absurda, consegue explicar conceitos complexos de forma clara e objetiva.
Parabéns pelo canal e todo o sucesso!
Muito obrigado Gil!
que ótimo vídeo, muito obrigada!
Fábio, você tem uma didática incrível, meus parabéns!!!
Continue sendo esse excelente professor
Valeu amigo!
Excepcional!
Parabéns pelas aulas, tenha certeza que você tem ajudado muita gente.
Muito obrigado!
Obrigado Tedy!
Ganhou uma inscrita.
Muito Top, Obrigado por esse vídeo, me ajudou muito numa prova de Algoritmo e Estrutura de Dados. Vlw
Explicação muito bem elucidada. Melhor que meu professor de estrutura de dados rsrs. Obrigado e parabéns pelo trabalho.
Muito obrigado Joe!
Perfeito!!!
Excelente conteúdo. 08:43
Adorei!!
Excelente conteúdo
Muito bom!
Prof, gostei imenso dos conteudos. Parabens!
Professor, fantástico vou revisar depois. Obrigado!
Valeu Elson!
Parabéns Xará. Bem primorosa as suas explicações. Valeu!!!
Valeu amigo!
poderia fazer uma aula de recursividade em cauda
muitíssimo obrigado
Valeu Jorge!
finalmente entendi o que é fibonacci
Mais um vídeo excelente
Muito obrigado Richard!
Gratidao Gratidão
Essa solução que fiz em python é valida?
def fibo(seq, i=0, lista=list()):
if i == 0:
lista.append(0)
return fibo( seq, i+1)
if i == 1:
lista.append(1)
return fibo(seq, i+1)
if i < seq:
lista.append(lista[-1] + lista[-2])
return fibo(seq, i+1)
if i == seq:
return lista
print(fibo(10))
Ela funciona, mas não sei se é válida. No caso ela retorna a lista da sequencia de fibbo e não somente o numero que a pessoa quer calcular.
Aula de função
Ótimo vídeo... Parabéns sempre pela qualidade!!! Só não entendi como ocorre o cálculo no visualG, onde fica salvo o valor dos cálculos de cada "iteração"... Desculpas, mas já agradeço a ajuda, abraço!!
Confesso que não consigo pensar além desses dois exemplos: Fatorial e Fibonacci...até daria aula kkkkk, o problema é na hora de fazer os exercícios, pois me falta percepção para buscar os casos base e propor execução da função. Mas vamos lá!
Ótimo conteudo parabéns!!!!
Obrigado Matheus!
Quando o valor de n for negativo, neste caso n=-5? Como seria?
tem algum material de slide ou artigo disponibilizado sobre recursividade?
Uma dúvida: dentro da função tem uma segundo var (entre funcao e inicio) - não entendi muito bem a utilidade lógica disso!
Essa seção de (var) quando fica dentro de um procedimento ou função são variáveis declaradas dentro do escopo de função, ou seja, são somente acessíveis dentro
da função. Isso tem relação com escopo global x escopo local.
Escopo global -> Todas variáveis que tem escopo global podem ser acessadas em qualquer parte do algoritmo, até mesmo uma função pode chamar uma variável global no sistema.
Escopo local -> São variáveis que somente podem ser acessadas dentro de uma função, por isso existe a declaração de variáveis dentro de uma função. Caso quiser recuperar alguma informação dessa variável nesse escopo para o programa principal gerará um erro.
Exemplo:
algoritmo "semnome"
// Função :
// Autor :
// Data : 02/06/2020
// Seção de Declarações
var
nome: caractere
funcao nomeCompleto(n: caractere): caractere
var
sobrenome: caractere
inicio
sobrenome
É pra vc declarar variávels que locais à função, ela só vai funcionar na função. Nesse caso não há nenhuma variável declarada. Amigo Henriqeu explicou muito bem,.
usando ai a *recursividade* ,
no exemplo do fibonacci,
eu poderia usar
*fibonacci ( (x-1) + (x-2) )*
ao inves de
fibinacci (x-1) + fibinacci (x-2) ??
Não, a recursividade não é transitiva. Se fosse, ajudaria muito!
Professor, já tem a aula parte 2 de configuração de VLAN??
Não falou que o fatorial de 1 era definido numa hora crítica
Olá professor, tem alguma aula explicado todos os protocolos de redes do modelo OSI? Se sim me mande o link por favor. Gostaria de ver
Olá Thiago! Temos esse vídeo aqui que fala sobre o modelo OSI:
ruclips.net/video/rkKTGpqizZU/видео.html
Abraço!
Quantos vídeo aulas de logica de programação você pretende postar?
A lista está quase terminando, cerca de uns 4 ou 5 vídeos ainda. Mas depois vem a lista de Estruturas de Dados, que será continuação desse curso. Essa lista terá mais algumas dezenas de vídeos.
Boa tarde professor poderia me responder q tipo de estrutura de programaçao seria essa ?
Enquanto (condição) Faça
(bloco de código)
Fim Enquanto
( a )Recursiva. ( b )Sequencial. ( c )Condicional. ( d )Repetição.
d
Esse assunto é muito difícil
Esse assunto é muito difícil
Esse assunto é muito difícil
Esse assunto é muito difícil
Esse assunto é muito difícil
Esse assunto é muito difícil
Like
Duvida:
fibonacci(x-1) + fibonacci(x-2)
eu entro com o valor de 15, entao x terá o valor de 15
fibonacci(15-1)+ fibonacci(15-2) = 27
Daniel, fibonacci(14) não é 14, é uma chamada da função. Você precisa continuar resolvendo, fazendo novas chamadas, agora com x valendo 14 e 13. Algo assim:
fibonacci(15)=
fibonacci(14)+fibonacci(13)=
fibonacci(13) + fibonacci(12)+fibonacci(12)+fibonacci(11)=
fibonacci(12)+fibonacci(11)+fibonacci(11)+fibonacci(10)+fibonacci(11)+fibonacci(10)+fibonacci(10)+fibonacci(9)= ...
e por aí vai, até chegar na base. Para 15, o resultado é 610.
@@epantaleao assiti outro conteúdo e entendi, mas é essa a ideia mesmo. obrigado
@@epantaleao obrigada eliana graças a você tirei minha dúvida pra mim fibonacci funcionava exatamente como daniel disse se não fosse você dizendo e eu indo procurar logo em seguida não iria entender nada kkkkk
Ou seja recursividade é divir para conquistar
Entendi NADA! Vou ter que assistir essa aula de novo e ler algum texto sobre. Acho recursividade complicadíssima
function fatorialComRecurssividade(n) {
if (n === 0) return 1
return n * fatorialComRecurssividade(n - 1)
}
console.log(fatorialComRecurssividade(5))
/*
NOTA!!! EU SO ESCREVI "n = 3", por exemplo, para lembrar que o numero se refere a "n".
ordem dos acontecimentos->
5 * ((n = 5)-1) presta a a atenção na primeira vez "n" vale 5, ok;
4 * ((n = 4)-1) na segunda vez "n" vale 4 os dois "n" tanto o do calculo de multiplicação quanto o do "n"-1;
3 * ((n = 3)-1) depois vale 3
2 * ((n = 2)-1) depois vale 2
1 * ((n = 1)-1) e por fim vale 1
//recurssividade
((n = 1)-1) = 0 ativa o booleano->
if (n === 0) return 1
//lembrando estou chamando novamente a função do inicio então "n" assume o valor do resultado do retorno anterior, no caso n = 1
1 * (1) = 1
essa parte aqui -> 2 * ((n = 2)-1) esta esperando para receber o retorno do resultado da recurssão anterior ou seja 1, ficando-> 2 * (1) que resulta em 2
essa parte aqui -> 3 * ((n = 3)-1) esta esperando para receber o retorno do resultado da recurssão anterior anterior ou seja 2, ficando -> 3 * (2) que resulta em 6
essa parte aqui -> 4 * ((n = 4)-1) esta esperando para receber o retorno do resultado da recurssão anterior anterior ou seja 6, ficando -> 4 * (6) que resulta em 24
essa parte aqui -> 5 * ((n = 5)-1) esta esperando para receber o retorno do resultado da recurssão anterior anterior ou seja 24, ficando-> 5 * (24) = que resulta por fim em 120