Recursividade e listas
|
|
|
- Pedro Castilhos Palmeira
- 8 Há anos
- Visualizações:
Transcrição
1 Recursividade e listas Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
2 Princípio de recursividade Recursividade é um princípio que permite obter a solução de um problema P, a partir das soluções de subproblemas de P, que são similares ao próprio P. De acordo com este princípio, o problema deve ser decomposto em subproblemas cada vez mais simples, até que tenhamos apenas subproblemas triviais. Cada subproblema trivial é resolvido diretamente, sem novas decomposições, e os resultados obtidos são usados para compor a solução do problema original. Exemplo 1. Arrecadação de R$1500,00 para doação Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 2
3 Princípio de recursividade Para resolver um problema P, um algoritmo recursivo deve ser capaz de classificar cada uma das instâncias de P como trivial ou não-trivial. Uma instância trivial deve ser resolvida diretamente, já que não pode ser reduzida a outra mais simples. Uma instância não-trivial deve ser resolvida recursivamente, usando o princípio de recursividade esquematizado a seguir: instância original P( I ) solução de P( I ) reduz usa instância mais simples P( I ) obtém solução de P( I ) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 3
4 Definições recursivas Uma definição recursiva é composta por base: cláusulas que resolvem as instâncias triviais diretamente. passo: cláusulas que resolvem as instâncias não-triviais recursivamente. A cada passo, uma instância não-trivial é reduzida a outra mais simples e ficamos cada vez mais perto de obter uma instância trivial Quando uma instância trivial é obtida, a base faz com que o processo de reduções termine Então, usamos as soluções das instâncias menores para construir as soluções das instâncias maiores Assim, a incapacidade de reduzir instâncias, ou de detectar instâncias triviais, pode fazer o processo entrar em looping, sem jamais resolver o problema reduz usa reduz usa reduz usa Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 4
5 Definições recursivas Exemplo 1. Cálculo de potência com expoente natural % pot(x,n,p) : X elevado a N é P pot(_,0,1). % base pot(x,n,p) :- % passo N>0, % condição para redução M is N-1, % reduz a instância pot(x,m,r), % obtém a solução da instância mais simples P is X*R. % constrói solução da instância original Exercício 1. Cálculo de fatorial % fat(n,f) : o fatorial de N é F fat(0,1). % base fat(n,f) : % passo Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 5
6 Definições recursivas Exemplo 2. Torres de Hanói Problema: mover todos os discos da torre A para a torre C, usando da torre B Restrições: Mover um disco de cada vez Não colocar um disco sobre outro menor Transferir os discos de uma torre para outra, imediatamente A B C Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 6
7 Definições recursivas Exercício 2. Torres de Hanói hanói(0,_,_,_). % base hanói(n,origem,auxiliar,destino) : % passo Complete e teste o predicado hanói/4, com base na idéia esquematizada a seguir: mova n-1 discos de A para B mova 1 disco de A para C mova n-1 discos de B para C A B C A B C A B C A B C Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 7
8 Definições recursivas Exercício 3. Exibição de números em binário exibe_binário(n) :- % base N<2,!, % condição para base write(n). % solução trivial exibe_binário(n) :- % passo % se chegou aqui, então N>=2 Complete e teste exibe_binário/1, com base na idéia esquematizada a seguir: reduz reduz reduz usa usa usa Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 8
9 Relações transitivas Uma relação r/2 é transitiva se r(x,y) e r(y,z) implicam r(x,z) Uma relação transitiva pode ser definida, recursivamente, a partir de uma relação base. Exemplo 3. Ancestrais de uma pessoa pai(adão,cain). pai(adão,abel). pai(adão,seth). pai(seth,enos). ancestral(x,y) :- % base pai(x,y). X X ancestral pai ancestral Y Y ancestral(x,y) :- % passo pai(x,z), ancestral(z,y). pai Z ancestral Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 9
10 Relações transitivas Exercício 4. A relação transitiva acima/2 sobre(b,a). sobre(d,b). sobre(d,c). sobre(e,d). Usando a relação sobre/2, defina a relação acima/2 e faça as consultas a seguir:?- sobre(d,a).?- acima(d,a).?- sobre(d,x).?- acima(d,x). B A E D C?- acima(x,a). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 10
11 Listas
12 Listas Uma lista é uma seqüência de itens separados por vírgulas e delimitados por colchetes?- [X Y] = [terra, sol, lua]. X = terra Y = [sol, lua]?- [X Y] = [estrela]. X = estrela Y = [] cabeça (primeiro item) [X Y] cauda (demais itens)?- [X Y] = []. no O acesso aos itens de uma lista é feito por meio de casamento de padrões! Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 12
13 Listas Exercício 5. Uso de padrões Veja os resultados das consultas:?- [1,2,3,4] = [A R].?- [1,2,3,4] = [A,B R].?- [1,2,3,4] = [A,B,C].?- [1,2,3,4] = [A,B,C R].?- [1,2,3,4] = [A,B,C,D].?- [1,2,3,4] = [A,B,C,D R]. Padrão Itens na lista [] nenhum [X] [X Y] [X,Y] exatamente um pelo menos um exatamente dois [X,Y Z] pelo menos dois [X,Y,Z] exatamente três Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 13
14 Tratamento recursivo de listas Exemplo 4. Exibição dos itens de uma lista /* 1 */ exiba([]). /* 2 */ exiba([x 2 Y 2 ]) :- writeln(x 2 ), exiba(y 2 ). A cada chamada recursiva, as variáveis da regra são renomeadas!?- exiba([a,b]). a b yes?- exiba([a,b]). 2, X 1 =a, Y 1 =[b]?- writeln(a), exiba([b]).?- exiba([b]). 2, X 2 =b, Y 2 =[]?- writeln(b), exiba([]).?- exiba([]). 1?- Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 14
15 Tratamento recursivo de listas Exemplo 5. Verificação de pertinência /* 1 */ membro(x,[x _]). /* 2 */ membro(x 3,[_ Y 3 ]) :- membro(x 3,Y 3 ). A cada chamada recursiva, as variáveis da regra são renomeadas!?- membro(d,[a,b,c,d,e]). yes?- membro(d,[a,b,c,d,e]). 2, X 1 =d, Y 1 =[b,c,d,e]?- membro(d,[b,c,d,e]). 2, X 2 =d, Y 2 =[c,d,e]?- membro(d,[c,d,e]). 2, X 3 =d, Y 3 =[d,e]?- membro(d,[d,e]). 1, X=d?- Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 15
16 Tratamento recursivo de listas Exemplo 6. Tamanho de uma lista /* 1 */ tam([],0). /* 2 */ tam([_ Y 2 ],T 2 ) :- tam(y 2,R 2 ), T 2 is R A cada chamada recursiva, as variáveis são renomeadas!?- tam([a,b],n). N = 2 yes?- tam([a,b],n). 2, Y 1 =[b], T 1 =N?- tam([b],r 1 ), N is R 2, Y 2 =[], R 1 =T 2 is R 1 +1.?- tam([],r 2 ), R 1 is R 2 +1, N is R , R 2 =0?- R 1 is 0+1, N is R R 1 =1?- N is 1+1. N=2?- Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 16
17 Tratamento recursivo de listas Exemplo 7. Concatenação de listas /* 1 */ concat([],b,b). /* 2 */ concat([x 2 A 2 ],B 2,[X 2 C 2 ]) :- concat(a 2,B 2,C 2 ). A cada chamada recursiva, as variáveis são renomeadas!?- concat([a,b],[c,d],r). R = [a,b,c,d] yes?- concat([a,b],[c,d],r). 2, X 1 =a, A 1 =[b], B 1 =[c,d], R=[a C 1 ]?- concat([b],[c,d],c 1 ). 2, X 2 =b, A2=[], B2=[c,d], C 1 =[b C 2 ]?- concat([],[c,d],c 2 ). 1, B 3 =[c,d], C 2 =[c,d c,d]?- Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 17
18 Tratamento recursivo de listas Exercício 6. Altere esta definição para exibir os itens da lista em ordem inversa exiba([]). exiba([x Y]) :- writeln(x), exiba(y). Exercício 7. Acesso ao último item de uma lista Defina o predicado último(l,x), que dá o último item X armazenado na lista L. Exercício 8. Soma dos itens de uma lista Com base na definição do predicado tam/2, defina o predicado soma(l,s) determina a soma S dos itens armazenados na lista L. Exercício 9. Exclusão de um item da lista soma(l,s), que Usando o predicado concat/3, defina o predicado exclui(x,l1,l2), que dá a lista L2 L1. L2 resultante da exclusão do item X da lista L1 Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 18
19 Tratamento recursivo de listas Exercício 10. Permutação dos itens de uma lista Usando o predicado exclui/3, defina o predicado permutação(l,p), que dá uma permutação P da lista L. Exercício 11. Inversão de uma lista Usando o predicado concat/3, defina o predicado inverte(l,i), que inverte a ordem dos itens na lista L, produzindo a lista I. Exercício 12. Item máximo de uma lista de números Sem usar nenhum predicado previamente definido, defina o predicado máximo(l,m) que dá o item de valor máximo M armazenado numa lista de números L. máximo(l,m), Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 19
20 Fim
Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
Aula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Programação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Notas sobre Definições Recursivas
Notas sobre Definições Recursivas Anjolina Grisi de Oliveira Centro de Informática Universidade Federal de Pernambuco CIn-UFPE Introdução A torre de Hanói Jogo antigo inventado pelo matemético francês
MC102 Aula 27 Recursão II
MC102 Aula 27 Recursão II Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Relembrando 2 Cálculo de Potências 3 Torres de Hanoi 4 Recursão e Backtracking 5 Exercício (Instituto
Macros e funções. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
Macros e funções Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Fases na criação de um executável *.H *.LIB Preprocessador Compilador Linkeditor
Exercícios de Linguagem C
Exercícios de Linguagem C Aspectos básicos 1. Fazer um programa para receber um número inteiro de segundos do usuário e imprimir a quantidade correspondente em horas, minutos e segundos. 2. Fazer um programa
Busca no espaço de estados (parte I)
Busca no espaço de estados (parte I) Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Idéia básica A idéia básica da busca no espaço de estados
Utilização do Conjunto de Cantor para a resolução da Torre de Hanoi
Utilização do Conjunto de Cantor para a resolução da Torre de Hanoi Filipe Daniel Lemos FEUP 030509045 Dezembro de 2004 Resumo Segundo trabalho para a cadeira de Física dos sitemas dinâmicos do curso de
Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
Lista de Figuras Figura 1 1: Figura 1 2: Figura 1 3: Figura 1 4: Figura 1 5: Figura 1 6: Figura 1 7: Figura 2 1: Figura 2 2: Figura 2 3: Figura 2 4:
Lista de Figuras Figura 1 1: Diagrama de Funcionamento do Laço while 34 Figura 1 2: Diagrama de Funcionamento do Laço do-while 35 Figura 1 3: Diagrama de Funcionamento do Laço for 36 Figura 1 4: Diagrama
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II
05 Análise de Algoritmos (parte 4) SCC201/501 - Introdução à Ciência de Computação II Prof. Moacir Ponti Jr. www.icmc.usp.br/~moacir Instituto de Ciências Matemáticas e de Computação USP 2010/2 Moacir
Estruturas de Dados em Python
Estruturas de Dados em Python Carlos Camarão de Março de 7 Introdução Na segunda parte do curso vamos aprender a programar com estruturas (ou coleções) de dados, em Python. Python é uma linguagem orientada
Exercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
SCC Capítulo 2 Recursão
SCC-501 - Capítulo 2 João Luís Garcia Rosa 1 1 Departamento de Ciências de Computação Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos http://www.icmc.usp.br/~joaoluis
# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira
# Estrutura de Dados # Aula 08 Recursão (conceito, utilização, exemplos) Prof. Leinylson Fontinele Pereira Na aula anterior... Alocação Dinâmica de Memória Introdução 3 O que vamos aprender? Recursividade
Algoritmos e Estruturas de Dados I
Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin ([email protected]) Aula 10 (Baseada nos slides do Prof. André Balan) Recursão Recursão Da wikipedia: A recursão é o processo pelo qual
Linguagens Formais e Problemas de Decisão
Linguagens Formais e Problemas de Decisão Mário S. Alvim ([email protected]) Fundamentos de Teoria da Computação (FTC) DCC-UFMG (2018/02) Mário S. Alvim ([email protected]) Linguagens Formais e Problemas
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA
INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA PARA A COMPUTAÇÃO PROF. DANIEL S. FREITAS UFSC - CTC - INE Prof. Daniel S. Freitas - UFSC/CTC/INE/2007 p.1/30 3 - INDUÇÃO E RECURSÃO 3.1) Indução Matemática 3.2)
Subindo uma escada. Ação: Subir 1 degrau da escada
Recursão Subindo uma escada Ação: Subir 1 degrau da escada 2 Subindo uma escada Ação: Subir 1 degrau da escada 3 Subindo uma escada Ação: E agora??? 4 Subindo uma escada Ação: E agora??? Tem uma escada...
Lista de Exercícios 4
Introdução à Ciência da Computação - 1191 Lista de Exercícios Funções Frutíferas Observações: As listas de exercícios serão corrigidas por um corretor automático, portanto é necessário que as entradas
LISTA DE EXERCÍCIOS. Humberto José Bortolossi
GMA DEPARTAMENTO DE MATEMÁTICA APLICADA LISTA DE EXERCÍCIOS Matemática Básica Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ 06 O Princípio da Indução Finita e Aplicações [01] Usando
Algoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO
1 Algoritmos e Programação AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO 2 Recursividade A recursão é o processo pelo qual passa um
Raciocínio Automatizado
Raciocínio Automatizado Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Raciocínio automatizado simula raciocínio lógico por meio
Técnicas de projeto de algoritmos: Indução
Técnicas de projeto de algoritmos: Indução ACH2002 - Introdução à Ciência da Computação II Delano M. Beder Escola de Artes, Ciências e Humanidades (EACH) Universidade de São Paulo [email protected] 08/2008
Análise de Complexidade para algoritmos iterativos e recursivos
Disciplina: Matemática Discreta Agostinho Iaqchan Ryokiti Homa Análise de Complexidade para algoritmos iterativos e recursivos Algoritmos iterativos - complexidade expressa através de somatórios. Algoritmos
SCC0601 Projeto de Algoritmos. Recursão
SCC0601 Projeto de Algoritmos Recursão Definição Uma função é dita recursiva quando é definida em seus próprios termos, direta ou indiretamente Dicionário Michaelis: ato ou efeito de recorrer Recorrer:
ALGORITMOS I. Procedimentos e Funções
Procedimentos e Funções Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 MÓDULOS São blocos de instruções que realizam tarefas específicas. Carregado uma vez e pode ser executado quantas vezes
SCC Introdução à Ciência de Computação II. Recursão
SCC0601 - Introdução à Ciência de Computação II Recursão Definição Uma função é dita recursiva quando é definida em seus próprios termos, direta ou indiretamente Dicionário Michaelis: ato ou efeito de
Fernando Silva DCC-FCUP. Estruturas de Dados
3. Recursividade, Bactracking e Dividir-para-Conquistar Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 3. Recursividade, Bactracking e Dividir-para-Conquistar Estruturas de Dados
Contagem I. Figura 1: Abrindo uma Porta.
Polos Olímpicos de Treinamento Curso de Combinatória - Nível 2 Prof. Bruno Holanda Aula 4 Contagem I De quantos modos podemos nos vestir? Quantos números menores que 1000 possuem todos os algarismos pares?
Algoritmos e Estruturas de Dados I. Recursividade. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I Recursividade Pedro O.S. Vaz de Melo Problema Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo quicksort: 1. Seja
LISTA DE EXERCÍCIOS MÊS 04
São José dos Campos, 05 de Junho de 2008 Disciplina: CES 10 Introdução à Computação. Semestre 2008-2º Período Professor: Carlos Henrique Quartucci Forster Estagiária: Michelle de Oliveira Parreira Instituto
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS. Bruno Maffeo Departamento de Informática PUC-Rio
USANDO UM MÉTODO INDUTIVO PARA RESOLVER PROBLEMAS Bruno Maffeo Departamento de Informática PUC-Rio MÉTODO INDUTIVO O método indutivo para resolver problemas aqui empregado inspira-se na formulação mais
Revisão: Tipo Abstrato de Dados Recursividade
Algoritmos e Estrutura de Dados II Revisão: Tipo Abstrato de Dados Recursividade Prof a Karina Oliveira [email protected] Introdução Estudo das estruturas de dados envolve dois objetivos complementares:
Circuitos Digitais Segunda Lista de Exercícios
Circuitos Digitais Segunda Lista de Exercícios Observação: o início da lista é composto dos problemas recomendados do livro-texto. exercícios nas últimas duas páginas da lista são novos (não estão no livro-texto).
decomposição de Cholesky.
Decomposição LU e Cholesky Prof Doherty Andrade - DMA-UEM Sumário 1 Introdução 1 2 Método de Eliminação de Gauss 1 3 Decomposição LU 2 4 O método de Cholesky 5 5 O Algoritmo para a decomposição Cholesky
Recursividade. Objetivos do módulo. O que é recursividade
Recursividade Objetivos do módulo Discutir o conceito de recursividade Mostrar exemplos de situações onde recursividade é importante Discutir a diferença entre recursividade e iteração O que é recursividade
Modelagem com relações de recorrência. Exemplo: Determinada população dobra a cada ano; população inicial = 5 a n = população depois de n anos
Relações de recorrência 8. RELAÇÕES DE RECORRÊNCIA Introdução a relações de recorrência Modelagem com relações de recorrência Solução de relações de recorrência Exemplos e aplicações Relações de recorrência
SISTEMAS DE NUMERAÇÃO
MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA BACHARELADO EM CIÊNCIA DA COMPUTAÇÃO DISCIPLINA: ELETRÔNICA
Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo
PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó
Introdução Paradigmas
Introdução Paradigmas Recursividade Algoritmos tentativa e erro Divisão e conquista Programação dinâmica Algoritmos gulosos Algoritmos aproximados 1 Introdução O projeto de algoritmos requer abordagens
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que
1o sem profa. daniela m. vieira. (a) f(x, y) = 3x y no conjunto A de todos (x, y) tais que x 0, y 0, y x 3, x + y 4 e
mat51 - cálculo várias variáveis i - licenciatura 1o sem 011 - profa daniela m vieira SÉTIMA LISTA DE EXERCÍCIOS (1) Estude a função dada com relação a máximo e mínimo no conjunto dado (a) f(x, y) = x
1/50. Conceitos Básicos. Programa Básico
1/50 Conceitos Básicos Programa Básico 2/50 Operações básicas de entrada e saída #include main retorna um inteiro int main() { std::cout
Recursividade. Estrutura de Dados. Prof. Kleber Rezende
Recursividade Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Em aulas anteriores fizemos uma função que permite calcular o fatorial de um número. Naquela função, a cada nova iteração o
Listas em Prolog. Listas
Listas em Prolog Esta aula trata da estrutura de dados lista e programas Prolog para processamento de listas Inteligência Artificial 1 Listas Lista é uma das estruturas mais simples em Prolog, muito comum
Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Bacharelado em Sistemas de Informação Estruturas de Dados I Lista II
Universidade Federal da Grande Dourados Faculdade de Ciências Exatas e Tecnologia Bacharelado em Sistemas de Informação Estruturas de Dados I Lista II Professor: MSc. Rodrigo Porfírio da Silva Sacchi 30
EXERCÍCIOS AVALIATIVOS 2º TRIMESTRE MATEMÁTICA
ALUNO(a): EXERCÍCIOS AVALIATIVOS º TRIMESTRE MATEMÁTICA Nº: 8º ANO TURMA: PROF.: DATA: / /019 UNIDADE: VV JC JP PC Valor: 4,0 LISTA DE EXERCÍCIOS Essa lista de exercícios contém as atividades cujas notas
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Professor Ariel da Silva Dias Algoritmos Divisão e Conquista Construção incremental Resolver o problema para um sub-conjunto dos elementos de entrada; Então, adicionar
Programação Lógica. Programação Lógica PROLOG
Programação Lógica PROLOG A programação em lógica se desenvolveu no início dos anos 70 a partir de alguns trabalhos sobre prova de teoremas. Desde então ela tem demonstrado ser um formalismo simples, mas
Recursividade. Recursividade
A recursão é uma técnica que define um problema em termos de uma ou mais versões menores deste mesmo problema. Esta ferramenta pode ser utilizada sempre que for possível expressar a solução de um problema
Aula 10 Comandos de Repetição For e Do While
Aula 10 Comandos de Repetição For e Do While 1) O comando for É muito comum usarmos o comando while para repetir alguns comandos um número definido de vezes. Fazemos isso usando um contador. Considere
MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016
MC102 Aula 26 Recursão Instituto de Computação Unicamp 17 de Novembro de 2016 Roteiro 1 Recursão Indução 2 Recursão 3 Fatorial 4 O que acontece na memória 5 Recursão Iteração 6 Soma em um Vetor 7 Números
Descrevendo Circuitos Lógicos (Continuação) Teoremas Booleanos. CPCX UFMS Slides: Prof. Renato F. dos Santos Adaptação: Prof. Fernando Maia da Mota
Descrevendo Circuitos Lógicos (Continuação) Teoremas Booleanos CPCX UFMS Slides: Prof. Renato F. dos Santos Adaptação: Prof. Fernando Maia da Mota 3.10 Teoremas booleanos Investigaremos os vários teoremas
Introdução à Algoritmos. Professora: Fabíola Gonçalves.
Introdução à Algoritmos Professora: Fabíola Gonçalves. AGENDA Algoritmos Comandos Estrutura de Algoritmos Constantes Variáveis Comentários COMANDOS Comandos de uma linguagem de programação podem estar:
Aula 06: Análise matemática de algoritmos recursivos
Aula 06: Análise matemática de algoritmos recursivos David Déharbe Programa de Pós-graduação em Sistemas e Computação Universidade Federal do Rio Grande do Norte Centro de Ciências Exatas e da Terra Departamento
Equações Diofantinas III
Polos Olímpicos de Treinamento Curso de Teoria dos Números - Nível Prof. Samuel Feitosa Aula 13 Equações Diofantinas III Já estudamos as equações diofantinas lineares e equações em que alguma fatoração
Introdução a Computação
O que é um computador? Um computador é uma coleção de componentes que realizam operações lógicas e aritméticas sobre um grande volume de dados. (F. K. Miyazawa) Um computador é composto por: Introdução
Divisão e conquista. Eficiência de divisão e conquista
Divisão e conquista Divisão: resolver recursivamente problemas mais pequenos (até caso base) Conquista: solução do problema original é formada com as soluções dos subproblemas á divisão quando o algoritmo
Python: Recursão. Claudio Esperança
Python: Recursão Claudio Esperança Recursão É um princípio muito poderoso para construção de algoritmos A solução de um problema é dividido em Casos simples: São aqueles que podem ser resolvidos trivialmente
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas v e coerentes,, que resolvam com qualidade os problemas
Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo
PMR2300 Escola Politécnica da Universidade de São Paulo Árvore: estrutura composta por nós e arestas entre nós. As arestas são direcionadas ( setas ) e: um nó (e apenas um) é a raiz; todo nó (exceto a
Lema do Bombeamento. Aplicação para Linguagens Regulares e Livres de Contexto. Maria Adriana Vidigal de Lima. Abril
Aplicação para Linguagens Regulares e Livres de Contexto Abril - 2009 1 Linguagens Não-Regulares 2 Propriedades das Linguagens Regulares Todas as linguagens finitas (com um número finito de palavras) são
Aula 4 Expressões e Operadores Cleverton Hentz
Aula 4 Expressões e Operadores Cleverton Hentz Sumário de Aula } Expressões } Operadores } Linearização de Expressões 2 Expressões Uma expressão é composta por variáveis, constantes, ou qualquer combinação
INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3
INTRODUÇÃO À COMPUTAÇÃO - EPET006 Aula 3 Heleno Pontes Bezerra Neto - [email protected] 2.3 Linguagem de Programação 2.4. Introdução ao MATLAB 2. NOÇÕES DE LÓGICA E ALGORITMOS Exercícios Escrever
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser
É interessante comparar algoritmos para valores grandes de n. Para valores pequenos de n, mesmo um algoritmo ineficiente não custa muito para ser executado 1 Fazendo estimativas e simplificações... O número
Algoritimos e Estruturas de Dados III CIC210
Algoritimos e Estruturas de Dados III CIC210 Divisão e Conquista Haroldo Gambini Santos Concurso Universidade Federal de Ouro Preto - UFOP 3 de setembro de 2009 Haroldo Gambini Santos Divisão e Conquista
Fundamentos e prática de Prolog
Disciplina: Lógica Aplicada à Computação Nome: Matrícula: 1. Considere a seguinte base de conhecimentos Prolog: pai(josé,ana). % "José é pai de Ana" pai(josé,carlos). pai(felipe,fernanda). pai(jo~ao,pedro).
Construção de Algoritmos II Aula 06
exatasfepi.com.br Construção de Algoritmos II Aula 06 André Luís Duarte Porque mil anos são aos teus olhos como o dia de ontem que passou, e como a vigília da noite. Salmos 90:4 Recursividade e complexidade
Normalização: 3 a Forma Normal
Normalização: 3 a Forma Normal Fernando Lobo Base de Dados, aula 10 1 / 14 3 a Forma Normal: Motivação Por vezes a decomposição para BCNF não preserva as DF s da relação original. Nesses casos, não devemos
Análise de Problemas Recursivos. Algoritmos e Estruturas de Dados Flavio Figueiredo (
Análise de Problemas Recursivos Algoritmos e Estruturas de Dados 2 2017-1 Flavio Figueiredo (http://flaviovdf.github.io) 1 Lembrando de Recursividade Procedimento que chama a si mesmo Recursividade permite
