Você está na página 1de 5

EXAME NORMAL

DISCIPLINA Estrutura de Dados I SEMESTRE 2022/1


CURSO Engenharia Informática TURMA DOCENTE Sílvia António
NOME DO ESTUDANTE Nº DA MATRÍCULA
DATA INÍCIO DURAÇÃO

VARIANTE B
Tema: Simulador do Aedes

Visão Geral
Pretende-se avaliar de forma prática os conceitos sobre estruturas de dados
aprendidos durante o semestre, por meio de um problema que represente uma
situação da vida real.

O objectivo deste trabalho é simular de forma simplificada o comportamento do


mosquito Aedes num ambiente urbano, prever um possível cenário de epidemia
numa região, melhorando o entendimento do hábito de vida do mosquito e
permitindo o planeamento de acções mais efectivas. O Aedes aegypti é
omosquito responsável pela transmissão de diversas doenças, como a Febre
Amarela, Zika, Dengue e Chicungunya. A transmissão de doenças é feita através
da picada da fêmea do mosquito que possui um determinado vírus. Além disso,
o mosquito passa o vírus entre as gerações, ou seja, cada descendente é um
novo transmissor com o vírus desde o nascimento. O principal modo para
combater as doenças transmissíveis pelo Aedes aegypti é a prevenção do
nascimento de mais mosquitos: não deixar água parada em utensílios e evitar o
acúmulo das águas da chuva. Em alguns países, existem agentes de saúde
municipais, responsáveis por educar a população através de visitas domiciliares
preventivas e fumigação para combater as larvas.

Estrutura do trabalho

Esta simulação pode ser implementada por meio de listas ligadas da seguinte
forma: o simulador deste trabalho representa o ambiente de uma região. As
casas são ligadas de forma a representar a possibilidade de voo do mosquito de
uma casa para a outra. Cada casa é representada por um nome único. Os
mosquitos inseridos podem mudar sua posição ao longo do tempo. Os agentes
municipais actuam de forma a seleccionar uma casa para combater os

Página 1 de 5
EXAME NORMAL

mosquitos. Os mosquitos podem ser representados apenas por um número ou


um caracter, uma vez que a sua identidade não é importante para a simulação,
mas sim a quantidade.

Faça um programa para esta simulação e implemente as seguintes operações:

• Inicia simulação: Função inicial que solicita ao utilizador três números


inteiros positivos, correspondentes ao número total de movimentos dos
mosquitos durante a simulação, número mínimo de movimentos de todos
os mosquitos para um agente municipal iniciar o combate e o número
mínimo de movimentos por cada mosquito, para se permitir a
reprodução;
• Inserir casa: Insere uma casa no simulador;
• Remover casa: Remove uma casa do simulador e todas as suas ligações;
• Inserir mosquito: Insere um mosquito numa determinada casa existente
no simulador;
• Remover mosquito: Remove um mosquito de uma determinada casa;
• Liga casas: Permite ligar duas casas existentes no simulador (significa que
os mosquitos podem voar entre as casas indicadas;
• Movimentar mosquito: cada mosquito do cenário deve mudar a sua
localização para uma casa que possui ligação com sua actual casa. A
escolha da nova casa é aleatória (desde que exista ligação directa);
• Reproduzir mosquito: Cada mosquito cria dois descendentes;
• Combater mosquitos: Uma casa é sorteada e há o combate aos
mosquitos. Ou seja, se houver mosquitos na casa sorteada, eles devem
ser eliminados;
• Imprimir mapa simulador: imprime todos as casas e mosquitos, bem
como as suas ligações. A informação deve ser gravada num ficheiro com
o nome “mapaSimulador.txt”.
• Terminar simulação: Termina o programa e grava num ficheiro com o
nome “log.txt” o resultado da simulação.

Condições de execução:

• O número total de movimentos no início da simulação, limita a


movimentação dos mosquitos entre as casas durante a simulação;
• Os mosquitos podem voar nos dois sentidos. Na figura 1, por exemplo,
um mosquito pode voar da Casa1 para a Casa3 ou da Casa3 para a Casa1;

Página 2 de 5
EXAME NORMAL

• Caso o mosquito seja combatido antes do número de movimentações,


isso é, se não houver mais nenhum mosquito na lista, a execução deve
ser terminada e deve haver a escrita do “log.txt”.
• A operação “Combater mosquitos” só pode ser executada se o conjunto
de mosquitos atingiu o número mínimo de movimentos definido no início
da simulação;
• A operação “Reproduzir mosquito” só pode ser executada se o mosquito
em causa atingiu o número mínimo de movimentos definido no início da
simulação para a reprodução;
• O ficheiro “log.txt” deve conter a seguinte informação:
o Número de mosquitos iniciais
o Número de mosquitos finais (Número máximo atingido com a
reprodução, antes de serem eliminados)
o Número de erros dos agentes
o Número de acertos dos agentes

Instruções

Para a realização do trabalho, siga atentamente as seguintes instruções:

• O trabalho deve ser realizado em C e não em C++;


• Deve usar o conceito de Tipos Abstractos de Dados Listas que achar mais
apropriado;
• O programa deve imprimir mensagens de falha e de sucesso;
• O trabalho deverá ser entregue via classroom;
• Deverá ser enviado o código principal do programa, os ficheiros com o
TAD, os ficheiros de saída e um relatório sobre a implementação do
trabalho;
• O relatório deve ter:
o Capa: Nome da instituição, Título, autores e data)
o Introdução: breve descrição do problema
o Metodologia: descrição da implementação do trabalho, escolha
das estruturas utilizadas, outras decisões tomadas;
o Conclusão: comentários gerais e principais dificuldades
encontradas durante a realização do trabalho;
o Bibliografia
• O relatório deve ser entregue no formato PDF;
• Deve ser realizado por grupos, validados pelo professor;
• Trabalho plagiados serão excluídos;
• A defesa do trabalho será feita de forma individual em data a comunicar.

Página 3 de 5
EXAME NORMAL

Pontuação positiva
• Relatório bem escrito, com todos os detalhes do trabalho e sem erros
ortográficos - 4 Valores
• Execução correcta de todas as operações – 6 Valores
• Implementação correcta das estruturas e TADs – 3 Valores
• Interface com o utilizador - 2 Valores
• Saídas correctas para os ficheiros – 2 Valores
• Defesa individual – 3 Valores

Pontuação negativa
Independente da pontuação positiva pode perder valores nas seguintes
situações:
• Atrasos (-1 Valor) por cada 30 minutos de atraso, até no máximo 2
horas;
• Falta de comentários no código, indentação ou não uso de estruturas e
tipos definidos (-3 Valores);
• Acesso inválido de memória ou alocação sem liberação da memória (-2
Valores);
• Perdem-se os pontos positivos, se durante a defesa o aluno não mostrar
conhecer os conceitos implementados.

Exemplo do estado inicial da simulação

Exemplo do ficheiro mapaSimulador.txt

Estado da simulação data hora:

Página 4 de 5
EXAME NORMAL

Mosquito 1 --------Casa 5
Mosquito 2 --------Casa 2
Casa 1--------Casa 3
Casa 2 --------
Casa 3 --------Casa 1
Casa 3 --------Casa 4
Casa 3 --------Casa 5
Casa 4 --------Casa 3
Casa 4 --------Casa 5
Casa 5 --------Casa 3
Casa 5 --------Casa 4

Bom trabalho

Página 5 de 5

Você também pode gostar