Testes formativos

De notar que existe um trabalho opcional que será a base de todos os exames. Assim, a forma mais fácil de estudar para o exame será realizar o trabalho.

O teste formativo que se segue não se refere ao trabalho prático, mas a um exercício que poderia resultar de um hipotético trabalho prático.

Teste formativo da disciplina
2605 - Linguagens Imperativas e Orientadas por Objectos

INSTRUÇÕES PARA AS RESPOSTAS AO TESTE

Todas as questões devem ser respondidas numa linguagem orientada por objectos à escolha (Java, C++, Smalltalk, Ada, etc…).

O teste é constituído por 12 páginas, 1 com o enunciado e 11 reservadas às respostas às questões, e termina com a palavra FIM.

Tem 150 minutos para responder a este teste.

TESTE

Considere um campeonato de futebol. Cada equipa joga contra as restantes, em duas voltas (um jogo em casa, outro fora). Por exemplo, para N equipas, cada equipa jogará N-1 jogos em casa e N-1 jogos fora.

Os resultados possíveis de cada equipa são a vitória, o empate ou a derrota, sendo a cada uma das situações atribuído um determinado número de pontos. Poderão também haver pontos de penalização (negativos), por irregularidades processuais.

Em cada jogo deve ser registado o resultado (golos marcados por cada equipa), data, hora, local, número de espectadores, árbitro principal e dois árbitros assistentes. A classificação é ordenada por ordem decrescente de pontos.

Devem existir os seguintes critérios de desempates:

  1. maior diferença entre golos marcados e sofridos em todos os jogos;

  2. maior número de golos em todos os jogos;

  3. maior número de vitórias em todos os jogos;

  4. maior número de golos na situação de visitante em todos os jogos;

  5. maior número de pontos em jogos envolvendo equipas empatadas;

  6. maior diferença entre golos marcados e sofridos em jogos envolvendo equipas empatadas;

  7. maior número de golos em jogos envolvendo equipas empatadas;

  8. maior número de vitórias em jogos envolvendo equipas empatadas;

  9. maior número de golos na situação de visitante em jogos envolvendo equipas empatadas.

A ordem pela qual são aplicados os critérios de desempate é estabelecida no início do campeonato, podendo um ou mais critérios não ser aplicados. No caso de se manter a igualdade após a aplicação de todos os critérios de desempate, é escolhida aleatoriamente a ordem da classificação.

1. Considerando o problema exposto, defina as estruturas de dados necessárias, numa linguagem orientada por objectos da sua escolha (identificando qual a linguagem utilizada), justificando a sua utilização de forma sucinta (use os comentários da linguagem para esse efeito).

2. De acordo com as estruturas definidas na questão anterior:

  1. escreva os métodos que permitem iniciar um campeonato, nomeadamente a definição de todas as equipas, a inicialização de todos os jogos como não realizados, a definição das pontuações para vitórias, empates e derrotas, nomes dos árbitros principais e árbitros assistentes, e ordem de aplicação dos critérios de desempate;

  2. escreva o método que permite encontrar a pontuação de todas as equipas, ordenando-as por ordem decrescente de pontuação;

  3. escreva os métodos que permitem aplicar os critérios de desempate A e I.

Cotações:

1) 4 valores.
2a) 4 valores.
2b) 4 valores.
2c) 8 valores (4 para cada critério de desempate).