Exercicios PL 2007 08 Semana1

download Exercicios PL 2007 08 Semana1

of 5

Transcript of Exercicios PL 2007 08 Semana1

  • 7/23/2019 Exercicios PL 2007 08 Semana1

    1/5

    FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO

    EXERCCIOS DEPROGRAMAO EM LGICA

    LUS PAULO REISDANIEL CASTRO SILVA

    MESTRADO INTEGRADO EM ENGENHARIA INFORMTICA ECOMPUTAO

    PROGRAMAO EM LGICA - 3 ANO

    SETEMBRO DE 2007

  • 7/23/2019 Exercicios PL 2007 08 Semana1

    2/5

    Faculdade de Engenharia da Universidade do PortoLicenciatura em Engenharia Informtica e Computao

    Programao em Lgica

    2007/2008MIEIC(3 Ano)1 Sem

    Exerccios RC Representao de Conhecimento em Prolog

    Exerccio RC 1. Representao de Conhecimento Prison Break

    Represente a seguinte rvore genealgica em Prolog, recorrendo aos predicados male/1,female/1eparent/2.

    Escreva as seguintes questes em Prolog:

    a)

    Quem

    so

    os

    pais

    de

    Michael?

    b) QuemsoosfilhosdeAldo?

    Exerccio RC 2. Representao de Conhecimento Red Bull Air Race

    Represente o seguinte conhecimento em Prolog: Lamb, Besenyei, Chambliss, MacLean, Mangold, Jones e Bonhomme so pilotos.

    Lamb da equipa Breitling, Besenyei e Chambliss da Red Bull, MacLean da Mediterranean RacingTeam, Mangold da Cobra, Jones e Bonhomme da Matador.

    O avio de Lamb um MX2 e o de Besenyei, Chambliss, MacLean, Mangold, Jones e Bonhomme um Edge540. Istanbul, Budapest e Porto so circuitos. Jones venceu no Porto, Mangold venceu em Budapest e em Istanbul. Istanbul tem 9 gates, Budapest tem 6 gates e Porto tem 5 gates. Uma equipa ganha uma corrida quando um dos seus pilotos vence essa corrida.

    Escreva as seguintes perguntas em Prolog:a) Quem venceu a corrida no Porto?b) Qual a equipa que ganhou no Porto?c) Quais os pilotos que venceram mais de um circuito?d) Que circuitos tm mais de 8 gates?e) Que pilotos no pilotam um Edge540?

    Exerccio RC 3. Representao de Conhecimento Autores de Livros

    Escreva frases em Prolog que representem o seguinte conhecimento:

    Os Maias, livro, Ea de Queiroz, portugus, ingls, romance, escreveu, autor, nacionalidade, tipo, fico

    Escreva as seguintes questes em Prolog:

    a) Quem escreveu Os Maias?b) Que autores portugueses escrevem romances?c) Quais os autores de livros de fico que escreveram livros de outro tipo tambm?

    Exerccio RC 4. Representao de Conhecimento Comidas e Bebidas

    Escreva frases em Prolog que representem o seguinte conhecimento:

  • 7/23/2019 Exercicios PL 2007 08 Semana1

    3/5

    peru, frango, salmo, solha, cerveja, vinho verde, vinho maduro, Ana, Antnio, Barbara, Bruno, gosta,

    casado, combina

    Escreva as seguintes questes em Prolog:

    a) Ana e Bruno so casados e gostam de vinho verde?b) Que bebida combina com salmo?c) Que comidas combinam com vinho verde?

    Exerccio RC 5. Representao de Conhecimento Desportos e Jogos

    Escreva frases em Prolog que representem o seguinte conhecimento:

    Joo, Maria, Ana, casa, co, xadrez, damas, tnis, natao, apartamento, gato, tigre, homem, mulher,

    animal, mora_em, gosta_de, jogo, desporto

    Escreva as seguintes questes em Prolog:

    a) Quem mora num apartamento e gosta de animais?b) Ser que o Joo e a Maria moram numa casa e gostam de desportos?c) Quem gosta de jogos e de desportos?d) Existe alguma mulher que gosta de tnis e gosta de tigres?

    Exerccio RC 6. Representao de Conhecimento Tweety e Silverster

    Traduza as seguintes frases para Prolog:

    Tweety um pssaro. Goldie um peixe. Molie uma minhoca. Pssaros gostam de minhocas. Gatos

    gostam de peixes. Gatos gostam de pssaros. Amigos gostam uns dos outros. O meu gato meu amigo. O

    meu gato come tudo o que gosta. O meu gato chama-se Silvester.

    a) Use Prolog para determinar tudo o que come o Silvester?b) A resposta razovel ? Se no for, verifique se o problema est na especificao original ou na sua

    traduo para Prolog, corrija e execute novamente.

    Exerccio RC 7. Representao de Conhecimento Programao e ErrosUm estudante acostumado a usar linguagens procedimentais est a desenvolver um compilador em Prolog.Uma das tarefas consiste em traduzir um cdigo de erro para uma pseudo-descrio em portugus. O cdigopor ele usado :

    traduza(Codigo, Significado) :-

    Codigo = 1,

    Significado = integer_overflow.

    traduza(Codigo, Significado) :-

    Codigo = 2,

    Significado = divisao_por_zero.

    traduza(Codigo, Significado) :-

    Codigo = 3,

    Significado = id_desconhecido.

    Com sabe, esta no uma forma apropriada de programar em Prolog. Melhore este cdigo.

    Exerccio RC 8. Representao de Conhecimento Cargos e Chefes

    Suponha a seguinte Base de Factos Prolog:

    cargo(tecnico, rogerio).

    cargo(tecnico, ivone).

    cargo(engenheiro, daniel).

    cargo(engenheiro, isabel).

    cargo(engenheiro, oscar).

  • 7/23/2019 Exercicios PL 2007 08 Semana1

    4/5

    cargo(engenheiro, tomas).

    cargo(engenheiro, ana).

    cargo(supervisor, luis).

    cargo(supervisor_chefe, sonia).

    cargo(secretaria_exec, laura).

    cargo(diretor, santiago).

    chefiado_por(tecnico, engenheiro).

    chefiado_por(engenheiro, supervisor).

    chefiado_por(analista, supervisor).

    chefiado_por(supervisor, supervisor_chefe).

    chefiado_por(supervisor_chefe, director).

    chefiado_por(secretaria_exec, director).

    Onde os predicados cargo/2 e chefiado_por/2 so autoexplicativos. Escreva em linguagem natural asseguintes interrogaes Prolog:

    a) ?- chefiado_por(tecnico, X), chefeido_por(X,Y).

    b) ?- chefiado_por(tecnico, X), cargo(X,ivone), cargo(Y,Z).

    c) ?- cargo(supervisor, X); cargo(supervisor, X).

    d) ?- cargo(J,P), (chefiado_por(J, supervisor_chefe);chefiado_por(J, supervisor)).

    e) ?- chefiado_por(P, director), not(cargo(P, carolina)).

    Sem utilizar o computador responda qual seria a primeira resposta encontrada pelo Prolog para cada umadestas interrogaes.

    Exerccio RC 9. Representao de Conhecimento Alunos e Professores

    Considere a seguinte base de factos exemplo:

    aluno(joao, paradigmas).

    aluno(maria, paradigmas).

    aluno(joel, lab2).

    aluno(joel, estruturas).

    frequenta(joao, feup).

    frequenta(maria, feup).

    frequenta(joel, ist).

    professor(carlos, paradigmas).

    professor(ana_paula, estruturas).

    professor(pedro, lab2).

    funcionario(pedro, ist).funcionario(ana_paula, feup).

    funcionario(carlos, feup).

    Escreva as seguintes regras em prolog:

    a) Quem so os alunos do professor X?b) Quem so as pessoas da universidade X? (alunos ou docentes)c) Quem colega de quem? Se aluno: colega se for colega de disciplina ou colega de curso ou colega

    de universidade. Se professor: se for professor da mesma universidade.

    Exerccio RC 10. Representao de Conhecimento Carros e Valores

    Considere a seguinte base de factos exemplo:comprou(joao, honda).

    ano(honda, 1997).

  • 7/23/2019 Exercicios PL 2007 08 Semana1

    5/5

    comprou(joao, uno).

    ano(uno, 1998).

    valor(honda, 20000).

    valor(uno, 7000).

    a) Crie uma regra pode_vender onde o primeiro argumento a pessoa, o segundo o carro e oterceiro o ano actual (no especificar homem ou carro nas regras), onde a pessoa s podevender o carro se o carro for comprado por ela nos ltimos 10 anos e se seu valor for menor do que10000 Euros.