Вы находитесь на странице: 1из 1

Pontifícia Universidade Católica de Minas Gerais no São Gabriel

Curso de Sistemas de Informação


Algoritmos e Estruturas de Dados
Prof. João Caram
Exercícios de revisão

1 – Considere uma lista encadeada cujos elementos contêm dados de veículos, incluindo placa e modelo. Escreva um método
recursivo para a lista que retorne quantos veículos de um determinado modelo passado por parâmetro estão cadastrados.

2 – A Receita Federal do Brasil recebe anualmente nos meses de março e abril as declarações de ajuste do Imposto de Renda de
Pessoa Física. Estas declarações ajustam quanto cada contribuinte deve receber de restituição de impostos pagos ou quanto ainda
precisará pagar para regularizar sua situação perante o governo.
Nos dias de hoje, a declaração de ajuste é entregue pelo contribuinte via Internet. A Receita processa todas as declarações
por ordem de chegada e faz o pagamento das restituições em lotes mensais, de agosto a dezembro, os quais levam em consideração
esta ordem.
No entanto, temos duas situações especiais: a primeira diz que declarações feitas por maiores de 65 anos ou por quem
possui um certificado digital têm prioridade, ou seja, são restituídas antes das outras – apesar de respeitar a ordem entre si. A
segunda diz que declarações com imposto a pagar (ou seja, sem restituição) podem ser retiradas deste processamento, sendo
separadas para posterior conferência dos pagamentos devidos. Tendo em vista a situação descrita:
a) Descreva as estruturas de dados que você utilizaria para representar as declarações entregues e as declarações processadas.
Justifique as suas escolhas e explique qual ou quais operações das estruturas você utilizaria para implementar as regras descritas.
b) Implemente um ou mais métodos que processe(m) a estrutura de dados descrita por você, separando as declarações prioritárias,
as normais e as com imposto a pagar de acordo com a regra descrita. Você pode considerar que os métodos básicos das estruturas
estão implementados, mas se for necessária uma lógica adicional ou métodos suplementares, você deve implementar sua lógica.

3 – Belo Horizonte é uma cidade com aproximadamente 2.500.000 habitantes e 1.900.000 eleitores. Suponha que atualmente os
dados dos eleitores estejam armazenados no TRE-MG em uma estrutura de lista. Se são realizadas, em média, 5.000 consultas
diárias no site do TRE por parte dos eleitores e considerando que o servidor que hospeda estes dados faça 100.000 operações por
segundo,
a) qual o tempo total gasto, por dia, com estas consultas?
b) se a implementação passasse a utilizar uma pesquisa binária, qual será o ganho diário de tempo de execução?

4 – Vimos, em sala de aula, como as pilhas podem ser utilizadas por um programa de computador para análise e resolução de
expressões matemáticas. Considerando a existência dos métodos e classes listadas a seguir, escreva um método para transformar
uma expressão infixa em pós fixa. Se julgar necessário, você pode criar outros métodos ou classes complementares

• Método string[] itens(string expressaoOriginal)


Este método recebe uma expressão matemática e a divide em itens num vetor de strings. Cada posição do vetor
contém uma string que pode representar um número float, um operador ou um parêntesis abrindo ou fechando)

• Classe Pilha
Esta classe pode empilhar e desempilhar um tipo genérico de dados.

Вам также может понравиться