Primeiro Projeto - Prolog
1 Primeiro projeto - versão 2
entrega 3/5 as 8:00 - via email.
O projeto pode ser feito individualmente ou em pares.
Envie via email seu arquivo prolog (atachado - nao no corpo da mensagem). Coloque o nome e RA dos membros da equipe (1 ou 2). Titulo do email: projeto 1 mc346
Leia um arquivo pelo stdin no formato
[ rect(N,X1,Y1,X2,X2) , rect(M, Z1,W1, Z2, W2), ... ].
onde
- X1, Y1 são as coordenadas do canto superior esquerdo do retângulo chamando N
- X2, Y2 são as coordenadas do canto inferior direito do mesmo retângulo.
- Z1, W1 as coordenadas superior esquerda do retângulo M
- e assim por diante.
Note que o arquivo de entrada contem apenas um termo em Prolog (terminado por .) que é uma lista de estruturas.
Imprima no stdout:
- a quantidade de pares de retângulos que tem intercessão não vazia.
- e na próxima linha, a soma das áreas das intercessões entre pares de retângulos.
Cuidado que se o retangulo A tem intercessao com o B isso só conta uma vez (ja que possivelmente o programa pode considerar que intercessão de A com B é diferente de B com A).
Também não se preocupe com regiões onde mais de 2 retângulos fazer intercessão. Se 3 retângulos (A e B e C) tem uma intercessão, o seu programa precisa contar apenas 3 (A com B), (A com C) e (B com C). Também a soma das áreas é apenas a soma das áreas de intercessões par a par: soma da intercessão A com B, A com C e B com C. Note que ha uma intercessão entre os 3 retângulos que acabou sendo contada 3 vezes - isso não tem nenhum problema.
O seu programa rodará da seguinte forma
swipl -q -f seu-prog.pr -t topo < arqtestes.in
O que é importante é que o predicado topo (sem nenhum argumento) será o único predicado a ser chamado.
minha saida:
|: numero de interseccoes: 3 area total: 4
eu usei o write e nao o print para imprimir. O "|:" é do read
minha saida:
|: numero de interseccoes: 3 area total: 1.7000000000000002