Anúncios

Inscrições para o segundo teste de FP

10 janeiro 2013, 19:14 Ana Cardoso Cachopo

Estão abertas as inscrições para o segundo teste de FP, a realizar no dia 18/Jan/2013 às 09H.

As inscrições são obrigatórias e terminam dia 16/Jan/2013, às 09H.

Não se garante a realização do teste a alunos não inscritos.

A matéria para o segundo teste é a partir da ordenação, no capítulo 5.


Horário de dúvidas no dia 10 de Janeiro

4 janeiro 2013, 10:41 Cláudia Antunes

A aula de dúvidas de dia 10 de Janeiro será excepcionalmente às 14:00.


Horários de dúvidas em Janeiro

21 dezembro 2012, 08:13 Ana Cardoso Cachopo

Durante o mês de Janeiro haverá aulas de dúvidas nos seguintes horários:

- dias 10, 17 e 24 com a Professora Cláudia Antunes às 10:00, no gabinete 1 do pavilhão de Informática II

- dias 14 e 28 com o Professor Pavão Martins às 11:00, no gabinete 6 do pavilhão de Informática II

- dias 15, 22 e 29 com a Professora Ana Cardoso-Cachopo às 10:00, no gabinete 4 do pavilhão de Informática II

- dias 16, 23 e 30 com o Professor Pedro Amaro de Matos às 10:00, no gabinete 8 do pavilhão de Informática II


Mais informação para o projecto

18 dezembro 2012, 16:31 Joao Pavao Martins

1) Métodos da classe caminho: caminho_antes_destino, caminho_apos_origem e caminho_elimina_ciclos

Estes métodos não podem alterar o objecto caminho!

Devem começar por (1) determinar a sequência de posições necessária, (2) criar um novo caminho com a primeira posição dessa sequência, (3) juntar o resto das posições por odem e (4) devolver o caminho criado.

Para realizar o passo (3) acima descrito pode ser útil adicionar um novo construtor ao tipo caminho: caminho_junta_posicao : caminho × posiçãocaminho

 

2) Determinar se uma posição está numa lista de posições

Tal só pode ser feito com “in” se o método __eq__ estiver denido para a classe posicao.

Se o método __eq__ não estiver definido  deve ser percorrida a lista e comparada a posição em causa com cada uma das posições armazenadas na lista usando o método posicao_igual.

 

3) Utilização de dicionários para representar mapas

A utilização de dicionários para representar mapas deve ser evitada pois dado um objecto da classe posicao a consulta do dicionário só devolve o valor associado à posição em causa se lhe for passado exactamente o mesmo objecto (a menos que tenham usado como chave um tuplo).

Para quem já tenha o tipo mapa implementado como um dicionário é possível evitar a sua alteração adicionando os seguintes métodos à classe posicao:

    def __eq__(self):

       

    def __hash__(self):

        return <linha>**2+<coluna>**3

Uma alterntiva à definição do método __hash__ é indexar o dicionário com um tuplo em vez de ser com uma instância da classe posicao.

 


Informação para o projecto

17 dezembro 2012, 21:44 Joao Pavao Martins

1) Métodos da classe caminho: caminho_antes_destino, caminho_apos_origem e caminho_elimina_ciclos

Estes métodos não podem alterar o objecto caminho!

Devem começar por (1) determinar a sequência de posições necessária, (2) criar um novo caminho com a primeira posição dessa sequência, (3) juntar o resto das posições por ordem e (4) devolver o caminho criado.

Para realizar o passo (3) acima descrito pode ser útil adicionar um novo construtor ao tipo caminho: caminho_junta_posicao : caminho × posiçãocaminho

 

2) Determinar se uma posição está numa lista de posições

Tal não pode ser feito com “in”. Em vez disso deve ser percorrida a lista e comparada a posição em causa com cada uma das posições armazenadas na lista usando o método posicao_igual.

 

3) Utilização de dicionários para representar mapas

A utilização de dicionários para representar mapas deve ser evitada pois dado um objecto da classe posicao a consulta do dicionário só devolve o valor associado à posição em causa se lhe for passado exactamente o mesmo objecto (a menos que tenham usado como chave um tuplo).

Para quem já tenha o tipo mapa implementado como um dicionário é possível evitar a sua alteração adicionando o seguinte método à classe posicao:

    def __hash__(self):

        return <linha>**2+<coluna>**3