Generating Fast, Sorted Permutation

Tamanho: px
Começar a partir da página:

Download "Generating Fast, Sorted Permutation"

Transcrição

1 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho Túlio Ângelo M. Toffolo Lista de Exercícios 07 Força Bruta, Permutações, Recursividade Instruções Todos os exercícios que envolvem programas devem ser resolvidos através de programas; Na solução dos exercícios, devem ser utilizados os conceitos listados no eçalho desta lista; Para cada exercício, deve ser criado um arquivo com nome Nome_ListaX_ExeY.c, em que Nome denota o nome do aluno, X denota o número da lista de exercícios e Y denota o número do exercício; Os códigos fonte deverão ser primeiramente submetidos ao Uva, e após serem aceitos, devem ser entregues através do Moodle, sem zipar; Códigos copiados ou tentativas de trapaça acarretam em perda total da lista de exercícios; Eventuais dúvidas podem ser sanadas com o professor; A data da entrega é até o início da próxima aula prática. ID:10098 Generating Fast, Sorted Permutation Gerar permutações sempre foi um problema importante na ciência da computação. Neste problema, você terá que gerar a permutação de uma dada string em ordem crescente. Lembre que seu algoritmo deve ser eficiente. A primeira linha da entrada contém um inteiro n, que indica quantas strings seguem. As próximas n linhas contém n strings. As strings conterão apenas caracteres alfanuméricos e nunca conterão espaços. O maior comprimento de uma string é 10. Para cada string de entrada, escreva todas as permutações possíveis em ordem crescente. Note que as strings devem ser tratadas como case-sensitive e nenhuma permutação deve ser repetida. Uma linha em branco segue cada conjunto de saída. Exemplo de Exemplo de ab ba 3 ab

2 Knuth s Permutation ID: Existem algumas técnicas de geração de permutação no livro The Art of Computer Programming de Knuth. Um dos processos é como segue: Cada permutação A1, A2,... An-1 formam n outras permutações, através da inserção do caractere n em todas as posições possíveis, obtendo n A1 A2... An-1, A1 n A2... An-1,..., A1 A2... n An-1, A1 A2... An-1 n Por exemplo, a partir da permutação 231, inserindo 4 em todas as posições possíveis temos Seguindo esta regra, você tem que gerar todas as permutações de um dado conjunto de caracteres. Todos os caracteres serão diferentes e em número menor que 10, todos alfanuméricos. Este processo é recursivo e você terá que fazer a chamada inicial com o primeiro caractere e continuar a inserir caracteres em ordem. A entrada e saída de exemplos clarearão isto. Sua saída deve casar perfeitamente a entrada de exemplo. A entrada contém várias linhas. Cada linha será uma sequência de caracteres. Haverá menor que dez caracteres alfanuméricos em cada linha. A entrada terminará por EOF. Para cada linha da entrada, gere a permutação dos caracteres. A ordenação da entrada é muito importante para a saída. Isto quer dizer que as permutações e não são a mesma coisa. Separe cada conjunto de permutações por uma linha em branco. Exemplo de Exemplo de d d d d bcda d d d cbda acdb cadb cdab cdba abdc badc bdac bdca adbc

3 d d d adcb d d d

4 Perfect Cubes ID: 386 Por centenas de anos, o Último Teorema de Fermat, que dizia simplesmente que para n > 2 não existem inteiros a, b, c > 1 tais que a n = b n + c n, permaneceu não provado. (acredita-se que uma prova recente é correta, mas ainda continua sob escrutínio) [Nota: o teorema foi demonstrado corretamente em 1994] É possível, porém, encontrar inteiros maiores que 1 que satisfaçam a equação de Cubos Perfeitos a 3 = b 3 + c 3 + d 3 (e. g., um cálculo rápido mostra que a equação 12 3 = é verdadeira). Este problema exige que você escreva um problema que encontre todos os conjuntos de números (a, b, c, d) que satisfaçam a equação para a <=200. A saída deve ser listada como apresentado abaixo, um cubo perfeito por linha, em ordem não crescente de a (i. e., as linhas devem ser ordenadas por seus valores). Os valores de b, c e d devem também ser listados em ordem não crescente na linha. Existem diversos valores os quais podem ser produzidos a partir de distintos conjuntos de triplas b, c e d. Nestes casos, as triplas com o menor valor de b devem ser listadas primeiro. A primeira parte da saída é mostrada aqui: Cube = 6, Triple = (3,4,5) Cube = 12, Triple = (6,8,10) Cube = 18, Triple = (2,12,16) Cube = 18, Triple = (9,12,15) Cube = 19, Triple = (3,10,18) Cube = 20, Triple = (7,14,17) Cube = 24, Triple = (12,16,20) Nota: O programador precisará se preocupar com eficiência. O limite de tempo oficial é de 2 minutos ou duas vezes o tempo gasto pela solução gerada pelo juiz, e é possível escrever uma solução para este problema que exceda este tempo.

5 Joseph ID: 305 O problema de Joseph é notoriamente conhecido. Para aqueles não familiares com o problema original: Entre n pessoas enumeradas 1, 2,..., n dispostas em um círculo, toda m-ésima pessoa será executada, poupando-se apenas a vida da última pessoa. Joseph foi uma pessoa esperta o suficiente para escolher a pessoa da última pessoa viva, logo, salvando sua própria vida para nos dar a notícia sobre o incidente. Por exemplo, quando n=6 e m=5, então as pessoas serão executadas na ordem 5, 4, 6, 2, 3 e o 1 será poupado. Suponha que existem k mocinhos e k vilões. No círculo, os primeiros k são os mocinhos e os últimos k são os vilões. Você tem que determinar o m mínimo tal que todos os vilões serão executados antes do primeiro mocinho. O arquivo de entrada consiste de linhas separadas contendo k. A última linha no arquivo de entrada contém 0. Você pode supor que 0 < k < 14. A saída consistirá de linhas separadas contendo o m correspondente ao k do arquivo de entrada. Exemplo de Exemplo de

6 Permalex ID: 153 Dada uma string, podemos permutar os caracteres individualmente para formar novas strings. Se pudermos impor uma ordem aos caracteres (digamos, ordem alfabética), então as strings por si próprias podem ser ordenadas e a qualquer permutação pode ser designada uma posição naquela ordenação. Por exemplo, a string a dá origem às 12 permutações distintas: a 1 a 5 a 9 a 2 a 6 caab 10 a 3 baac 7 a 11 a 4 a 8 a 12 Logo a string a pode ser caracterizada nesta sequência como 5. Escreva um programa que lerá uma string e determine sua posição na sequência ordenada das permutações de seus caracteres constituintes. Note que os números das permutações pode ser muito grande, porém, garantimos que nenhuma string terá posição maior que 2 31 = A entrada consistirá de uma série de linhas, cada uma contendo uma string. Cada string consistirá de até 30 letras minúsculas, não necessariamente distintas. O arquivo será terminado por uma linha contendo um único #. A saída consistirá de uma série de linhas, uma para cada linha da entrada. Cada linha consistirá da posição da string na sequência, justificada à direita em um campo de tamanho 10. Exemplo de Exemplo de aa #

7 2 the 9s ID: Um truque bem conhecido para saber se um inteiro N é múltiplo de 9 é computar a soma S de seus dígitos. Se S é um múltiplo de nove, então N também é. Este é um teste recursivo, e a profundidade da recursão necessária para obter a resposta sobre N é chamada de 9-degree de N. Seu trabalho é, dado um número positivo N, determinar se é um múlitplo de 9, e, se for, o seu 9-degree. A entrada é um arquivo tal que cada linha contém um número positivo. Uma linha contendo o número 0 é o final da entrada. Os números dados podem conter até 1000 dígitos. A saída do programa deve indicar, para cada número da entrada, se é um número múltiplo de 9 e caso seja, seu 9-degree. Veja o exemplo de saída para a formatação esperada da saída. Exemplo de Exemplo de is a multiple of 9 and has 9-degree 3. 9 is a multiple of 9 and has 9-degree is not a multiple of 9.

Aritmética de Alta Precisão

Aritmética de Alta Precisão Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Lista de Exercícios 09

Lista de Exercícios 09 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho

Leia mais

Lista de Exercícios 12 Geometria

Lista de Exercícios 12 Geometria Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho

Leia mais

Probabilidade. Contagem

Probabilidade. Contagem Probabilidade Contagem Problema da Contagem no Estudo da Probabilidade Conforme definição clássica, podemos determinar uma probabilidade calculando a relação entre o total de eventos de sucesso e o total

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova 2 Na aula de hoje Técnicas básicas de contagem; Tentativa e Erro; Recursividade.

Leia mais

Recursividade, Tentativa e Erro

Recursividade, Tentativa e Erro Recursividade, Tentativa e Erro Túlio Toffolo www.toffolo.com.br Marco Antônio Carvalho marco.opt@gmail.com BCC402 Aula 07 Algoritmos e Programação Avançada Na aula anterior Prova 2 Na aula de hoje Técnicas

Leia mais

Lista de Exercícios 05 Strings

Lista de Exercícios 05 Strings Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: Algoritmos e Programação Avançada Professores: Marco Antonio M. Carvalho

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

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/27 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 15: Ordenação: ShellSort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes Email: reifortes@iceb.ufop.br

Leia mais

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010

Trabalho Prático 1. Valor: 1,0 pontos (10% da nota total) Data de Entrega: 02/05/2010 Universidade Federal de Ouro Preto Instituto de Ciências Exatas e Biológicas Programa de Pós-Graduação em Ciência da Computação Projeto e Análise de Algoritmos - 1 o semestre de 2010 Professor: David Menotti

Leia mais

Rosane Minghim e Guilherme P. Telles

Rosane Minghim e Guilherme P. Telles Introdução à Computação Rosane Minghim e Guilherme P. Telles 9 de Agosto de 2012 Capítulo 7 Recursão 7.1 Considerações Iniciais A Recursão é uma característica, comum em matemática, de definir elementos

Leia mais

Lista de Exercícios 3

Lista de Exercícios 3 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013 Lista 1 - PMR2300 Fabio G. Cozman 3 de abril de 2013 1. Qual String é impressa pelo programa: p u b l i c c l a s s What { p u b l i c s t a t i c void f ( i n t x ) { x = 2 ; p u b l i c s t a t i c void

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

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)

Leia mais

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Toffolo 2012/1 2 2 aulas teóricas e 2 aulas práticas (ambas em laboratório) Terças às 17:10, lab 22 do DECOM Prof. Túlio

Leia mais

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores

BCC201 Introdução à Programação ( ) Prof. Reinaldo Silva Fortes. Prática 04 Estruturas de Dados Homogêneas Vetores Professor David Menotti (menottid@gmail.com) BCC0 Introdução à Programação (0-0) Prof. Reinaldo Silva Fortes Prática 0 Estruturas de Dados Homogêneas Vetores ) Escreva um programa que armazene em um vetor

Leia mais

Divisão e Conquista. Dado um conjunto de pontos no espaço bidimensional, você deve encontrar a distância entre os dois pontos mais próximos.

Divisão e Conquista. Dado um conjunto de pontos no espaço bidimensional, você deve encontrar a distância entre os dois pontos mais próximos. Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Lista de Exercícios 2

Lista de Exercícios 2 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:

Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias: ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros

Leia mais

10 opções. 10 opções. 9 opções. 22 opções. 23 opções

10 opções. 10 opções. 9 opções. 22 opções. 23 opções Contagem Princípio Fundamental de Contagem Se algum procedimento pode ser realizado de n 1 maneiras diferentes; se, seguindo este, um segundo procedimento pode ser realizado de n 2 maneiras diferentes;

Leia mais

MC102 Aula 27 Recursão II

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

Leia mais

Lista sobre Estruturas de Dados

Lista sobre Estruturas de Dados Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Lista sobre Estruturas de Dados

Lista sobre Estruturas de Dados Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Probabilidade I. Departamento de Estatística. Universidade Federal da Paraíba. Prof. Tarciana Liberal (UFPB) Aula 3 04/14 1 / 20

Probabilidade I. Departamento de Estatística. Universidade Federal da Paraíba. Prof. Tarciana Liberal (UFPB) Aula 3 04/14 1 / 20 Probabilidade I Departamento de Estatística Universidade Federal da Paraíba Prof. Tarciana Liberal (UFPB) Aula 3 04/14 1 / 20 Alguns Conceitos Básicos de Contagem As ideias de contagem se relacionam com

Leia mais

CI218 - Trabalho - 2 o sem/2016

CI218 - Trabalho - 2 o sem/2016 CI218 - Trabalho - 2 o sem/2016 Entrega: NOVO PRAZO DE ENTREGA: 25/11/2016 Objetivo: Fazer a normalização de uma relação na FNBC e na 3FN. Entrada: A entrada tem o seguinte formato: a primeira linha deve

Leia mais

Probabilidade. Contagem

Probabilidade. Contagem Probabilidade Contagem Problema da Contagem no Estudo da Probabilidade Conforme definição clássica, podemos determinar uma probabilidade calculando a relação entre o total de eventos de sucesso e o total

Leia mais

Backtracking. Pequenos Bispos

Backtracking. Pequenos Bispos Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professores: Túlio A. Machado Toffolo

Leia mais

Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul

Recursão. Aula 1. Liana Duenha. Faculdade de Computação Universidade Federal de Mato Grosso do Sul Recursão Aula 1 Liana Duenha Faculdade de Computação Universidade Federal de Mato Grosso do Sul Algoritmos e Programação II, Análise de Sistemas, 2010 Martinez & Rubert (FACOM) Recursão APIIAS 1 / 25 Conteúdo

Leia mais

Estruturas de Dados Tabelas de Espalhamento

Estruturas de Dados Tabelas de Espalhamento Estruturas de Dados Tabelas de Espalhamento Prof. Eduardo Alchieri (introdução) Uma estrutura como, as árvores binárias de busca, que trabalhe na ordem de log n é muito eficiente, mas em algumas situações

Leia mais

> Princípios de Contagem e Enumeração Computacional 1/13

> Princípios de Contagem e Enumeração Computacional 1/13 Princípios de Contagem e Enumeração Computacional > Princípios de Contagem e Enumeração Computacional 1/13 Objetivos Contar/listar o número de elementos de conjuntos finitos Aplicações > Princípios de

Leia mais

Recursividade. Objetivos do módulo. O que é recursividade

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

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo

Leia mais

3ra. Avaliação - Grupo A

3ra. Avaliação - Grupo A Universidade Federal de Ouro Preto - UFOP Disciplina: BCC 201 - Introdução à Programação Professor: Guillermo Cámara-Chávez Aluno: No. A cola não será tolerada. Se alguém for pego colando, será reprovado

Leia mais

Algoritmo e Programação Matemática

Algoritmo e Programação Matemática Algoritmo e Programação Matemática Fundamentos de Algoritmos Parte 1 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Dados A funcionalidade principal de um computador

Leia mais

Faculdade de Computação

Faculdade de Computação UNIVERSIDADE FEDERAL DE UBERLÂNDIA Faculdade de Computação Disciplina : Teoria da Computação - 1 0 Semestre 007 Professora : Sandra Aparecida de Amo Solução da Lista de Exercícios n o 1 Exercícios de Revisão

Leia mais

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

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/18 4 - INTROD. À ANÁLISE COMBINATÓRIA 4.1) Arranjos

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 2

ESTRUTURAS DE REPETIÇÃO - PARTE 2 AULA 16 ESTRUTURAS DE REPETIÇÃO - PARTE 2 16.1 A seqüência de Fibonacci Um problema parecido, mas ligeiramente mais complicado do que o do cálculo do fatorial (veja as notas da Aula 14), é o do cálculo

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos

Leia mais

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

Á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

Leia mais

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

BCC402 Algoritmos e Programação Avançada. Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1 Introdução ao Curso 2 Carga horária semanal 2 aulas teóricas e 2 aulas práticas (ambas em laboratório)

Leia mais

Fixação de conteúdo teórico

Fixação de conteúdo teórico BCC701 Programação de Computadores (2019-01) Universidade Federal de Ouro Preto - MG Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 [Aula 12] Estruturas de Repetição (prática 2) Fixação

Leia mais

Quarto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice simples ou linear. Descrição de páginas de disco

Quarto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice simples ou linear. Descrição de páginas de disco Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de

Leia mais

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo

Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo Sexta Lista: Geração de Números Pseudo-Aleatórios e Método de Monte Carlo Antônio Carlos Roque da Silva Filho e Cristiano R. F. Granzotti 26 de junho de 2017 Os exercícios desta lista devem ser resolvidos

Leia mais

Aula prática 5. Funções Recursivas

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

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes

Leia mais

Análise Combinatória. Matemática Discreta. Prof Marcelo Maraschin de Souza

Análise Combinatória. Matemática Discreta. Prof Marcelo Maraschin de Souza Análise Combinatória Matemática Discreta Prof Marcelo Maraschin de Souza Introdução Combinatória é o ramo da matemática que trata de contagem. Esses problema são importantes quando temos recursos finitos,

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Á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ó

Leia mais

Lista de Exercícios 5

Lista de Exercícios 5 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC201 Introdução a Programação Professores: Túlio A. M. Toffolo e Puca

Leia mais

Técnicas de análise de algoritmos

Técnicas de análise de algoritmos CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br

Leia mais

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa

Ordenação Externa. Ordenação Externa. Ordenação Externa. Ordenação Externa Ordenação Externa Ordenação Externa Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação

Leia mais

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático

Victor Hugo Andrade Soares monitor João Vitor dos Santos Tristão Primeiro Trabalho Prático Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 27 Square root algorithms Combining algorithms Integer partitions Mo s algorithm Square

Leia mais

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos:

08/05/2012. Tipos de dados. Tipos de dados. Elementos Básicos. Tipos de dados. Elementos Básicos Tipos de dados. Dados e seus tipos: INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DA PARAÍBA CAMPUS CAMPINA GRANDE 1 2 Elementos Básicos Tipos de dados Dados e seus tipos: Computadores lidam com diversos tipos de dados: numéricos,

Leia mais

Lista de Exercícios 04

Lista de Exercícios 04 Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Disciplina: BCC202 - Estruturas de Dados I Professor: Túlio Toffolo (www.decom.ufop.br/toffolo)

Leia mais

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b. Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Ciências de Computação Disciplina de Algoritmos e Estruturas de Dados II docente Profa. Dra. Cristina Dutra de

Leia mais

SCC Capítulo 2 Recursão

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

Leia mais

Estruturas de Repetição

Estruturas de Repetição Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números

Leia mais

Árvores. Thiago Martins, Fabio Gagliardi Cozman. PMR2300 / PMR3201 Escola Politécnica da Universidade de São Paulo

Á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ó

Leia mais

Aula 15 - Estruturas de Repetição (p3)

Aula 15 - Estruturas de Repetição (p3) BCC701- Programação de Computadores I Aula 15 - Estruturas de Repetição (p3) Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM http://www.decom.ufop.br/bcc701 BCC701-2019-01

Leia mais

MC102 Aula 26. Instituto de Computação Unicamp. 17 de Novembro de 2016

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

Leia mais

CIC 111 Análise e Projeto de Algoritmos II

CIC 111 Análise e Projeto de Algoritmos II CIC 111 Análise e Projeto de Algoritmos II Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 22 Combinatorics Binomial coefficients Catalan numbers Inclusion-exclusion Burnside

Leia mais

Ficha 1 Noções de sequência e decisão em algoritmia

Ficha 1 Noções de sequência e decisão em algoritmia Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução

Leia mais

MatrizFormatador. Introdução

MatrizFormatador. Introdução MatrizFormatador (versão preliminar) A planilha MatrizFormatador foi criada para gerar a entrada de dados da planilha MatrizConstrutor. A MatrizConstrutor formula problemas de planejamento florestal usando

Leia mais

Programação Universidade da Beira Interior Departamento de Informática 2007/08

Programação Universidade da Beira Interior Departamento de Informática 2007/08 Programação Universidade da Beira Interior Departamento de Informática 1. Faça o fluxograma e o respectivo programa que resolva equações de 2º grau (ax 2 +bx+c=0). O programa deverá pedir ao utilizador

Leia mais

ESTRUTURAS DE REPETIÇÃO - PARTE 3

ESTRUTURAS DE REPETIÇÃO - PARTE 3 AULA 17 ESTRUTURAS DE REPETIÇÃO - PARTE 3 17.1 O cálculo da média aritmética Considere o seguinte problema: dados um número inteiro positivo, n, e uma seqüência, x 1, x 2,..., x n, com n números reais,

Leia mais

Tabelas Hash. Prof. Túlio Toffolo BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I

Tabelas Hash. Prof. Túlio Toffolo  BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Tabelas Hash Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aulas 23 e 24 Algoritmos e Estruturas de Dados I Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa

Leia mais

414 - Encontro das Superfícies 92,3%

414 - Encontro das Superfícies 92,3% 44 - Encontro das Superfícies 92,3% Um dispositivo de aquisição de imagens provê imagens digitais de duas partes de superfície que eventualmente se juntarão ao entrar em contato uma com a outra. O momento

Leia mais

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Algoritmos Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 3 Conceitos Básicos de Algoritmos Prof. Tiago A. E. Ferreira Definição de Algoritmo Informalmente... Um Algoritmo é qualquer procedimento computacional bem definido

Leia mais

Algoritmos e Estruturas de Dados II. Trabalho Prático 3

Algoritmos e Estruturas de Dados II. Trabalho Prático 3 Algoritmos e Estruturas de Dados II Trabalho Prático 3 Entrega: 03/11/09 Devolução: 24/11/09 O trabalho pode ser feito em grupo de dois alunos. Este trabalho consiste em analisar o desempenho de diferentes

Leia mais

Comandos de repetição while

Comandos de repetição while Programação de Computadores I UFOP DECOM 2013 2 Aula prática 6 Comandos de repetição while Resumo Nesta aula vamos trabalhar com problemas cuja solução envolve realizar um cálculo ou tarefa repetidas vezes,

Leia mais

Recursividade UFOP 1/48

Recursividade UFOP 1/48 BCC 201 - Introdução à Programação I Recursividade Guillermo Cámara-Chávez UFOP 1/48 Introdução I Recursividade: é um método de programação no qual uma função pode chamar a si mesma Muitas estruturas têm

Leia mais

Programas Interativos

Programas Interativos Programação Funcional DECOM UFOP 2012-1 Aula prática Capítulo 8 Prof. José Romildo Malaquias Programas Interativos Resumo Nesta aula pretende-se explorar construção de programas interativos usando ações

Leia mais

Aulas 10 e 11 / 18 e 20 de abril

Aulas 10 e 11 / 18 e 20 de abril 1 Conjuntos Aulas 10 e 11 / 18 e 20 de abril Um conjunto é uma coleção de objetos. Estes objetos são chamados de elementos do conjunto. A única restrição é que em geral um mesmo elemento não pode contar

Leia mais

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação

PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM GESTÃO DA INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Algoritmos e Programação ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GGI026 PERÍODO:

Leia mais

Algoritmos e Programação. AULA 21: Recursividade UNIVERSIDADE FEDERAL DE PELOTAS CENTRO DE DESENVOLVIMENTO TECNOLÓGICO CIÊNCIA DA COMPUTAÇÃO

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

Leia mais

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores).

DCC001 - Programação de Computadores. Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). DCC-UFMG 1 semestre de 2007 DCC001 - Programação de Computadores Prof. Martín Gómez Ravetti Lista de Exercícios 02 - Estruturas de Dados Homogêneas (Vetores). Valor: 5 pontos 1. Escreva um algoritmo em

Leia mais

04 Recursão SCC201/501 - Introdução à Ciência de Computação II

04 Recursão SCC201/501 - Introdução à Ciência de Computação II 04 Recursão 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 Ponti Jr. (ICMCUSP) 04Recursão

Leia mais

Algoritmos de ordenação: Inserção e Shellsort

Algoritmos de ordenação: Inserção e Shellsort CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Algoritmos de ordenação: Inserção e Shellsort Algoritmos e Estruturas de Dados I Slides adaptados dos slides do livro texto (Ziviani) e dos slides

Leia mais

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35

BCC Introdu c ao ` a Programa c ao Portugol Guillermo C amara-ch avez UFOP 1/35 BCC 201 - Introdução à Programação Portugol Guillermo Cámara-Chávez UFOP 1/35 Introdução I Lógica A lógica é usada no dia a dia das pessoas que trabalham com computação para solucionar problemas de forma

Leia mais

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas?

2. A figura a seguir ilustra várias relações binárias em Quais são funções? Dentre as que são funções, quais as sobrejetivas? E quais as injetivas? Seção 4.3 Funções 199 Exercícios 4.3 1. A figura a seguir representa uma função. a. Qual seu domínio? Qual seu contradomínio? Qual o conjunto imagem? b. Qual a imagem de 5? E de 8? c. Quais as pré-imagens

Leia mais

Segundo trabalho de Organização e Recuperação da Informação FACOM- UFU Professor: Wendel Melo

Segundo trabalho de Organização e Recuperação da Informação FACOM- UFU Professor: Wendel Melo Segundo trabalho de Organização e Recuperação da Informação 2017-02 FACOM- UFU Professor: Wendel Melo Descrição O trabalho consiste na implementação de um programa que, a partir da construção do índice

Leia mais

INE Fundamentos de Matemática Discreta para a Computação

INE Fundamentos de Matemática Discreta para a Computação INE5403 - Fundamentos de Matemática Discreta para a Computação ) Fundamentos.1) Conjuntos e Sub-conjuntos.) Números Inteiros.3) Funções.4) Seqüências e Somas.5) Crescimento de Funções Seqüências Uma seqüência

Leia mais

Simulação de Caixa Automático

Simulação de Caixa Automático Programação Funcional UFOP DECOM 2014.1 Trabalho 1 Simulação de Caixa Automático Sumário Resumo Com esta atividade pretende-se explorar a construção de programas interativos usando ações de entrada e saída

Leia mais

Realização: Apoio: Patrocínio:

Realização: Apoio: Patrocínio: Universidade Federal do Espírito Santo Departamento de Informática Programa de Educação Tutorial PET EngComp E-mail: petengcomp@inf.ufes.br Home-Page: www.inf.ufes.br/~pet Tel. (27) 3335-2161 Realização:

Leia mais

1) Seja o conjunto A = (0;1). Quantas relações binárias distintas podem ser definidas sobre o conjunto A?

1) Seja o conjunto A = (0;1). Quantas relações binárias distintas podem ser definidas sobre o conjunto A? RESUMO A relação binária é uma relação entre dois elementos, sendo um conjunto de pares ordenados. As relações binárias são comuns em muitas áreas da matemática. Um par ordenado consiste de dois termos,

Leia mais

ACH5531 Introdução à Computação Cadeias de caracteres

ACH5531 Introdução à Computação Cadeias de caracteres ACH5531 Introdução à Computação Cadeias de caracteres Prof. Dr. Grzegorz Kowal grzegorz.kowal@usp.br https://sites.google.com/usp.br/ach5531 1 o sem 2019 sexta-feira, 14h00-15h45 CB, Bloco 3, 2 o andar,

Leia mais

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão

Trabalho de LP 15/07/2013. Prof. Flávio Miguel Varejão 15/07/2013 Trabalho de LP Prof. Flávio Miguel Varejão OBSERVAÇÃO IMPORTANTE: LEIA ATENTAMENTE TODA A ESPECIFICAÇÃO DO TRABALHO E INSTRUÇÕES DE SUBMISSÃO DE MODO A NÃO COMETER ENGANOS POR DESATENÇÃO E SER

Leia mais

Princípios de Contagem Introdução. Princípio Fundamental da Contagem

Princípios de Contagem Introdução. Princípio Fundamental da Contagem Aula n ọ 08 Princípios de ontagem Introdução A escolha do presente que você deseja ganhar em seu aniversário, a decisão de uma grande empresa quanto às alternativas de investimento neste ano e a seleção

Leia mais

Requisitos para entrega. Projeto Programa 1 Cálculo de Médias Descrição do Projeto

Requisitos para entrega. Projeto Programa 1 Cálculo de Médias Descrição do Projeto FACULDADE DE TECNOLOGIA DE SÃO PAULO CURSO SUPERIOR DE ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PROF. SÉRGIO LUIZ BANIN 1º SEMESTRE/2019 PROJETOS PROGRAMA 1, 2, 3, 4 E 5 Disciplina Data de Entrega das Soluções

Leia mais

Aula 05. Modularização Função Subrotina Recursividade

Aula 05. Modularização Função Subrotina Recursividade Logo Aula 05 Modularização Função Subrotina Recursividade 2 Modularização A modularização é um processo que aborda os aspectos da decomposição de algoritmos em módulos. Módulo é um grupo de comandos, constituindo

Leia mais

Lista de Exercícios 4

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

Leia mais

CIC 110 Análise e Projeto de Algoritmos I

CIC 110 Análise e Projeto de Algoritmos I CIC 110 Análise e Projeto de Algoritmos I Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá Algoritmos Gulosos AULA 06 Algoritmos Gulosos Um algoritmo guloso constrói uma solução para

Leia mais

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Toffolo 2011/1 Na aula anterior Prova. 2 Na aula de hoje Geometria. 3 A geometria é inerentemente uma disciplina

Leia mais

Exercícios: Recursão

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

Leia mais

Aula 20: Matrizes (Parte 2)

Aula 20: Matrizes (Parte 2) Aula 20: Matrizes (Parte 2) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Vetores Matrizes 2 / 15 Túlio Toffolo

Leia mais

Seleção de Problemas:

Seleção de Problemas: 2º Contest Noturno 18 de Julho 2013 Servidor CD MOJ: https://www.brunoribas.com.br/~moj/ Seleção de Problemas: Bruno Ribas 1 Estou com sorte! Problema: A Código Fonte: sorte.{c,cpp,pas,java} Google é um

Leia mais

Material Didático Proposto

Material Didático Proposto Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas da Disciplina BCC701 CAP-BCC701 www.decom.ufop.br/bcc701 2014-1 Material

Leia mais

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais

Programação Estruturada Comandos Condicionais (Decisão) Operadores Relacionais Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas da Disciplina BCC701 CAP-BCC701 www.decom.ufop.br/bcc701 2014-1 Material

Leia mais