Tarefas

Todas as tarefas serão corrigidas de acordo com os critérios gerais. Leia essa página atentamente!

Tarefa 0 - Primeiros passos

Você deve aprender a utilizar um terminal de comandos, realizar operações básicas no controle de versão Git, compilar e testar um programa em C e submeter uma tarefa na disciplina. Esta tarefa serve para testar o sistema de submissão e não fará parte da média de notas.

Tarefa 1 - Linguagem de programação C

Vamos resolver alguns exercícios para nos acostumar com a linguagem de programação C.

Tarefa 2 - Consultas médicas

Você deve criar um pequeno sistema para gerenciar consultas médicas e precisará escolher tipos abstratos de dados adequados.

Tarefa 3 - Centroide

Você irá aprender a alocar e manipular dados dinamicamente. Também, precisará resolver alguns exercícios escrevendo algoritmos recursivos.

Tarefa 4 - Bat-computador

Você irá implementar o módulo de memória do Batman! Para isso, precisará implementar e utilizar vetor dinâmico.

Tarefa 5 - Sequências de DNA

Armazene uma sequência de DNA e simule diversas mutações que podem ocorrer nessa sequência. Para poder realizar operações arbitrárias sobre a sequência, você deverá representá-la como uma lista ligada.

Tarefa 6 - Jogo da cobrinha

Para simular um jogo da cobrinha, você precisará implementar uma lista ligada para guardar uma sequência de bloquinhos.

Tarefa 7 - Otimização de fórmulas

Utilize uma árvore binária para representar uma fórmula booleana. Essa representação permitirá manipular e simplificar a fórmula facilmente.

Tarefa 8 - Base de cidades

Implemente um banco de dados geográfico que permite cadastrar cidades, bem como buscar pontos de interesse em uma região. Para fazer isso eficientemente, você irá utilizar uma árvore quaternária.

Tarefa 9 - Despejo de cache

Para avaliar a qualidade de políticas de substituição em caches, você precisará de uma fila de prioridade para encontrar eficientemente o próximo objeto a ser removido.

Tarefa 10 - Corretor

Você deve conhecer e utilizar conceitos de hashing e hash table. Além disso, você deve utilizar tipos de dados primitivos e tipos de dados compostos, como strings.

Tarefa 11 - Pisca-pisca

Você precisa verificar se a configuração de um pisca-pisca contém problemas estruturais. Para isso, precisará realizar buscas em profundidade e em largura em grafos.

Tarefa 12 - Centros de distribuição

Você deve planejar a localização de dois novos centros de distribuição que minimize a distância de atendimento até a entrega.

Tarefa 13 - Gerador de improbabilidade infinita

Você precisará encontrar uma configuração de alavancas do gerador de improbabilidade infinita que maximize a improbabilidade do evento criado. Para encontrar uma solução eficientemente, você poderá criar um algoritmo baseado em backtracking.