Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
|
|
- Baltazar Botelho Castro
- 6 Há anos
- Visualizações:
Transcrição
1 Predicados extra lógicos Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
2 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro Santos Soares
3 Introdução Todas as implementações Prolog oferecem um certo número de predicados pré definidos orientados a execução de rotinas que são necessárias com muita freqüência são de difícil programação se destinam a um domínio particular realçado pela implementação
4 Tipos de termos Os termos Prolog podem assumir desde simples constantes até estruturas complexas Se um termo é uma variável, então esta pode ou não estar instanciada em algum momento da execução do programa Exemplo: adicionar os valores de duas variáveis, X e Y, por meio de Z is X + Y Deseja se verificar se as variáveis X e Y estão instanciados com valores inteiros Pode se utilizar o predicado pré definido integer(x), que é verdadeiro se X estiver instanciada com um valor inteiro..., integer(x), integer(y), Z is X + Y,...
5 Tipos de termos Luis, A. M. Palazzo, Introdução à Programação Prolog, Educat, 1997.
6 Tipos de termos
7 Tipos de termos? X=1, classifica(x). Tipo Atômico: > Numero Inteiro? X=[], classifica(x). Tipo Atômico: > Lista Vazia? X=tio(josé), classifica(x). Termo Estruturado
8 Construção e decomposição de termos Há três predicados pré definidos para a decomposição de termos e construção de novos termos: functor/3 arg/3 =../2
9 Construção e decomposição de termos =../2 "univ (operador infixo) O objetivo Termo =.. L é bem sucedido se L é uma lista contendo como primeiro elemento o functor principal de Termo, seguido pelos seus argumentos.? f(a, b) =.. L. L=[f, a, b]? T =.. [retângulo, 3, 5]. T=retângulo(3, 5)? Z =.. [p, X, f(x, Y)]. Z=p(X, f(x, Y))
10 Construção e decomposição de termos functor/3 functor(termo, Functor, Aridade) é verdadeiro se Functor é o functor principal de Termo e Aridade é o seu número de argumentos arg/3 arg(n, Termo, Argumento) é verdadeiro se Argumento é o N ésimo argumento em Termo
11 Construção e decomposição de termos Exemplos? functor(teste(f(x), X, t), Functor, Aridade). Functor=teste Aridade=3? arg(2, teste(x, t(a), t(b)), Argumento). Argumento=t(a)? functor(d, data, 3), arg(1, D, 5), arg(2, D, abril), arg(3, D, 1994). D=data(5, abril, 1994)
12 Programas ou Bases de Dados Modelo relacional uma base de dados é a especificação de um conjunto de relações Um programa Prolog pode ser visto como uma base de dados A especificação das relações é parcialmente implícita (regras) e parcialmente explícita (fatos).
13 Manipulação da base de dados Prolog possui cinco comandos básicos para a manipulação da base de dados: assert/1 asserta/1 assertz/1 Adicionar informação retract/1 retractall/1 Remover informação
14 Inicie com uma base de dados vazia? listing. true
15 Using assert/1? assert(feliz(maria)). true
16 Using assert/1 feliz(maria).? assert(feliz(maria)). true?
17 Using assert/1 feliz(maria).? assert(feliz(maria)). true? listing. feliz(maria).?
18 Using assert/1 feliz(maria).? assert(feliz(maria)). true? listing. feliz(maria).? assert(feliz(vicente)), assert(feliz(marcelo)), assert(feliz(bruno)), assert(feliz(vicente)).
19 Using assert/1 feliz(maria). feliz(vicente). feliz(marcelo). feliz(bruno). feliz(vicente).? assert(feliz(maria)). true? listing. feliz(maria).? assert(feliz(vicente)), true? assert(feliz(marcelo)), assert(feliz(bruno)), assert(feliz(vicente)).
20 Alterando o significado de predicados As manipulações na base de dados alteraram o significado do predicado feliz/1 Mais genericamente: Os comandos de manipulação da base de dados nos dão a habilidade de alterar o significado dos predicados em tempo de execução.
21 Predicados estáticos e dinâmicos Predicados cujo o significado se altera durante o tempo de execução são chamados de predicados dinâmicos feliz/1 é um predicado dinâmico Alguns interpretadores Prolog necessitam de uma declaração de predicados dinâmicos. Predicados comuns são algumas vezes chamados de predicados estáticos.
22 Inserindo regras feliz(maria). feliz(vicente). feliz(marcelo). feliz(bruno). feliz(vicente).? assert( (ingenuo(x): feliz(x)).
23 Inserindo regras feliz(maria). feliz(vicente). feliz(marcelo). feliz(bruno). feliz(vicente).? assert( (ingenuo(x): feliz(x)). true? ingenuo(a): feliz(a).
24 Removendo informação Agora sabemos como adicionar informação à base de dados do Prolog Fazemos isto como o predicado assert/1 Como nós removemos informação?
25 Removendo informação Agora sabemos como adicionar informação à base de dados do Prolog Fazemos isto como o predicado assert/1 Como nós removemos informação? Fazemos isto como o predicado retract/1 que removerá uma cláusula Podemos remover muitas cláusulas simultaneamente com o predicado retractall/1
26 Usando retract/1 feliz(maria). feliz(vicente). feliz(marcelo). feliz(bruno). feliz(vicente).? retract(feliz(marcelo)). ingenuo(a): feliz(a).
27 Usando retract/1 feliz(maria). feliz(vicente). feliz(bruno). feliz(vicente).? retract(feliz(marcelo)). true? ingenuo(a): feliz(a).
28 Usando retract/1 feliz(maria). feliz(vicente). feliz(bruno). feliz(vicente).? retract(feliz(marcelo)). true? retract(feliz(vicente)). ingenuo(a): feliz(a).
29 Usando retract/1 feliz(maria). feliz(bruno). feliz(vicente).? retract(feliz(marcelo)). true? retract(feliz(vicente)). true ingenuo(a): feliz(a).
30 Usando retract/1 feliz(maria). feliz(bruno). feliz(vicente).? retract(feliz(x)). ingenuo(a): feliz(a).
31 Usando retract/1 feliz(bruno). feliz(vicente).? retract(feliz(x)). X=maria; ingenuo(a): feliz(a).
32 Usando retract/1 feliz(vicente).? retract(feliz(x)). X=maria; X=bruno; ingenuo(a): feliz(a).
33 Usando retract/1? retract(feliz(x)). X=maria; X=bruno; X=vicente; ingenuo(a): feliz(a).
34 Usando retract/1 ingenuo(a): feliz(a).? retract(feliz(x)). X=maria; X=bruno; X=vicente; false?
35 Programas ou Bases de Dados Exemplo? crise. false.? assert(crise). true.? crise. true.? retract(crise). true.? crise. false
36 Programas ou Bases de Dados bom: sol, not(chuva). instavel: sol, chuva. deprimente: chuva, neblina. chuva. neblina.? bom. false.? deprimente. true.? retract(neblina). true.? deprimente. false.? assert(sol) true.? instavel. true.? retract(chuva). true.? bom. true.
37 Programas ou Bases de Dados Pode se especificar a posição na qual a cláusula deve ser inserida na base de dados asserta(c) introduz a cláusula C no início da base de dados assertz(c) adiciona a cláusula C no final da base de dados
38 Programas ou Bases de Dados? assert(p(a)), assertz(p(b)), asserta(p(c)). true.? p(x). X=c; X=a; X=b; false.
39 Programas ou Bases de Dados Relação entre consult/1 e assertz/1 para "consultar" um arquivo, ler cada um dos seus termos (cláusulas) e inseri los no final da base de dados consult(x) : open(x,read,a), read(a,c),transfere(a,c), close(a). transfere(f,_) : at_end_of_stream(f),!. transfere(a,c) : assertz(c), read(a,c1),transfere(a,c1).
40 Programas ou Bases de Dados Em algumas implementações Prolog asserta/1, assertz/1e retract/1 só funcionam em predicados que tenham sido declarados dinâmicos Deve aparecer antes da definição ou uso do predicado dinâmico : dynamic Nome/Aridade. A intenção é evitar a alteração acidental da base de conhecimento Exemplo: : dynamic gosta/2.
41 Programas ou Bases de Dados Uma aplicação útil do predicado asserta/1 é armazenar respostas já computadas para consultas formuladas ao programa Exemplo: predicado resolve(problema, Solução)? resolve(prob1,sol), asserta(resolve(prob1, Sol)). Se o primeiro objetivo acima é bem sucedido, então a resposta(solução) é armazenada e utilizada na resposta a questões futuras
42 Programas ou Bases de Dados Adicionar a correspondente tabela de multiplicação à base de dados tabmult : L = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9], membro(x, L), membro(y, L), Z is X*Y, assert(produto(x, Y, Z)), fail. tabmult.? produto(a, B, 8). A=1 B=8; A=2 B=4; A=4 B=2; A=8 B=1; false.
43 Programas ou Bases de Dados Cuidado O uso abusivo de assert retract pode obscurecer o significado do programa e dificultar a compreensão do que é verdadeiro e o que não é num dado instante O comportamento resultante do programa pode se tornar difícil de entender, de explicar e de confiar
44 Recursos para o controle de programas call(p) dispara um objetivo P. Será bem sucedido se e somente se P também o for repeat objetivo que sempre é bem sucedido. Sua principal propriedade é ser não determinístico toda vez que é alcançado por backtracking ele gera um caminho alternativo para a execução repeat. repeat : repeat.
45 Recursos para o controle de programas Exemplos do uso do repeat quadrado : repeat, read(x), (X=fim,!; Y is X*X, write(y), fail). executa : repeat, menu(x), (X=fim,!; exec(x), fail).
46 Bagof, Setof e Findall Pode se gerar, através de backtracking, todos os objetos, um a um, que satisfazem algum objetivo Cada vez que uma nova solução é gerada, a anterior desaparece e não é mais acessível O que fazer quando deseja se dispor de todos os objetos gerados?
47 Bagof, Setof e Findall bagof(x, P, L) irá produzir uma lista L de todos os objetos X que satisfazem ao objetivo P classe(a, vog). classe(b, con). classe(c, con). classe(d, con). classe(e, vog)....? bagof(letra, classe(letra, con), Consoantes). Consoantes=[b, c, d,..., z]
48 Bagof, Setof e Findall? bagof(letra, classe(letra, Classe), Letras). Classe=vog, Letras=[a, e, i, o, u]; Classe=con, Letras=[b, c, d, f,..., z]. Se não houver solução para P no objetivo bagof(x, P, L), então este falha Se algum objeto X é encontrado repetidamente, todas as suas ocorrências irão aparecer em L possibilidade de existência de elementos duplicados em L
49 Bagof, Setof e Findall setof(x, P, L) irá produzir uma lista L dos objetos X que satisfazem a P, sendo que a lista L estará ordenada e itens duplicados serão eliminados? setof(classe/letra, classe(letra, Classe), Letras). Letras=[con/b, con/c,..., con/z, vog/a,..., vog/u]
50 Bagof, Setof e Findall findall(x, P, L) produz a lista L de todos os objetos X que satisfazem P Diferença entre findall e o bagof todos os objetos X são coletados sem considerar eventuais soluções diferentes para as variáveis em P que não são compartilhadas com X? findall(letra, classe(letra, Classe), Letras). Letras=[a, b, c,..., z]
51 Bagof, Setof e Findall idade(pedro,7). idade(ana,5). idade(alice,8). idade(tomaz,5).? findall(crianca,idade(crianca,idade),l). L = [pedro,ana,alice,tomaz]? findall(crianca/idade,idade(crianca,idade),l). L = [pedro/7, ana/5, alice/8, tomaz/5]? findall(crianca/idade, (idade(crianca,idade),idade>5),l). L = [pedro/7, alice/8]
52 Bagof, Setof e Findall Se não há nenhum objeto X que satisfaça P, então o predicado findall(x, P, L) resulta bem sucedido com L=[]
53 Referências Luis, A. M. Palazzo, Introdução à Programação Prolog, Educat, Slides da Profa Solange ICMC USP Inteligência Artificial
Entrada e Saída. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
Entrada e Saída Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Arquivo de Entrada Exemplo do uso do see... see(arq1). le_do_arquivo(informacao). see(user).... Arquivos de Saída A fonte de
Leia maisGSI010 - Programação Lógica Predicados extra-lógicos
GSI00 - Programação Lógica Predicados extra-lógicos Aula de hoje Predicados extra-lógicos Operações com listas Operações com as bases de fatos Predicados extra-lógicos Definição Predicado para trabalhar
Leia maisInteração com o usuário
Erick Galani Maziero Estagiário PAE SCC-230 Inteligência Artificial Informação explícita Conhecimento inferido ou deduzido (máquina prolog) Pode-se desejar programar proceduralmente Interação com o usuário
Leia maisProgramação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel
Programação Lógica Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 7 de outubro de 2015 Paulo H. R. Gabriel (FACOM/UFU)
Leia maisVamos agora abordar um conjunto de aspectos complementares, incluindo:
Alguns aspectos complementares da linguagem PROLOG Vamos agora abordar um conjunto de aspectos complementares, incluindo: A conversão de strings em listas de códigos A carga de programas e Bases de Conhecimento
Leia maisEntrada e Saída. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
Entrada e Saída Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro Santos
Leia maisUnificação PROGRAMAÇÃO EM LÓGICA. Unificação. Unificação. Unificação. Unificação. Linguagem Prolog Parte III
PROGRAMAÇÃO EM LÓGICA CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte III Prof. Sergio Ribeiro Adaptado do material da Profª Elaine Ribeiro Universidade
Leia maisEXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA
FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA LUÍS PAULO REIS DANIEL CASTRO SILVA MESTRADO INTEGRADO EM ENGENHARIA INFORMÁTICA E COMPUTAÇÃO PROGRAMAÇÃO EM LÓGICA
Leia maisAlteração da Base de Dados. Programação Lógica. Alteração da Base de Dados. Alteração da Base de Dados
Programação Lógica Prolog: alteração da base de dados, predicados que fornecem, exemplos Profa Heloisa de Arruda Camargo Alguns predicados do Prolog modificam a base de dados em tempo de execução abolish(pred)
Leia maisAula 2 Programação Lógica Sintaxe Prolog. Profa. Elaine Faria UFU -2014
Aula 2 Programação Lógica Sintaxe Prolog Profa. Elaine Faria UFU -2014 Créditos O material a seguir consiste de adaptações e extensões dos originais gentilmente cedidos pelo Prof. Alexsandro Santos Soares
Leia maisProgramação Lógica. A Linguagem Prolog. Paulo Henrique Ribeiro Gabriel Faculdade de Computação Universidade Federal de Uberlândia
Programação Lógica A Linguagem Prolog Paulo Henrique Ribeiro Gabriel phrg@ufu.br Faculdade de Computação Universidade Federal de Uberlândia 21 de agosto de 2015 Paulo H. R. Gabriel (FACOM/UFU) Programação
Leia maisLinguagens Lógicas. Aluno: Victor Rocha
Linguagens Lógicas Aluno: Victor Rocha Roteiro Introdução Cálculo de Predicados Proposições Conectores Lógicos Variáveis Tipos de Cláusulas fatos regras Banco de Dados Prolog Fatos em Prolog Questões Unificação
Leia maisConferência Predicados de corte e falha
Inteligência Artificial Conferência Predicados de corte e falha O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Descreva como funcionam os predicados "!" E "fail". Use os predicados de corte e falha
Leia maisProf. A. G. Silva. 31 de agosto de Prof. A. G. Silva Programação em Lógica 31 de agosto de / 1
Programação em Lógica Prof. A. G. Silva 31 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 31 de agosto de 2017 1 / 1 Listas (revisão) Elementos separados por vírgulas entre colchetes: [a, b,
Leia maisProlog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando.
Prolog MATA56 - Paradigmas de Linguagens de Programação, UFBA, 2016.1. Prof. Rodrigo Rocha (rodrigo@dcc.ufba.br) Baseada na lógica de primeira ordem (lógica de predicados) Concebida na década de 1970
Leia maisPrática 6 - Predicados extra-lógicos
GSI00 - Programação Lógica Prática 6 - Predicados extra-lógicos Predicados extra-lógicos Utilize os seguintes predicados nos exercícios a seguir, =.. findall bagof setof maplist assert retract call Exercícios
Leia maisN rainhas Colorir um mapa. MasterMind. 1 Não determinismo:geração e Teste. 2 Modificar a Base de Dados
1 Não determinismo:geração e Teste N rainhas Colorir um mapa 2 Modificar a Base de Dados MasterMind Nelma Moreira (DCC-FCUP) Lógica e Programação Aula 23 1 / 10 Não determinismo:geração e Teste Esquema
Leia maisUNIDADE ACADÊMICA: Faculdade de
UNIVERSIDADE FEDERAL DE UBERLÂNDIA FACULDADE DE COMPUTAÇÃO BACHARELADO EM SISTEMAS DE INFORMAÇÃO PLANO DE DISCIPLINA DISCIPLINA: Programação Lógica ( X ) SEMESTRAL - ( ) ANUAL CÓDIGO: GSI010 PERÍODO: 2
Leia maisProf. A. G. Silva. 14 de setembro de Prof. A. G. Silva Programação em Lógica 14 de setembro de / 1
Programação em Lógica Prof. A. G. Silva 14 de setembro de 2017 Prof. A. G. Silva Programação em Lógica 14 de setembro de 2017 1 / 1 Recomendações de estilo Cláusula de mesmo predicado em linhas consecutivas,
Leia maisControle de Retrocesso. Programação Lógica. Controle de Retrocesso. Controle de Retrocesso
Programação Lógica Prolog: controle de retrocesso, predicado especial corte (!), verificação de tipos, exemplos O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para
Leia maisFundamentos. Paradigma de Programação Lógico. Marco A L Barbosa
Fundamentos Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Visão mais detalhada
Leia maisA linguagem Prolog. Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos.
A linguagem Prolog Sintaxe, terminologia e semântica informal: Os objectos de dados em Prolog são chamados termos. Um termo ou é uma constante, ou uma variável ou um termo composto. As constantes incluem
Leia maisRecursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV
PROGRAMAÇÃO EM LÓGICA Recursão CIÊNCIA DA COMPUTAÇÃO FACAPE Faculdade de Ciências Aplicadas e Sociais de Petrolina Linguagem Prolog Parte IV Usado desde a arte (em figuras, telas, etc) como também em Matemática
Leia maisAlgoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Conceitos Linhas de Código de um Algoritmo ou Programa escrita do programa linha a linha, ou seja, a sintaxe do programa, podendo-se
Leia maisINE5416 Paradigmas de Programação. Ricardo Azambuja Silveira INE CTC UFSC E Mail: URL:
INE5416 Paradigmas de Programação Ricardo Azambuja Silveira INE CTC UFSC E Mail: silveira@inf.ufsc.br URL: www.inf.ufsc.br/~silveira Estrutura de dados Listas Pilhas Conjuntos Árvores Grafos Classificação
Leia maisINF 1771 Inteligência Artificial
Edirlei Soares de Lima INF 1771 Inteligência Artificial Aula 09 Prolog Variáveis Variáveis são representadas através de cadeias de letras, números ou _ sempre começando com letra
Leia maisInteligência Artificial Apontamentos para as aulas Luís Miguel Botelho
Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho Departamento de Ciências e Tecnologias da Informação ISCTE-IUL - Instituto Universitário de Lisboa Dezembro de 2016 1 Notas sobre
Leia maisO Predicado concatena
O Predicado concatena Hoje em dia as implementações de PROLOG já trazem o predicado append/3 que junta a lista do 1º argumento com a lista do 2º, gerando a lista do 3º argumento. Mas se esse predicado
Leia maisParadigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Leia maisPredicados dinâmicos. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
Predicados dinâmicos Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Predicados dinâmicos Um predicado dinâmico é um predicado cuja definição
Leia maisFundamentos de Lógica Matemática
Webconferência 6-29/03/2012 Introdução à Lógica de Predicados Prof. L. M. Levada http://www.dc.ufscar.br/ alexandre Departamento de Computação (DC) Universidade Federal de São Carlos (UFSCar) 2012/1 Introdução
Leia maisProgramação imperativa
Capítulo 8 Programação imperativa 8.1 Exercícios de revisão 1. Distinga entre programação imperativa e programação funcional. 2. Explique a necessidade da introdução do operador de atribuição. 3. Diga
Leia maisProf. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1
Programação em Lógica Prof. A. G. Silva 24 de agosto de 2017 Prof. A. G. Silva Programação em Lógica 24 de agosto de 2017 1 / 1 Termos Referem-se a todas as construções sintáticas da linguagem Um termo
Leia maisPROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95
PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95 Exercícios de revisão Lista 01: a) Monte um mapa conceitual indicando as relações entre os seguintes conceitos, no contexto do assunto visto em aula:
Leia maisConferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores. MSc. Angel Alberto Vazquez Sánchez
Conferencia 6 Estruturas, pregados para o trabalho com estruturas, seletores MSc. Angel Alberto Vazquez Sánchez Objetivo Caracterizar as estruturas como elemento importante da programação no Prolog. 2/41
Leia maisLÓGICA DE PROGRAMAÇÃO INTRODUÇÃO AO JAVA. Professor Carlos Muniz
Instalação do Compilador/Interpretador ( JDK ) As versões do JDK estão disponíveis livremente na Internet no site: http://java.sun.com O JDK, apresenta variáveis de ambiente, utilizadas para indicar ao
Leia maisParadigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I
Paradigmas Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I Paradigmas Tradicional Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I OO Simula-67, Smalltalk, C++, Eiffel, Object Pascal,
Leia maisCapítulo 3 Lógica de Primeira Ordem
Capítulo 3 Lógica de Primeira Ordem Lógica para Programação LEIC - Tagus Park 1 o Semestre, Ano Lectivo 2007/08 c Inês Lynce and Luísa Coheur Bibliografia Baseados nos slides de Andrew Rice, Universidade
Leia maisExemplo:- CONTROLE DE RETROCESSO. Construir um programa Prolog para implementar a função:
CONTROLE DE RETROCESSO O retrocesso (backtracking) é um processo pelo qual todas as alternativas de solução para uma dada consulta são tentadas exaustivamente. No Prolog, o retrocesso é automático. É possível
Leia maisIntrodução à Ciência da Computação
Créditos Introdução à Ciência da Computação Tópicos Preliminares em Programação Exceto por adaptações e complementos menores, o material a seguir é composto de slides gentilmente cedidos por: Prof. Rudinei
Leia maisPROLOG OPERADORES PRÉ-DEFINIDOS
118 11 PROLOG OPERADORES PRÉ-DEFINIDOS Exercício 11.6 Suponha que tem uma base de dados que indica as notas que os alunos tiveram nas várias disciplinas (nota(nome,disciplina,nota)) e quais os alunos inscritos
Leia maisInteligência Artificial Apontamentos para as aulas. Luís Miguel Botelho
Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho Departamento de Ciências e Tecnologias da Informação ISCTE-IUL - Instituto Universitário de Lisboa Dezembro de 2016 1 Notas sobre
Leia mais2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Capítulo 5 Abstracção de dados 5. Exercícios de revisão. Diga o que é um tipo abstracto de informação.. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.
Leia maisProgramação Orientada a Objetos
Programação Orientada a Objetos Aula 11 Collections Professores: Elaine Araújo/ Rhavy Maia Baseado no material de aula do professor Frederico Costa Guedes Pereira Introdução Arrays podem dar trabalho...
Leia maisBUSCA DE SOLUÇÕES EM PROLOG
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ BUSCA DE SOLUÇÕES EM PROLOG Resolução em PROLOG: Unificação e substituição 1 UNIFICAÇÃO EM PROLOG HISTÓRICO 2 HISTÓRIA A PARTIR DE 1950 1958 forma clausal:
Leia maisProgramação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisIntrodução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos
Introdução Laboratório de Computação para Ciências Módulo II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional
Leia maisRecapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Leia maisPROLOG. Rafael D. Ribeiro, M.Sc.
PROLOG Rafael D. Ribeiro, M.Sc. rafaeldiasribeiro@gmail.com http://www.rafaeldiasribeiro.com.br Leitura e escrita de termos: Prolog oferece um predicado pré- definido read para a entrada de dados. A meta
Leia maisProgramação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Leia mais4 Conceito de Herança
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Leia maisAula 2 POO 1 Prática. Profa. Elaine Faria UFU
Aula 2 POO 1 Prática Profa. Elaine Faria UFU - 2019 Arrays É um grupo de variáveis que contém valores que são todos do mesmo tipo Os arrays são objetos tipos por referência Os elementos de um array podem
Leia maisSistemas Inteligentes,
Sistemas Inteligentes, 12-13 1 Programação Prolog Programas Prolog são representados por cláusulas de Horn, um subconjunto de lógica de primeira ordem, onde cada cláusula só pode conter no máximo um literal
Leia maisLinguagens de Programação Aula 15
Linguagens de Programação Aula 15 Celso Olivete Júnior olivete@fct.unesp.br Na aula passada Linguagem Haskell 2 Na aula de hoje Paradigma Lógico Linguagem Prolog (PROgrammation en LOGique) 3 Introdução
Leia maisLinguagem de Programação e Compiladores
Linguagem de Programação e Compiladores Fernando Antônio Asevedo Nóbrega Instituto de Ciências Matemáticas e de Computação USP SCC-206 Introdução à Compilação 24 de abril de 2012 1 / 20 Sumário 1 Introdução
Leia maisProf. A. G. Silva. 19 de outubro de Prof. A. G. Silva Programação em Lógica 19 de outubro de / 21
Programação em Lógica Prof. A. G. Silva 19 de outubro de 2017 Prof. A. G. Silva Programação em Lógica 19 de outubro de 2017 1 / 21 Árvores binárias Uma árvore binária é vazia, ou é composta por uma raiz
Leia maisIntrodução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos
Conceitos Básicos Introdução Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional
Leia mais02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?
01. [Sebesta, 2000] O que é um descritor? 02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais? 03. [Sebesta, 2000] Quais são as questões de projeto relativas aos tipos
Leia maisVariáveis o nome de uma variável pode ser qualquer sequência de caracteres alfanuméricos que começa com uma letra maiúscula ou com um underscore (_).
Figura: Capa do Livro Hamburger, H., Richards, D. Logic and Language Models for Computer Science, Prentice Hall. Universidade Federal de Campina Grande Departamento de Sistemas e Computação Curso de Bacharelado
Leia maisObjetos Estruturados Listas Recursão Exercícios. Inteligência Artificial
Prolog Objetos Estruturados Objetos Estruturados Listas Recursão Exercícios Inteligência Artificial Exercícios Relembrando a introdução: 1. Escreva um programa Prolog para representar: João nasceu em Campos
Leia maisProgramação estruturada no Fortran 90-1
Programação estruturada no Fortran 90-1 Departamento de Física UFPel Programação estruturada: unidades de programa A programação estruturada em Fortran 90 implica no uso de unidades de programa, do tipo:
Leia maisProgramação Orientada a Objetos. Programação Lógica
Programação Orientada a Objetos Programação Lógica Cristiano Lehrer, M.Sc. Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência
Leia maisTÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
Leia maisUma consulta em CRT é especificada da seguinte forma:
Capítulo 7-? Cálculo Relacional O Cálculo Relacional (CR) é uma linguagem de consulta formal. Utilizando-se de uma expressão declarativa pode-se especificar uma consulta. Uma expressão de cálculo permite
Leia maisA B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas
Herança e Polimorfismo Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Revisando -Herança Estrutura Hierárquica e modular Projeção de classes genéricas que podem ser especializadas
Leia maisRetrocesso e corte. Paradigma de Programação Lógico. Marco A L Barbosa
Retrocesso e corte Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Retrocesso
Leia maisConferência Tratamento de listas no PROLOG
Inteligência Artificial Conferência Tratamento de listas no PROLOG O Docente: MSc. Angel Alberto Vazquez Sánchez Objetivo Caracterizar as listas no Prolog, fazendo ênfase em sua definição recursiva. Bibliografía
Leia maisUniversidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados. Aula 1 Introdução a Banco de Dados
Universidade Federal da Paraíba CCEN Departamento de Informática Disciplina: Banco de Dados Aula 1 Introdução a Banco de Dados 1. Introdução Um Sistema Gerenciador de Banco de Dados (SGBD) é constituído
Leia maisTipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares)
Tipos e Estruturas de Dados Profa. Graça Nunes Lista de Exercícios (Listas Encadeadas, Duplamente Encadeadas e Circulares) 1. Refaça todos os itens do exercício 1 da Lista de Exercícios anterior (Listas
Leia maisOpenMP. Slides baseados em tutorial de Tim Mattson da Intel
OpenMP Slides baseados em tutorial de Tim Mattson da Intel O que é OpenMP? Uma especificação para um conjunto de diretivas de compilação, rotinas de biblioteca e variáveis de sistema que podem ser utilizadas
Leia maisMecanismos de Controle
Mecanismos de Controle Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Embora o Prolog seja uma linguagem de programação declarativa,
Leia maisUNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG PROF. CESAR A. TACLA UTFPR/CURITIBA
PR UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG 1 PROLOG: UTILIZAÇÃO A principal utilização da linguagem Prolog reside no domínio da programação simbólica, não-numérica, sendo especialmente adequada
Leia maisListas. Em PROLOG os elementos das listas não têm de ser do mesmo tipo (por exemplo, [a,2,abc,[x,1,zzz]])
Listas Em PROLOG as listas podem ser: Não vazias, tendo uma cabeça (1º elemento da lista) e uma cauda (lista com os restantes elementos) Vazias, quando não têm nenhum elemento (equivalente ao NULL ou NIL
Leia maisProgramação I A Linguagem C. Prof. Carlos Alberto
Programação I A Linguagem C Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br 2 Origem A linguagem C foi desenvolvida em 1972, nos Laboratórios Bell, por Dennis Ritchie. Implementada
Leia maisUniversidade de Aveiro
Universidade de Aveiro 1998/99 Disciplina Introdução à Programação em Lógica (IPL) Curso MAC 1 ō Semestre 2 ō Semestre Anual Docente Delfim Fernando Marado Torres 1107 03.03.99 Apresentação: Enquadramento
Leia maisParadigmas de Linguagens de Programação. Linguagens de Programação Lógicas
Linguagens de Programação Lógicas Cristiano Lehrer Introdução Uma metodologia de programação diferente. Expressar programas na forma de lógica simbólica e a utilização de inferência lógica para produzir
Leia maisCENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG. Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira
CENTRO UNIVERSITÁRIO LUTERANO DE PALMAS PROLOG Elias Melgaço Chaves Júnior Jonatas Luiz da Costa Rafael Gonçalves Barreira Roteiro Linguagens de Programação em Lógica: histórico THIS IS PROLOG!!!! SWI-Prolog
Leia maisParadigmas de Programação
Paradigmas de Programação Sintaxe e semântica Aula 4 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Sintaxe A sintaxe de uma linguagem de programação é a forma
Leia maisPython Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema
Python Listas e Strings Prof. Paulo Henrique Ribeiro Gabriel (Com base no material do Prof. André Backes) Listas Por que usar listas? Listas As variáveis declaradas até agora são capazes de armazenar um
Leia maisEstruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:
Estruturas de Dados Listas Dinâmicas Simplesmente Encadeadas Prof. Ricardo J. G. B. Campello Créditos Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais: disponíveis
Leia maisClasses e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Leia maisConceitos Básicos de Programação
BCC 201 - Introdução à Programação Conceitos Básicos de Programação Guillermo Cámara-Chávez UFOP 1/53 Conceitos básicos I Variável 2/53 Conceitos básicos II Posição de memoria, identificada através de
Leia maisEntrada Processamento Saída
Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade Disciplina: PEOO Professor: Eberton da Silva Marinho e-mail: ebertonsm@gmail.com Data:
Leia maisProgramação Estruturada e Orientada a Objetos. Objetos e Métodos
Programação Estruturada e Orientada a Objetos Objetos e Métodos 2013 O que veremos hoje? Objetos e Métodos Transparências baseadas no material do Prof. Jailton Carlos Objetivos Aprender a criar construtores;
Leia maisParte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++
Linguagens de Programação Parte IV Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Introdução à Programação (Continuação) Relembrando da Última Aula... Ponteiros e strings Mais exemplos
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Ponteiros e strings Mais
Leia maisEstruturas de Controlo do PROLOG. Em PROLOG temos 4 estruturas de controlo principais:
Estruturas de Controlo do PROLOG Em PROLOG temos 4 estruturas de controlo principais: true tem sempre fail Falha sempre repeat tem sempre, quando se volta para trás por backtracking e se passa pelo repeat,
Leia maisINF 1771 Inteligência Artificial
INF 1771 Inteligência Artificial Aula 09 Prolog Edirlei Soares de Lima Variáveis Variáveis são representadas através de cadeias de letras, números ou _ sempre começando com letra
Leia maisParadigma de Programação Lógico. Marco A L Barbosa
Introdução Paradigma de Programação Lógico Marco A L Barbosa cba Este trabalho está licenciado com uma Licença Creative Commons - Atribuição-CompartilhaIgual 4.0 Internacional. Conteúdo Introdução Imperativo
Leia maisHerança. Prof. Fernando V. Paulovich 23 de agosto de 2010
Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade
Leia maisAula prática 5. Funções Recursivas
Programação Funcional UFOP DECOM 2014.1 Aula prática 5 Funções Recursivas Resumo Definições recursivas são comuns na programação funcional. Nesta aula vamos aprender a definir funções recursivas. Sumário
Leia mais24/09/2014. Prof. André Backes
Prof. André Backes 1 Por que usar listas? As variáveis declaradas até agora são capazes de armazenar um único valor por vez. Sempre que tentamos armazenar um novo valor dentro de uma variável, o valor
Leia maisINTRODUÇÃO AO MATLAB - PARTE 2
INTRODUÇÃO AO MATLAB - PARTE 2 Murilo F. Tomé - ICMC-USP Operadores Relacionais/Lógicos Estruturas de Seleção e Repetição Introdução polinômios Gráficos Operadores relacionais Símbolo Operador = = igual
Leia maisModelo Lógico de Dados. Modelo Relacional
Modelo Lógico de Dados Modelo Relacional 1 Composição de um Banco de Dados Relacional É composto de tabelas ou relações O termo tabela é mais comum nos produtos comerciais e na prática O termo relação
Leia maispuras um ou mais apenas mesmos
Funções Relembrando um dos objetivos do paradigma de programação funcional: Escrever funções puras Na prática, uma função pura apresenta as seguintes características: Possui um ou mais parâmetros; Realiza
Leia maisSets. Declaração: var y : Set[Int] = Set() O tipo do conjunto não é obrigatório, podendo usar a inferência: var x = Set(1,3,5,7)
Sets Em Scala é possível utilizar uma estrutura prédefinida para armazenar uma coleção de elementos diferentes do mesmo tipo. Não existem elementos duplicados no conjunto Declaração: var y : Set[Int] =
Leia maisUniversidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
6 Polimorfismo Sobrecarga (overloading) de métodos: public class x { public void m1( ) {... sobrecarga do método m1 public void m1 ( int p ) {... Diz-se que o nome de um método foi sobrecarregado ( overloaded
Leia maisFundamentos e prática de Prolog
Disciplina: Lógica Aplicada à Computação Nome: Matrícula: 1. Considere a seguinte base de conhecimentos Prolog: filho(paulo,pedro). % "Paulo é filho de Pedro" filho(paulo,marcela). filho(pedro,josé). filho(pedro,isabel).
Leia maisAula Prática 2. Paradigmas da Programação I / Programação Funcional
Aula Prática 2 Paradigmas da Programação I / Programação Funcional ESI/MCC 1 o ano (2005/2006) Nesta aula pretende-se introduzir os conceitos seguintes: valores e expressões; tipos básicos e tipos compostos;
Leia mais