Esta prova contém 4 questões sobre algoritmos e estruturas de dados. A duração da prova é de 2 horas e cópia implicará em nota zero. As questões abordam árvores binárias de busca, árvores-B, ordenação estável com Heapsort e resolução de colisões em tabelas de dispersão.
Em Matemática, um número normal é um número real cujos algarismos são distribuídos de maneira aleatória no seu desenvolvimento decimal, isto é, os algarismos aparecem todos com a mesma freqüência. Os "algarismos" se referem aos algarismos antes da vírgula e a seqüência infinita de algarismos após a vírgula.
O documento discute recursividade, definindo-a como um objeto ou processo que se refere a si mesmo. Explica que recursividade divide um problema em subproblemas da mesma natureza e fornece exemplos como fatorial e fibonacci. Também discute vantagens e desvantagens de programação recursiva.
1) O documento apresenta os elementos básicos da lógica matemática e da teoria dos conjuntos, com foco nos conceitos de termos, proposições, conjunção, disjunção e negação.
2) Aborda também expressões com variáveis que podem se tornar designações quando substituídas por outros termos, e introduz noções como implicação e equivalência entre proposições.
3) A segunda parte tratará de conjuntos, operações fundamentais, pares ordenados, sequências, produto cartesiano, relações e funções.
[1] A recursividade é um método de resolução de problemas onde um algoritmo se divide em subproblemas mais simples que requerem a aplicação do próprio algoritmo; [2] O exemplo clássico é o cálculo fatorial que se baseia na propriedade de que o fatorial de um número é igual a esse número multiplicado pelo fatorial do número anterior; [3] Problemas recursivos precisam ter uma condição de parada para evitar chamadas infinitas, como no caso do fatorial cuja condição de parada é fatorial de 0 ser igual a 1.
O documento descreve algoritmos para buscar padrões em texto. Ele apresenta o algoritmo tradicional de complexidade quadrática e o algoritmo de Boyer-Moore, que é mais eficiente ao fazer menos comparações usando informações sobre o padrão procurado.
Esta prova contém 4 questões sobre algoritmos e estruturas de dados. Os alunos terão 1 hora para responder questões sobre complexidade de algoritmos, altura de árvores binárias, remoção de nós em árvores AVL e representação de max-heaps.
Lista de Exercício de Algoritmo e Programaçãokarlaum
1) Escreva algoritmos para resolver problemas matemáticos como verificar se números são cíclicos, calcular idade a partir de datas, determinar se um ano é bissexto e calcular troco.
2) Desenvolva algoritmos para ler números até atingir uma condição, como soma maior que 50, e contar números ímpares, maior número e pares com soma máxima.
3) Crie algoritmos para verificar se um número é primo, se dois números são primos entre si e calcular somas de séries.
Em Matemática, um número normal é um número real cujos algarismos são distribuídos de maneira aleatória no seu desenvolvimento decimal, isto é, os algarismos aparecem todos com a mesma freqüência. Os "algarismos" se referem aos algarismos antes da vírgula e a seqüência infinita de algarismos após a vírgula.
O documento discute recursividade, definindo-a como um objeto ou processo que se refere a si mesmo. Explica que recursividade divide um problema em subproblemas da mesma natureza e fornece exemplos como fatorial e fibonacci. Também discute vantagens e desvantagens de programação recursiva.
1) O documento apresenta os elementos básicos da lógica matemática e da teoria dos conjuntos, com foco nos conceitos de termos, proposições, conjunção, disjunção e negação.
2) Aborda também expressões com variáveis que podem se tornar designações quando substituídas por outros termos, e introduz noções como implicação e equivalência entre proposições.
3) A segunda parte tratará de conjuntos, operações fundamentais, pares ordenados, sequências, produto cartesiano, relações e funções.
[1] A recursividade é um método de resolução de problemas onde um algoritmo se divide em subproblemas mais simples que requerem a aplicação do próprio algoritmo; [2] O exemplo clássico é o cálculo fatorial que se baseia na propriedade de que o fatorial de um número é igual a esse número multiplicado pelo fatorial do número anterior; [3] Problemas recursivos precisam ter uma condição de parada para evitar chamadas infinitas, como no caso do fatorial cuja condição de parada é fatorial de 0 ser igual a 1.
O documento descreve algoritmos para buscar padrões em texto. Ele apresenta o algoritmo tradicional de complexidade quadrática e o algoritmo de Boyer-Moore, que é mais eficiente ao fazer menos comparações usando informações sobre o padrão procurado.
Esta prova contém 4 questões sobre algoritmos e estruturas de dados. Os alunos terão 1 hora para responder questões sobre complexidade de algoritmos, altura de árvores binárias, remoção de nós em árvores AVL e representação de max-heaps.
Lista de Exercício de Algoritmo e Programaçãokarlaum
1) Escreva algoritmos para resolver problemas matemáticos como verificar se números são cíclicos, calcular idade a partir de datas, determinar se um ano é bissexto e calcular troco.
2) Desenvolva algoritmos para ler números até atingir uma condição, como soma maior que 50, e contar números ímpares, maior número e pares com soma máxima.
3) Crie algoritmos para verificar se um número é primo, se dois números são primos entre si e calcular somas de séries.
Livro -estruturas_de_dados_e_algoritmos_em_c.erivanildoFernando Chuva
Este documento apresenta os fundamentos da linguagem de programação C. Começa por introduzir a estrutura básica de um programa em C e os elementos que o compõem, como variáveis, constantes, tipos de dados e funções. Explica também os operadores e estruturas de controlo da linguagem. Por fim, aborda brevemente a organização modular dos programas em C e as bibliotecas disponíveis.
O documento apresenta 20 algoritmos em C que resolvem problemas matemáticos como cálculo de áreas, perímetros, médias, maior e menor entre números. Os algoritmos variam desde operações simples como soma até resolução de equações de 2o grau.
1. O documento apresenta um curso introdutório sobre a linguagem de programação C, abordando conceitos básicos como variáveis, funções, estruturas de controle e entrada/saída de dados.
2. As aulas incluem explicações sobre tipos primitivos, operadores, declaração de variáveis, funções, estruturas de controle como if/else e loops.
3. Também são apresentados tópicos como vetores, strings, ponteiros, arquivos, alocação dinâmica e estruturas personalizadas.
O documento contém 12 algoritmos que realizam operações como cálculo de fatorial, contagem de números dentro de um intervalo, classificação de idade como maior ou menor de idade, contagem de homens e mulheres, análise de lucro ou prejuízo em vendas, impressão de números em ordem crescente e decrescente, cálculo de tabuadas.
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
O documento discute algoritmos e lógica de programação. Explica que algoritmos são sequências finitas de passos para executar tarefas e que programas são algoritmos escritos em linguagens de programação. Também descreve formas de representar algoritmos como pseudocódigo e fluxogramas e os principais tipos de dados, variáveis, constantes e operadores usados em algoritmos.
Lista de exercicios algoritmos resolvida-Mauro Pereira
O documento apresenta algoritmos resolvidos em pseudocódigo para exercícios de estruturas sequenciais, condicionais, repetição e vetores. Inclui explicações sobre cada algoritmo e diferentes soluções propostas.
Livro -estruturas_de_dados_e_algoritmos_em_c.erivanildoFernando Chuva
Este documento apresenta os fundamentos da linguagem de programação C. Começa por introduzir a estrutura básica de um programa em C e os elementos que o compõem, como variáveis, constantes, tipos de dados e funções. Explica também os operadores e estruturas de controlo da linguagem. Por fim, aborda brevemente a organização modular dos programas em C e as bibliotecas disponíveis.
O documento apresenta 20 algoritmos em C que resolvem problemas matemáticos como cálculo de áreas, perímetros, médias, maior e menor entre números. Os algoritmos variam desde operações simples como soma até resolução de equações de 2o grau.
1. O documento apresenta um curso introdutório sobre a linguagem de programação C, abordando conceitos básicos como variáveis, funções, estruturas de controle e entrada/saída de dados.
2. As aulas incluem explicações sobre tipos primitivos, operadores, declaração de variáveis, funções, estruturas de controle como if/else e loops.
3. Também são apresentados tópicos como vetores, strings, ponteiros, arquivos, alocação dinâmica e estruturas personalizadas.
O documento contém 12 algoritmos que realizam operações como cálculo de fatorial, contagem de números dentro de um intervalo, classificação de idade como maior ou menor de idade, contagem de homens e mulheres, análise de lucro ou prejuízo em vendas, impressão de números em ordem crescente e decrescente, cálculo de tabuadas.
Material de Apoio de Algoritmo e Lógica de Programaçãorodfernandes
O documento discute algoritmos e lógica de programação. Explica que algoritmos são sequências finitas de passos para executar tarefas e que programas são algoritmos escritos em linguagens de programação. Também descreve formas de representar algoritmos como pseudocódigo e fluxogramas e os principais tipos de dados, variáveis, constantes e operadores usados em algoritmos.
Lista de exercicios algoritmos resolvida-Mauro Pereira
O documento apresenta algoritmos resolvidos em pseudocódigo para exercícios de estruturas sequenciais, condicionais, repetição e vetores. Inclui explicações sobre cada algoritmo e diferentes soluções propostas.
1. Universidade Federal de Pernambuco
Centro de Inform´atica
Bacharelado em Ciˆencia da Computa¸c˜ao
IF672 Algoritmos e Estruturas de Dados — 2012.2
Profs. Katia Guimar˜aes, Paulo Fonseca
PRIMEIRA PROVA
21 de Fevereiro de 2013
• Esta prova cont´em 04 (quatro) quest˜oes.
• A dura¸c˜ao da prova ´e de 02 (duas) horas.
• A detec¸c˜ao de c´opia implicar´a na atribui¸c˜ao de nota 0 (zero) `a prova.
QUEST˜AO 1
Escreva em pseudo-c´odigo um algoritmo CheckBST que recebe como entrada um apontador root para a
raiz de uma ´arvore bin´aria T e devolve uma tripla (bst, min, max), onde bst ´e um booleano que indica
se T ´e uma ´arvore de busca bin´aria e min, max indicam, respectivamente, os valores do menor e maior
elemento de T.
QUEST˜AO 2
Considere uma ´arvore-B de grau m´ınimo t = 3. Represente a inser¸c˜ao das chaves
G, S, Q, K, C, L, H, T, V, W, M, R, N, P, A, B, X, Y, D, Z, E, U, F
nesta ordem. Para tal, exiba a configura¸c˜ao da ´arvore apenas imediatamente ap´os a inser¸c˜ao das
chaves que provocarem divis˜oes de n´os e desenhe tamb´em a configura¸c˜ao final da ´arvore.
QUEST˜AO 3
Um algoritmo de ordena¸c˜ao Π pode ser visto como uma fun¸c˜ao que recebe como entrada um vetor
V = (v1, . . . , vn) e devolve uma permuta¸c˜ao Π(V ) = (vπ(1), . . . , vπ(n)) com vπ(1) ≤ vπ(2) ≤ · · · ≤ vπ(n).
Um algoritmo de ordena¸c˜ao ´e dito est´avel quando, para duas posi¸c˜oes i, j quaisquer,
i j ∧ vπ(i) = vπ(j) =⇒ π(i) π(j).
Em outras palavras, um algoritmo de ordena¸c˜ao ´e est´avel quando preserva a ordem relativa original de
elementos idˆenticos.
Demonstre que o algoritmo Heapsort ´e est´avel ou forne¸ca um contra-exemplo de tamanho m´ınimo.
QUEST˜AO 4
Considere uma tabela de dispers˜ao (hash table) com m = 10 posi¸c˜oes utilizando a pol´ıtica de resolu¸c˜ao de
colis˜oes por endere¸camento aberto (open addressing) com sondagem linear (linear probing). Sabendo-se
que a posi¸c˜ao original de uma chave k na tabela ´e dada pela fun¸c˜ao de dispers˜ao
h0(k) = k mod m,
represente a inser¸c˜ao das chaves
13, 44, 21, 64, 58, 20, 38, 81, 98
nesta ordem. Para tal, exiba a configura¸c˜ao da tabela apenas imediatamente ap´os a inser¸c˜ao das
chaves para as quais houve uma colis˜ao, e represente tamb´em a configura¸c˜ao final da tabela.
EOF