Fórum: Programação Multiparadigma

Dúvidas resolução Exame 10/11 Normal

 
Picture of Sara Alpoim Goncalves
Dúvidas resolução Exame 10/11 Normal
by Sara Alpoim Goncalves - segunda, 17 dezembro 2012, 5:38
 

Boa tarde professor,

É possível colocar uma resolução, ou dar algumas dicas para o exercício 2 do exame 10/11 de época normal?
Aproveito também para perguntar, se na resolução seria possível usar a query \"_" para obter nós filhos por exemplo.

Obrigado 

Picture of Artur Miguel Dias
Re: Dúvidas resolução Exame 10/11 Normal
by Artur Miguel Dias - segunda, 17 dezembro 2012, 7:05
 

Este problema pode ser realizado com diferentes níveis de ambição:

Nível 1:

O que se pretende é usar actores para navegar de forma concorrente numa árvore XML. O actor inicial recebe a árvore completa. Quando um actor desce por um ramo da esquerda, cria um actor suplementar para lidar com o ramo direito.

Sempre que um actor descobre uma subárvore com a propriedade pretendida, envia essa subárvore para um actor especial que coleciona os resultados.

Temos dois tipos de actores: Navegante e Coletor.


Nível 2:

Para garantir a ordem certa do resultado final, é preciso enviar para o Coletor uma chave de ordenação juntamente com a subárvore.

Chave de ordenação: O mais fácil é ser uma lista só com "0" e "1", construida pelos actores à medida que descem pela árvore. "0" significa esquerda e "1" direita.


Nível 3:

Neste nível definir uma cache para reutilizar os actores que chegam às folhas da árvore. Já fizeram o seu trabalho, mas em vez de serem destruídos podem ser utilizados para trabalhar noutras partes da árvore.


Penso que isto já deve ajudar.

Picture of Sara Alpoim Goncalves
Re: Dúvidas resolução Exame 10/11 Normal
by Sara Alpoim Goncalves - segunda, 17 dezembro 2012, 8:03
 

Entretanto já consegui resolver. No entanto permanece a minha dúvida se seria possível utilizar \\"_" para resolver o problema.

Picture of Artur Miguel Dias
Re: Dúvidas resolução Exame 10/11 Normal
by Artur Miguel Dias - segunda, 17 dezembro 2012, 9:13
 

Não, porque essa expressão percorre toda a árvore de forma sequencial e depois disso feito já restaria pouco mais para fazer. O enunciado diz "use múltiplos atores para percorrer a árvore concorrentemente".