Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
Programação em Lógica Renata Carvalho UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Programação em Lógica • No paradigma lógico (também conhecido como paradigma descriHvo ou declaraHvo) o programador implementa uma descrição do problema e não as instruções para sua resolução • Prolog é uma linguagem para programação em lógica, ou seja, é uma linguagem descriHva/ declaraHva • Um programa Porlog consHtui-‐se de uma coleção de fatos e regras que são uHlizadas por um “motor de inferência” para checar se uma consulta pode ser deduzida desta coleção UHlização Definição Busca Inserção Remoção UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Porlog • Criada em 1972 por Colmerauer e Roussel • É mais adequada para problemas onde é necessário descrever conhecimento • Exemplo: • Em aplicações que realizam computação simbólica • Na compreensão de linguagem natural • Em sistemas especialistas UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Sintaxe Prolog • Os dados em Prolog podem ser um dos seguintes Hpos: • Variáveis • Iniciadas com maiúsculas ou underline (_), seguidos de qualquer caractere alfanumérico • Átomos • São constantes, devem ser iniciadas com minúsculas seguidas de qualquer caractere alfanumérico ou qualquer sequência entre aspas simples (‘ ’) • Inteiros • Qualquer sequência numérica que não contenha ponto. Caracteres entre aspas duplas (“ “) são tratados como listas de inteiros • Floats • Números com um ponto e pelo menos uma casa decimal • Listas • Sequência ordenada de elementos entre [] e separados por vírgula UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Sintaxe Prolog • Os comandos write e read escrevem e lêem sobre as entradas padrão (monitor e teclado) • Para escrever: • write(‘Teste de impressão’). Correto • write(Teste de impressão) Errado • write(X) Correto • write(joao) Correto • Para ler: • read(X) Correto • read(x) Errado • read(Joao) Correto • read(joao) Errado UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Sintaxe Prolog • Alguns caracteres são especiais para impressão: • nl, \n, \l – nova linha • \r – retorna ao início da linha • \t – tabulação • \% -‐ imprime o % • Comentários • % -‐ comentário de uma linha • /* */ -‐ comentário de todo o texto entre os símbolos UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Sintaxe Prolog • Em Prolog, todos os comandos devem ser finalizados com ponto (.) • Exemplos • write(‘Digite o valor de X:’), nl, read(X), nl, write(X), nl. • atom(rENATA). • var(X). • is_list([a, b, c]). UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exercício • Classifique os termos abaixo como átomo, variável, número ou lista: • rENATA • 23 • [a, b, c] • Variavel23 • variavel23 • aulas de paradigamas • ‘Renata’ • 65. • 23.0 • ‘aulas de paradigmas’ • _Var • “a” UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exercício • Você pode checar as respostas uHlizando os comandos: • atom(termo) – checa se o termo é um átomo • var(termo) – checa se o termo é uma variável • number(termo) – checa se o termo é um número (inteiro ou float) • Is_list(termo) – checa se o termo é uma lista UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Fatos • Um programa Prolog é uma coleção de fatos e regras • Fatos são sempre verdadeiros, mas as regras precisam ser avaliadas • Como criar um fato em uma base Prolog: • homem(x). – significa que “x é um homem” • genitor(x, y) – significa que “x é genitor de y” • É responsabilidade do programador definir os predicados corretamente UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Fatos • Vamos considerar a seguinte árvore genealógica Ana Luísa Pedro Laura Fernando Felipe Rafael Isabela UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Fatos • Definidos os predicados: • masculino(x) – significando que “x é do sexo masculino” • feminino(x) – significando que “x é do sexo feminino” • genitor(x, y) – significando que “x é genitor de y” UNICAP – UNIVERSIDADE CATÓLICA DE PERNAMBUCO Renata Carvalho Exercício • Usando apenas fatos, descreva as seguintes relações: • Ana, Luísa, Laura e Isabela são do sexo feminino; • Pedro, Fernando, Felipe e Rafael são do sexo masculino; • Ana e Pedro são os pais de Fernando; • Luísa e Pedro são os pais de Laura; • Fernando é pai de Felipe e Rafael; • Rafael é pai de Isabela.
Compartilhar