Mc336 Projeto de Prolog

Escreva um programa de prolog que le duas matrizes (representadas como listas de listas, verifica se elas tem as dimensoes corretas e se tiverem calcula a matriz resultado da multiplicaçõa das duas matrizes, e imprime o resultado. Se as matrizes não tem as dimensoes corretas, o programa imprime erro. O programa deve repetir esse processo até que ele leia duas listas vazias como as duas matrizes.

A leitura das matrizes deve ser feita pelo comando read do prolog, isto é, as matrizes serão representadas por uma lista de listas (que representam as linhas da matriz), terminadas por ponto.

A impressao do resultado deve ser feito pelo comando print do prolog, seguido por nl (para mudar a linha). A impressao deve ser no standard output.

O predicado principal do programa deve ser chamado de matmult,

Exemplos

Entrada

[[ 2,0,-1,1 ], [1,2,0,1]]. [[1,5,-7],[1,1,0],[0,-1,1],[2,0,0]].

saida:

[[4, 11, -15], [5, 7, -7]]

Entrada

[[ 2,0,-1,1 ], [1,2,0,1]]. [[1,5,-7],[1,1],[0,-1,1],[2,0,0]].

saida:

erro (veja a segunda linha da segunda matriz. Ela não tem o tamanho correto.)

Entrada:

[[1,1],[0,-1]]. [[2,-1],[1,3]].

Saida:

[[3, 2], [-1, -3]]

Entrada

[]. []. termina o programa.