Estruturas de Dados 2019/2020 (CC1007) - DCC/FCUP

Aula Prática #08 - Consolidação de Conhecimentos (Listas, Pilhas e Filas)
(semana de 13/04 a 17/04)


Aula de Recuperação e Consolidação

Nesta semana iremos fazer uma aula mais de recuperação e consolidação de conhecimentos. Se ainda não o fez, a sua prioridade deverá ser primeiro fazer os exercícios principais sugeridos nas aulas #06 e #07 (nos guiões dessas aulas pode encontrar dicas para cada um dos exercícios sugeridos). Em particular, certifique-se que:


Exercício 1) Triagem de Manchester

O ideia deste exercício é resolver um problema um pouco maior usando os conceitos que aprendeu de listas, pilhas e filas. O objectivo é submeter com sucesso o problema [ED098] Triagem de Manchester ("Volume 4 (Pilhas e Filas)") criando um código adequado e estruturado. Não se esqueça de ir testando sempre as coisas que vai implementando!

  1. O início.
    Comece por ler com muita atenção o enunciado do problema, para perceber o que é pedido.
     
  2. Código inicial.
    Para este problema vamos guiá-lo detalhadamente para uma solução minimamente organizada. Deverá por isso começar por ir buscar o seguinte código inicial: ED098_codigo_inicial.java (ver em html)
  3. flag==0.
    A primeira flag pede essencialmente para ler os dados dizer o número de doentes de cada tipo, bem como o total de doentes.
  4. flag==1.
    [para fazer este problema bastaria fazer a flag2, que "inclui" a flag1, mas vamos fazer uma de cada vez]
    Esta flag pede para simular o que acontece quando existe apenas uma equipa de urgência.
  5. flag==2.

Exercício 2) Quartel de Bombeiros

Resolva agora "sozinho" um problema semelhante ao anterior, mas um pouco mais fácil. Procure fazer um código organizado, com várias classes representando as várias entidades do problemas, e vários métodos, cada um dedicado à sua (pequena) tarefa.


Exercícios extra para consolidação de conhecimentos

  1. Mais problemas de pilhas e filas
    Tem disponíveis no Mooshak de EDados, no "Volume 4 (Pilhas e Filas)", mais alguns problemas envolvendo pilhas e filas, que lhe permitem testar a sua organização de código. Em particular deve procurar resolver o seguinte problema (que já foi dado como extra na aula passada), parecido com os dois problemas sugeridos nesta aula:
  2. Jogos de Cartas.
    Para testar a sua organização faça agora algo diferente:

Exercício de Desafio

Para esta semana disponibilizo um problema não muito complicado, também da minha autoria, e que foi usado numa fase de qualificação das Olimpíadas Nacionais de Informática:

O limite de tempo de execução para cada caso de teste é de 2 segundos, pelo que a solução só será aceite e com pontuação máxima no Mooshak se for minimimamente eficiente (sendo que já dei mais alguma "margem de manobra": a solução oficial demora bem menos que 1s, mesmo para um caso com os 3000 pontos).