Lista 2 Prolog (turma B)

Instruções

A lista devera ser entregue em um diskette com o seu RA. Todas as questoes da lista devem estar no arquivo lista4.pl. Cada questão pede para voce definir uma função, defina-a com o nome pedido pois a correção será automatica. Voce pode definir suas funcoes auxiliares no arquivo.

Esta lista deverá ser entregue no dia 20/6.

Questões

  1. Um grafo direcionado é representado por uma lista [ arco(a,b), arco(a,d), arco(b,f) ...] onde arco(a,b) representa que existem um arco de a para b. Escreva o predicado fontes(G,L) que é verdadeira se L é a lista de todos as fontes (verices que nao sao apontados por ninguem) do grafo G, representado da forma acima.

  2. Um grafo direcionado é representado por fatos da forma aponta(a,[b,d,g]) que indica que existem arcos de a para b, d e g. Escreva o predicado fontes(L) que é verdadeiro se L é a lista de todas as fontes do grafo.

  3. Uma matriz é representada por uma lista de listas onde as listas internas representam as linhas da matriz. Por exemplo [[1,2],[7,8]], representa a matriz 1 2 7 8 Escreva o predicado coluna(M,N,C) que é verdadeiro se C é uma lista que representa a N-esima coluna da matriz M.

  4. Assuma um banco de dados com os predicados casou(homem, mulher, ano) que significa que homem casou com mulher no ano ano, separou( homem, mulher, ano), faleceu(pessoa, ano). O banco de dados é consistente, isto é ninguem casou depois que moreu, e assuma que a cada ano uma pessoa so pode casar ou separat uma vez.

    Escreva os predicados:

  5. Suponha que voce tem uma lista da forma [ notas(aluno1,nota1-1,nota1-2,nota1-3), notas(aluno2,nota2-1,nota2-2,nota2-3), ...] onde aluno1 é o nome do aluno, e nota1-1, nota1-2 e nota1-3 são as notas de LISP, Prolog e Java do aluno neste curso. Na media final, Java conta com peso 2.

    Escreva o predicado media_passou(L,A) que é verdade se L é uma lista acima e A é a media apenas dos alunos que tiraram media >= 5.