Lógica de Programação - Recursividade - 30

53.14k views2803 WordsCopy TextShare
Bóson Treinamentos
Lógica de Programação - Recursividade - 30 Neste vídeo vamos mostrar como funciona a Recursividade ...
Video Transcript:
olá pessoal aqui é o fábio barbosa treinamentos neste vídeo vamos continuar o nosso curso de lógica de programação vamos falar desta vez sobre a recursividade vamos lá bom o que é uma função recursiva que provavelmente você já deve ter ouvido falar nos seus estudos de lógica uma função cursiva é uma função que chama a si mesmo durante a sua execução para a função resolver o problema que ela precisa resolver é lançar mão de chamadas a si próprio para resolver partes mais simples aquele problema até que o problema seja inteiramente resolvido existem funções que utilizam recursos
são direta quando ela chama-se própria diretamente mas também há recurso não pode ser indireta quando a função chama-se própria por meio de outra função é um pouco complicado esse assunto de de recursos idade nesse vídeo falar a respeito da do básico de eqüidade dar alguns exemplos mas se você já tem tendinite desde o início que é um assunto para o qual você vai ter que ter bastante prática até consegui entender a fundo que se trata tá bom as funções e cursivas resolvem o problema então fazendo uma divisão do problema que elas têm que resolver em
duas partes ou em dois casos caso geral e o caso base é o caso geral é o caso mais completo por assim dizer que o problema o problema é se há ou partes mais simplificados do problema mas que ainda não são a resolução final e o caso base é uma forma do problema que tem uma resposta direta que a função é possível utilizar para poder resolver os casos gerais muito bem como é que funciona recursão a função é impossível ela vai ser invocada para resolver o problema por exemplo fazer um cálculo matemático específico a função
ela não consegue resolver diretamente esse cálculo mas ela consegue resolver uma versão bem simplificada naquele local porque a gente vai chamar de caso base então quando a função é chamada com o caso base ela te dar resposta do problema imediatamente quando era chamada com o caso geral ela vai ter que dividir esse caso geral em casos mais simples até chegar no caso base e aí ela tenha o resultado final é imediatamente e pode utilizar esse resultado resolver os casos intermediários até resolver o problema completo então quando a função invocada com um problema mais complexo não
vai dividir em duas partes conceituais por assim dizer no total no caso base o causo geral que o caso que ela não sabe resolver diretamente para a redução a impulsividade funcione a parte que ela não sabe resolver tem que se parecer com o problema original a mais sempre ligeiramente mais simples então se trata de uma técnica na qual a função ela vai simplificando o problema em passos até que ele seja facilmente resolveu e aí a partir daquele bairro e informação daquele dado que ela consegue obter ela vai chegar até a resposta inicial do seu problema
para isso a função chama a si próprio então quem é que resolve as partes intermediárias da própria função que você invocou a gente chama esses passos intermediários de passos recursivos a que vão sendo sempre executados automaticamente em uma versão mais simples do problema que você quer resolver você tem algo muito complexo você dividir em partes mais simples para poder resolver até chegar no total do caso base como a função sabe resolver o caso base isso é importante você vai ter que determinar qual o caso base na hora de criar a função com o retorno o
resultado no caso base é retornado para as funções que chamar nesse caso recurso novamente daí a palavra recursivo a até chegar no final que na verdade o início da chamada da função ela poderia tornar o resultado final que é o problema resolvido é basicamente é isso que você está vendo aqui a gente vai ter um problema para resolver esse problema ele vai ele vai se transformar num problema um pouquinho mais simples depois um pouquinho mais simples um pouquinho mais simples quantas vezes forem necessários até chegar no carnatal do caso base o caso base têm a
resposta de pronto que vai ser retornada pelo problema quero um pouquinho mais simples que então vai ser resolvido ea resolução desse problema é retornado por um problema que era um pouquinho menos simples que vai ser resolvido até chegar no problema inicial e esse problema então ele é totalmente resolvido graças a recursos são e usando a mesma função para todos há a mesma função que haja um problema inicial é que haja no caso base em todas as etapas intermediárias bom parece estranho na esoterismo não é o que você tem pra ficar bastante como falei no começo
do vídeo para consegui entender tem que prestar atenção tem praticar tem que pensar porque é uma tecla réu técnica realmente um pouco difícil quando eu fiz faculdade de análise de sistemas adversário nessa matéria de recurso são a segurança na estrutura de dados e eu falava pra gente no início a gente não se preocupa muito e entender o que estava acontecendo e se deve fazer é tentar criar um algoritmo porque ele ia funcionar em algum momento a gente ia acabar em dezembro seja caiu a ficha de como funcionava aquilo isso é verdade realmente pra pra recursividade
é pra isso a gente tem que praticar a gente vai praticar criando aqui um um algoritmo para um exemplo clássico que a gente costuma utilizar no ensino de recursos idade que é o fatorial terá uma função matemática que é dada por uma forma bem simples n fatorial onde ele é o número do qual você quer saber é calcular fatorial ela é igual ao próprio valor de n * em menos um x em menos 2 e assim sucessivamente até chegar em um siena com a 3 o fator real de 3 até três vezes 2 vezes um
se o n igual a 10 do faturamento 10 então fatura vai ser 10 meses nove vezes oito vezes sete vezes seis até chegar em mim sendo que 1 fatorial e 0 fatorial são iguais a 1 por convenção então assim cinco fatores ao ser igual a cinco vezes quatro que o antecessor vezes três com antecessor vezes 2 vezes um e eu parei um igual a 120 mesmo interessante o fator ao na sequência de operações que são semelhantes é a multiplicação de um número pelo seu antecessor então quando eu digo que sim faturar cinco vezes quatro vezes
três vezes 21 na verdade eu tô dizendo que cinco fatores é a mesma coisa que cinco vezes quatro fatores ao em 4 faturar mesma coisa que quatro vezes três fatores ao e assim sucessivamente ou seja é a mesma operação sendo repetida só que cada vez mais simples a é interessante a gente parte de um caso mais complexo que é o seu futuro até chegar no caso base quando o número aqui é um porquê porque para um fator a gente já tem a resposta a gente sabe que é igual então a gente tem o caso geral
os carros mais simplificados e o caso base autor é perfeito a gente trabalhar com recurso ea gente vai fazer então um algoritmo recursivo utilizando o fatorial que vai trabalhar mais ou menos assim sem fatorial é a mesma coisa que cinco vezes quatro fatores ao 14 fatura quatro vezes três fatores ao o 3 faturou três vezes dois fatores ao 22 fator é a mesma coisa que dois meses um fato real que bom e aí esse 1 ele retorna no cálculo se multiplicado por 2 a 2 que retorna para a função intermediária vezes três gols eis que
retorna diz 4 com 24 que retorna por último caso o caso base o caso geral inicial que é cinco vezes 24 gosta de mídia estão faturando 5 é 120 vamos fazer isso aqui só que na forma de um código utilizando português estruturado que esse código que o fator é impossível que eu vou abrir aqui no miss hoje a gente vê problema em funcionamento em entender como é que ele é criado então impossibilidade fatorial nesse cara que eu vou precisar para fazer esse programinha dado fatorial uma variável do tipo inteiro o valor é o valor que
o usuário digita tudo podia ditar um valor para calcular o fator legal daquele valor inclusivamente eu precisa criar uma função que ocupa uma função a parte pra isso pra deixar encapsulado e se esse código todo e depois lá no corpo principal do programa simplesmente digita o número coloca na variável valor e passa a variável valor para a função fatorial chamo fatorial valor ele vai calcular pra mim como é feito o cálculo então tá aqui o nosso código da função fatorial o nome de afonso autorial ela recebe como entrada um papo x do tipo inteiro e
retorna um valor inteiro também se você não está familiarizado com esse esquema de criar funções eu recomendo que vocês estão subindo e funciona de funções de vídeo de procedimentos para entender que a gente está fazendo aqui ou se preferir simplesmente coloca esse código aqui da função diretamente no início do programa o problema principal tá mas ele vai fazer a função salvador recebe o inter no futebol inteiro não precisa declarar nenhuma variável aqui para essa função e eu simplesmente faço assim o início do programa da função se o valor de x fornecido for menor ou igual
a 1 então retorne 1 esse é o caso base x menor é igual não sei se foram 01 retorne em nosso caso base já sabemos qual fatorial se não se for indicado um outro valor maior do que um agente vai mandar ele retornar esse xis multiplicado pelo fator yao de x menos 1 500 - um é o antecessor então por exemplo se for digitado valor 2 ele vai retornar duas vezes o fator é de 2 - 12 - um é um o fator real de um é um m retornado aquilo tinha retornado e vai ser
multiplicado pelo valor de x ele é tomado por quem por esta função é uma função chamando ela própria e aí o retorno da função mais interna vai alimentar a função mais externa dessa forma a assistir isso é igual a quatro a mesma coisa quatro meses fatorial de quatro - o q3 por acaso faturam de 3 é a mesma coisa que faturou de três vezes a dois fatores ao três vezes dois fatores ao papel de 2 duas vezes um fatorial natural de um é um eo valor vai se não retornar à função por função da deixa
mais interna até mais externo até retornar o valor do faturamento acumulado é interessante vamos ver se funciona então eu vou executar rodar meu algoritmo está aqui entre com o número 1 vamos colocar o número 5 no qual já sabe qual é o valor do fatorial fatorial 120 perfeito cultural no maior um suposto fatorial de 9 362 1880 e vai ficando grande e assim sucessivamente beleza não temos como criar uma função para calcular fatorial de forma recursiva médica fica bem simples a função em si é só um condicional sei que verifica se um número menor igualmente
retornam ou então chama função de novo para calcular o fator yao do próprio inter vamos ver outro exemplo vamos fazer agora uma série de fibonacci de forma recursiva a série fibonacci uma série numérica que inicia com 101 sempre 01 e depois cada número subseqüente à soma dos números anteriores de dois números anteriores ela começa com 101 próximo a zero mais um que chegou a 1 o próximo no próximo número é o mais um é igual a 2 o próximo mês dois chegou a 3 e você já pegou a ideia é assim sucessivamente aqui no canadá
bola a gente tem um vídeo onde a gente resolve essa de fibonacci de forma convencional de forma interativa sem usar recursos são eu recomendo que você assiste e se depositam vai comparar os cortes na mesma coisa por fatores ao bom a gente vai criar um algoritmo que permite calcular qualquer número sérgio bonato por exemplo o 5º 8º o milésimo número na série de fibonacci você só fala com a posição que você quer e fala qual é o número dentro da série então a gente vai utilizar um fibonacci recursivo pra isso como é que funciona a
série bonatto ela pode ser definido assim que bonatto dizer igual a zero que bonache e um igual a gente olhava o campeonato número 100 e bolatti número um é um tribunal de número 234 são subseqüentes são os que a gente vai ter que calcular utilizando a fórmula 1 ea fórmula é que bonatto de um número qualquer nf bonatti do anterior - o do antecessor porque bonatto é a soma dos dois números antecessores então te bonatti do anterior mais o rebote do antecessor bom também perfeito para um algoritmo recursivo reconhecem os dois casos aqui casos base
a gente pode ter mais de um caso base é o caso geral que essa forma então a gente pode aplicar isso dentro de um algoritmo recursivo uma sequência de operações semelhantes de somas algoritmo então eu vou precisar de uma variável chamei um inteiro que só para receber o número da posição que eu vou rejeitar saber qual é o bolatti daquele número é eu declaro e criou função de fibonacci depois do show no programa principal igualzinho fiz com fatorial como é que ficou a função de bonatto bem simples a função chamada boate vai receber um número
inteiro x e devolve também o inter não precisa de uma variável para ela eu simplesmente vou criar o meu caso base é com x igual a zero ou se x for igual a 1 então retornando a posição 00 posição é um livro disso então quando x 0 retorna a 0 quando x foi um retorno a um acabou o campeonato caso contrário se for digitado número maior que esse a gente vai retornar ao campeonato de x - um mais o campeonato de x menos 2 ou seja a soma dos antecessores do número de convocados de novo
para verificar os números ele vai ser convocado várias vezes até chegar no caso base a 0 ou 1 e depois vai alimentando as funções mais externas por assim dizer até chegar na função principal que é o número que você quer calcular ficou pra gente fazer a função de cursiva ritmo vamos calcular o número 32 32 023 exato é 3 o valor lembra que 012 sair o terceiro número é o 2 a gente viu na nossa série de 40 olhar de volta aqui só para você entender direitinho que significa posição 0.22 fibonacci de 3 no número
2 exatamente como a nossa função zinha calculou tá pra fazer isso com meu maior também por exemplo rebonatti de vamos supor de 15 o 15º fim o náutico começou a contar a partir do zero é 610 e assim sucessivamente tranquilos todavia nos dois exemplos de funções exercidas uma definição em poucas ou térmica da coisa mas eu queria ter dado pra pra entender mais ou menos como é que funciona essa ideia de recuo cidade em outros vídeos aqui uma continuação do nosso curso de lógica eu vou resolver outros problemas um pouco mais complexos também de forma
recursiva e vai ficar um pouco mais simples pra vocês entendendo que se trata mas de qualquer forma tentem fazer sozinhos esses dois algoritmos o tribunal fatorial usando essa idéia e possibilidade ah ah ah ah porque realmente é um conceito um pouco mais complexo a em relação aos demais que a gente chegou esse curso os conceitos e de repetição condicional há reis etc pra recursividade um pouco mais esotérico mesmo beleza pessoal então só espero que vocês tenham gostado aproveite para se inscrever no canal da polo finalmente se você não se inscreveu ainda bem para visitar um
website que é o www.bonjovi.com treinamentos com com.br obrigado e até a próxima só também gostaria de agradecer a todos que têm contribuído com a bola são treinamentos na forma de doações seus nomes estão aparecendo aqui no lado esquerdo do meu lado direito e sou profundamente grato a todos vocês e se você quiser contribuir com a bola nos treinamentos pode nos fazer uma doação via paypal ou então o nosso projeto no que cante aqui embaixo na descrição do vídeo nós temos os links para que você possa fazer a sua contribuição é isso aí muito obrigado pessoal
e até mais
Related Videos
Exercícios de Lógica de Programação - Sequência de Fibonacci
9:02
Exercícios de Lógica de Programação - Sequ...
Bóson Treinamentos
33,326 views
Programar em  C - Funções Recursivas - Aula 35
12:31
Programar em C - Funções Recursivas - Aul...
De aluno para aluno
179,165 views
A melhor explicação de Recursividade do Youtube
8:48
A melhor explicação de Recursividade do Yo...
Ludigo
15,818 views
29 - Curso de Python - Funções - Recursividade
16:17
29 - Curso de Python - Funções - Recursivi...
Bóson Treinamentos
31,217 views
Towers of Hanoi: A Complete Recursive Visualization
21:13
Towers of Hanoi: A Complete Recursive Visu...
Reducible
557,945 views
Jan Böhmermann packt aus: So wurde ich zum Multimillionär! | ZDF Magazin Royale
21:13
Jan Böhmermann packt aus: So wurde ich zum...
ZDF MAGAZIN ROYALE
773,074 views
Recursion in Python - How Does It Work and When to Use It?
31:26
Recursion in Python - How Does It Work and...
Hashtag Programação
12,981 views
Curso de C++ #25 - Funções recursivas (recursividade)
15:44
Curso de C++ #25 - Funções recursivas (rec...
CFBCursos
57,424 views
02 - Lógica de Programação - Algoritmos e Fluxogramas
14:14
02 - Lógica de Programação - Algoritmos e ...
Bóson Treinamentos
209,476 views
Curso de Programação C | Funções e procedimentos recursivos com a linguagem C | Aula 153
20:15
Curso de Programação C | Funções e procedi...
Programe seu futuro
21,939 views
Curso de Java 35 - Recursividade
15:19
Curso de Java 35 - Recursividade
Loiane Groner
54,562 views
27 - Lógica de Programação - Funções
21:31
27 - Lógica de Programação - Funções
Bóson Treinamentos
33,195 views
Recursividade // Dicionário do Programador
7:18
Recursividade // Dicionário do Programador
Código Fonte TV
55,073 views
Revisão para a Prova 3 - exercícios de recursividade
18:02
Revisão para a Prova 3 - exercícios de rec...
Pedro O.S Vaz de Melo
1,873 views
ALGORITMOS DE ORDENAÇÃO - Concurso Banco do Brasil - Agente de Tecnologia
16:35
ALGORITMOS DE ORDENAÇÃO - Concurso Banco d...
Arnaldo Junior
7,763 views
INFLAÇÃO VAI DISPARAR NOS EUA E CANADÁ
15:08
INFLAÇÃO VAI DISPARAR NOS EUA E CANADÁ
CORTES - Leon e Nilce [Oficial]
320,471 views
07 - FUNÇÕES RECURSIVAS - C# - TORNE-SE UM PROGRAMADOR
31:47
07 - FUNÇÕES RECURSIVAS - C# - TORNE-SE UM...
Danilo Aparecido - Torne-se um programador
21,671 views
The Genius Way Computers Multiply Big Numbers | Karatsuba's Algorithm
22:04
The Genius Way Computers Multiply Big Numb...
PurpleMind
445,606 views
Funções recursivas em PHP - WDEV
23:50
Funções recursivas em PHP - WDEV
WDEV
1,333 views
Aula 14 - Recursividade - Estruturas de Dados com Java
11:39
Aula 14 - Recursividade - Estruturas de Da...
leguarino
8,777 views
Copyright © 2025. Made with ♥ in London by YTScribe.com