Exercícios Práticos: Programação lógica com Prolog
Preparação
Para estes exercícios você vai precisar do ambiente SWI-Prolog. Ele está disponível em: http://www.swi-prolog.org/download/stable
Predicados
- Escreva um predicado em Prolog para determinar se há exatamente um elemento separando 2 dados elementos de uma lista. Exemplo de uso do predicado:
?- um_entre(b,c,[a,b,c,d]). false. ?- um_entre(b,d,[a,b,c,d]). true . ?- um_entre(a,d,[a,b,c,d]). false.
Problema de lógica
Resolva em Prolog o problema de lógica proposto em http://rachacuca.com.br/logica/problemas/esquadrilha-de-avioes/. Nesse problema, há uma esquadrilha de 5 aviões em um show aéreo. Cada um deles solta fumaça de uma cor e possui uma anomalia diferente. Além disso, os aviões são comandados por cinco experientes pilotos que praticam um esporte cada um, além de preferirem uma bebida distinta. Sua tarefa é encontrar todas as informações a partir das seguintes dicas:
- O avião do Cel. Milton solta fumaça vermelha.
- O rádio transmissor do Ten. Walter está com problemas.
- O piloto do avião que solta fumaça verde adora pescar.
- O Major Rui joga futebol nos finais de semana.
- O avião que solta fumaça verde está imediatamente à direita do avião que solta fumaça branca.
- O piloto que bebe leite está com o altímetro desregulado.
- O piloto do avião que solta fumaça preta bebe cerveja.
- O praticante de natação pilota o avião que solta fumaça vermelha.
- O Cap. Farfarelli está na ponta esquerda da formação.
- O piloto que bebe café voa ao lado do avião que está com pane no sistema hidráulico.
- O piloto que bebe cerveja voa ao lado do piloto que enfrenta problemas na bússola.
- O homem que pratica equitação gosta de beber chá.
- O Cap. Nascimento bebe somente água.
- O Cap. Farfarelli voa ao lado do avião que solta fumaça azul.
- Na formação, há um avião entre o que tem problema hidráulico e o com pane no altímetro.
- Um dos pilotos joga tênis.
- Há um avião com problema de temperatura.
Material de apoio
- Resolvendo quebra-cabeças em Prolog
Exemplo de solução de problema de lógica em Prolog. - Programação Lógica
Slides com o resumo do conteúdo necessário para estes exercícios. - SWI-Prolog Reference Manual
Manual de referência do SWI Prolog.