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

Author: Jacques Wainer

Created: 2018-04-25 Wed 12:40

Validate