Tipos de igualdade X = Y é verdadeiro se X é igual a Y. X is E é verdadeiro se X é a avaliação da expressão E. E1 =:= E2 é verdadeiro se a avaliação da.

Slides:



Advertisements
Apresentações semelhantes
Presenter’s Notes Some Background on the Barber Paradox
Advertisements

Avaliador de Expressões
Prolog: Predicados Built-in 1
3 Paradigmas e Linguagens de Programação
As Horas Que horas são?.
Objectivos Objectivos
XSLT e recursividade estrutural
Programação Orientada aos Objectos Paulo Marques Departamento de Eng. Informática Universidade de Coimbra Set/2005 Uma Introdução Usando.
Elsa Carvalho 241 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Interpretação.
Algoritmos de ordenação e estruturas de dados Baseado em progrProlog4.
Introdução à Linguagem Prolog
SQL 3 Recursão em SQL AULA 7 PGC Sistemas de Banco de Dados
Subconsultas ou Consultas Aninhadas
DIRETORIA ACADÊMICA NÚCLEO DE CIÊNCIAS HUMANAS E ENGENHARIAS DISCIPLINA: INGLÊS FUNDAMENTAL - NOITE PROFESSOR: JOSÉ GERMANO DOS SANTOS PERÍODO LETIVO
Rodar XSB Prolog no Unix Shell
Rodar Prolog2 no Unix Shell Conectar-se em limoeiro. Incluir /usr/local/prolog2/sys no seu path. Digitar prolog2 no prompt Unix. Digitar consult(" ").
Prolog: Predicados Built-in 2
LIFE: predicados, funções e sorts built-in Jacques Robin Paulo Oliva Leonardo Lemos DI-UFPE.
LIFE: integração de predicados, funções e classes
LIFE: integração de predicados, funções e classes
LIFE Logic, Inheritance, Functions and Equations Ioram Schechtman Sette.
A.4. Trabalhando com elementos de biblioteca STL – Standard Template Libraby Disponibiliza um conjunto de classes templates, provendo algoritmos eficientes.
Inferência em lógica de primeira ordem
7 Abstração Genérica Unidades genéricas e instanciação.
Instrutor: Nilo Menezes
Modularização: funções e procedimentos
Programação Baseada em Objectos Desenho de TAD
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Sintaxe e Semântica do PROLOG.
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Prolog Programação Lógica Ícaro A. Souza.
Fazendo e Brincando: Confecção de Materiais para as Aulas de Inglês
Introdução aos Agentes Autónomos (UD2) Teorias de Agentes e Agentes Deliberativos IST- 2003/2004.
Diagramas de Interacção
Avaliação Constituição dos grupos de trabalho:
Lecture 4 Pressure distribution in fluids. Pressure and pressure gradient. Hydrostatic pressure 1.
Meu primeiro Plugin para Revit
Banco de Dados Aplicado ao Desenvolvimento de Software
INF 1771 – Inteligência Artificial
Linguagem Funcional 2 Linguagem Funcional 2 - LF2 Estende LF1 com funções de alta ordem Uma função passa a ser um valor O contexto inclui um único componente:
Procedimentos Pré-definidos em prolog comunicação
QBE e QUEL Ana Carolina Salgado Fernando Fonseca Valéria Times.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 2: Otimizando a modelagem para documentação Tiago Marçal Ricotta Gerente.
Conceitos Programas Programação Linguagens de Programação SQL.
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
Princípios da Programação em Prolog
©Silberschatz, Korth and Sudarshan (modificado)4.1.1Database System Concepts Capítulo 4: SQL Estrutura básica Operações com conjuntos Funções de agregação.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 3: Utilizando Legends Tiago Marçal Ricotta Gerente de Projetos – Brasoftware.
Programação Declarativa 2 INTRODUZIR REGRAS Relação X é descendente de Y (denotada pelo predicado offspring (X,Y)) Aproximação 1 (definição exaustiva)
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 6: Quantitativos de áreas precisos Tiago Marçal Ricotta Gerente de Projetos.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 5: Trabalhando em colaboração Tiago Marçal Ricotta Gerente de Projetos –
Autodesk Revit para projetos executivos de arquitetura Módulo 4: Representação gráfica de diversas fases Tiago Marçal Ricotta Gerente de Projetos – Brasoftware.
© 2012 Autodesk Autodesk Revit para projetos executivos de arquitetura Módulo 1: Configurando um template Tiago Marçal Ricotta Gerente de Projetos – Brasoftware.
Aritmética Em Prolog podemos fazer uso de operadores aritméticos não lógicos pré-definidos pelo sistema, como por exemplo >, >=, +, *, -, etc. A interrogação.
3ª sessão e Sumário Comunicação intercultural: 1. a noção de cultura 2. língua e identidade 3. fatores “verticais” e.
Elsa Carvalho 18 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Programação recursiva.
MAC Engenharia de Software Marco A. GerosaIME / USP Mais sobre análise e Outros Diagramas UML MAC0332 Engenharia de Software Marco Aurélio Gerosa.
Redes Sociais Online ISCTE – Instituto Universitário de Lisboa MCCTI Mónica Oliveira 13 de Março de 2013.
PROGRAMAÇÃO LÓGICA Vinicius Ponte Machado Aula 13 – Predicados de Controle UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI Departamento de Informática & Estatística.
Limit Equlibrium Method. Limit Equilibrium Method Failure mechanisms are often complex and cannot be modelled by single wedges with plane surfaces. Analysis.
Prática de Banco de Dados Créditos: Prof. Jefferson Silva Adaptações: Prof. Nécio de Lima Veras.
Metade das crianças fazem de tocas, ficam em pé com as pernas afastadas. A outra metade + 1, são os coelhos que correm à volta da toca. Um aluno é.
IF E ITERAÇÃO WHILE Dilvan Moreira (baseado no livro Big Java e T. Munzner)
Subway Network - São Paulo City
LOREM IPSUM Lorem Ipsum It is a long established fact that a reader will be distracted by the readable content of a page when looking at its layout.
Three analogies to explain reactive power Why an analogy? Reactive power is an essential aspect of the electricity system, but one that is difficult to.
Wondershare software On the [View] menu, point to [Master], and then click [Slide Master] or [Notes Master].
How to learn English THE EASY WAY. Ways to learn english Music; Games; Apps; Movies/Series;
Introduction to density estimation Modelação EcoLÓGICA
Transcrição da apresentação:

tipos de igualdade X = Y é verdadeiro se X é igual a Y. X is E é verdadeiro se X é a avaliação da expressão E. E1 =:= E2 é verdadeiro se a avaliação da expressão E1 é idêntica à avaliação da expressão E2. E1 =\= E2 é verdadeiro se a avaliação da expressão E1 não é idêntica à avaliação da expressão E2. T1 == T2 é verdadeiro se o termo T1 tem a mesma estrutura e todos os subtermos idênticos ao termo T2. T1 \== T2 é verdadeiro se o termo T1 não tem a mesma estrutura e/ou todos os subtermos idênticos ao termo T2. Exemplos ? f(a,b) == f(a,b). yes ? f(a,b) == f(a,X). no ? f(a,X) == f(a,Y). no ? X \== Y. yes ? t(X,f(a,Y)) == t(X,f(a,Y)). yes

Manipulação de bases de dados Uma base de dados relacional é uma especificação de conjunto de relações. Um programa em PROLOG é um tipo de base de dados relacional onde a especificação de relações está parcialmente explícita através dos factos e parcialmente implícita através das regras. Existem predicados pré-definidos que permitem actualizar a base de dados (através da adição de novas cláusulas ou remoção de cláusulas existentes) durante a execução de um programa PROLOG.

Procedimentos Pré-Definidos em PROLOG PROCEDIMENTO assert assert(C) adiciona a cláusula C à base de dados (activa). PROCEDIMENTO asserta asserta(C) adiciona a cláusula C ao início da base de dados (activa). Uma aplicação do procedimento asserta é guardar objectivos que foram previamente computados. PROCEDIMENTO assertz assertz(C) adiciona a cláusula C ao fim da base de dados (activa). Existe uma relação entre o procedimento consult e assertz: podemos ler um ficheiro (procedimento consult) através da leitura cláusula a cláusula e introduzindo cada cláusula lida através de assertz na base de dados. PROCEDIMENTO retract retract(C) remove a cláusula C da base de dados (activa).

Procedimentos Pré-Definidos em PROLOG Exemplos ? assert(p(a)),assertz(p(b)),asserta(p(c)). yes ? p(X). X = c; X = a; X = b; no ?- retract(p(a)). yes ? p(X). X = c; X = b; no

PROCEDIMENTO bagof Exemplos age(peter,7). age(ann,5). age(pat,8). age(tom,5). ? bagof(Child,age(Child,5),List). List = [ann,tom]; no ? bagof(Child,age(Child,Age),List). Age = 7 List = [peter]; Age = 8 List = [pat]; Age = 5 List = [ann,tom]; no ? bagof(Child,Age^age(Child,Age),List). List = [peter,ann,pat,tom]; no bagof(+Template, +Goal, -Bag) Unify Bag with the alternatives of Template, if Goal has free variables besides the one sharing with Template bagof will backtrack over the alternatives of these free variables, unifying Bag with the corresponding alternatives of Template. The construct +Var^Goal tells bagof not to bind Var in Goal. bagof/3 fails if Goal has no solutions. bagof(X,P,L) é verdadeiro se a lista L contém todo o objecto X que satisfaz o objectivo P.

PROCEDIMENTO setof Setof(X,P,L) é verdadeiro se a lista L (ordenada, por ordem alfabética ou por ordem crescente, no caso dos números, e sem elementos repetidos) contém todo o objecto X que satisfaz o objectivo P. Exemplos ? setof(Child,Age^age(Child,Age),ChildList), setof(Age,Child^age(Child,Age),AgeList). ChildList = [ann,pat,peter,tom] AgeList = [5,7,8]; No ? setof(Age/Child,age(Child,Age),List). List = [5/ann,5/tom,7/peter,8/pat]; No ?- setof(Child/Age,age(Child,Age),List). List = [ann/5, pat/8, peter/7, tom/5] ; No setof(+Template, +Goal, -Set) Equivalent to bagof/3, but sorts the result using sort/2 to get a sorted list of alternatives without duplicates.

PROCEDIMENTO findall findall(X,P,L) é verdadeiro se a lista L contém todo o objecto X que satisfaz o objectivo P. Exemplo ? findall(Child,age(Child,Age),List). List = [peter,ann,pat,tom]; No findall(+Template, +Goal, -Bag) Creates a list of the instantiations Template gets successively on backtracking over Goal and unifies the result with Bag. Succeeds with an empty list if Goal has no solutions. findall/3 is equivalent to bagof/3 with all free variables bound with the existence operator (^), except that bagof/3 fails when goal has no solutions.