Guião para a Primeira Aula Prática de IPL

Delfim F. Marado Torres

3 de Março de 1999

Agradeço comentários, sugestões ou correccões. O meu endereço de correio electrónico é < delfim@mat.ua.pt > . Desde já obrigado.

1  Objectivos da aula

2  Comandos do Prolog

O texto de um programa em Prolog é normalmente criado num ficheiro, ou conjunto de ficheiros, usando um dos editores de texto standard (por exemplo o edit que vem com o MS-DOS ou o notepad do Windows). O interpretador de Prolog pode depois ser instruído a ler os programas ou bases de conhecimento destes ficheiros - a este processo chamamos consultar. Embora esses ficheiros possam ter uma extensão arbitrária, optamos por usar a extensão .pl, que é a extensão por defeito usada pelo SICStus e pelo SWI-Prolog.

2.1  Iniciar o interpretador de Prolog

Existe um icon para o interpretador SWI-Prolog no Windows. Depois de clicar duas vezes nesse icon, o interpretador de Prolog fica à espera de ``ordens'', aparecendo o prompt

         ?-

2.2  Consultar bases de conhecimento

Para consultar uma base de conhecimento que se encontra no ficheiro info.pl, na directoria

         c:\prolog\ipl\

introduzir

         ?-consult('c:/prolog/ipl/info.pl').

2.3  Mais Comandos

3  Exemplo (videos.pl)

% Pequena Base de Conhecimento sobre video-gravadores
% usa-se o predicado video de aridade 8:
% video(Marca,
%       Modelo,
% Tipo_de_video,
% Mono_ou_stereo,
% Uma_ou_2_velocidades,
% Insert_ou_nao,
% Pip_ou_nao,
% Dobragem_audio_ou_nao).

video(jvc,d540,vhs,mono,uma_velocidade,n_insert,n_pip,n_dobragem_audio).
video(jvc,fc100,vhs,mono,dupla_velocidade,n_insert,n_pip,n_dobragem_audio).
video(jvc,d830,vhs,stereo,dupla_velocidade,n_insert,n_pip,dobragem_audio).
video(jvc,d960,vhs,stereo,dupla_velocidade,insert,n_pip,dobragem_audio).
video(jvc,s5800,s_vhs,stereo,dupla_velocidade,insert,n_pip,dobragem_audio).

video(sanyo,vhr8100,vhs,mono,uma_velocidade,n_insert,n_pip,n_dobragem_audio).
video(sanyo,vhr8500,vhs,mono,dupla_velocidade,n_insert,n_pip,n_dobragem_audio).
video(sanyo,vhr8700,vhs,stereo,dupla_velocidade,n_insert,n_pip,n_dobragem_audio).
video(sanyo,vhr4890,vhs,stereo,dupla_velocidade,insert,pip,dobragem_audio).

video(grundig,vs630,vhs,mono,uma_velocidade,n_insert,n_pip,n_dobragem_audio).
video(grundig,vs810,vhs,mono,uma_velocidade,insert,n_pip,n_dobragem_audio).
video(grundig,vs660,vhs,stereo,dupla_velocidade,n_insert,n_pip,n_dobragem_audio).
video(grundig,vs680,s_vhs,stereo,dupla_velocidade,insert,pip,dobragem_audio).

3.1  Algumas perguntas para colocar ao PROLOG

4  Exercício: criar ficheiro socios.pl

4.1  Algumas perguntas para colocar ao PROLOG depois de criada a base de conhecimento e feita a respectiva consulta

5  Mais ideias a reter