Vous êtes sur la page 1sur 2

Centro Federal de Educação Tecnológica de Minas Gerais

Engenharia da Computação - Departamento de Computação


Disciplina: Linguagens de Programação

Prof.: Humberto Nigri


E-mail: hnigri@decom.cefetmg.br

Trabalho Prático N° 4 - Prolog


Prazo de Entrega: 11/11
Valor: 15 pontos

A Família Azevedo
Pouco se sabe da história passada da família Azevedo. Existem alguns registros antigos
que indicam que o casal José e Maria criou dois filhos, o João e a Ana. Que a Ana teve
duas filhas, a Helena e a Joana, também parece ser verdade, segundo os mesmos
registros. Além disso, o Mário é filho do João, pois muito se orgulha ele disso. Estranho
também, foi constatar que o Carlos nasceu da relação entre a Helena, muito formosa, e
o Mário (sabe qual Mário ?? rsrsrs).

Construir um programa em Prolog que atenda aos seguintes ítens abaixo:

1. Utilizando o predicado progenitor(X,Y) (ou seja, X é progenitor de Y), represente


como FATOS em Prolog todos os progenitores da família Azevedo (pra quem não
sabe, progenitor pode ser pai ou mãe) e o sexo (fulano, masculino ou feminino).

2. Represente como REGRAS em Prolog as relações: irma, irmao, descendente, mae,


pai, avo (masculino), avoh (feminino), tio, tia, primo, prima.

3. Formule em Prolog as seguintes questões:


3.1. João é filho do José?
3.2. Quem são os filhos da Maria? (exibi-los em uma lista)
3.3. Quem são os primos do Mário? (exibi-los em uma lista)
3.4. Quantos sobrinhos/sobrinhas com um Tio existem na família Azevedo?
3.5. Quem são os ascendentes do Carlos?
3.6. A Helena tem irmãos? E irmãs?
3.7. Dada uma pessoa qualquer, essa pessoa tem tio ? e tem tia ?

ATENÇÃO: Na questão 3 para PADRONIZAR a forma da resposta vocês deverão


criar uma REGRA que RESPONDE à pergunta com um nome “consulta” seguido do
número da questão e parâmetros. Exemplo: consulta3(L) :- (...) % retorna a Lista
de primos do Mário (sabe qual Mario, ne?). Quando a pergunta tiver duas partes,
como a 6 e 7, deverão ser criadas as consulta6a, consulta6b, consulta7a e
Centro Federal de Educação Tecnológica de Minas Gerais
Engenharia da Computação - Departamento de Computação
Disciplina: Linguagens de Programação

consulta7b. Na correção dessa parte eu vou procurar por esses nomes de regras
para saber se vocês conseguiram implementar a consulta. Dúvidas me perguntem !

Observações:
1. O trabalho pode ser feito em dupla.
2. Trabalhos com suspeita de cópia receberão ZERO
3. Procurem responder precisamente o que pedem as questões
4. Em alguns itens da questão 3, quando se pede “quem são” significa TODAS as
possibilidades do parentesco pedido
5. Deverão enviar um arquivo com o código em Prolog (extensão .pl) e cujo nome
seja o da dupla (Exemplo: FulanoCicrano.pl)
6. Favor comentar bem as regras criadas indicando o significado dos parâmetros e
destacando claramente quais são as consultas que respondem às questões. Pode
ser que alguma questão exija duas consultas para responde-la.
7. Consulte as regras sintáticas da linguagem no help ou sites das comunidades para
detalhes de funções internas da linguagem que possam ser úteis na resolução do
problema.

Vous aimerez peut-être aussi