Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Tamanho: px
Começar a partir da página:

Download "Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012"

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 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 mais

GSI010 - Programação Lógica Predicados extra-lógicos

GSI010 - 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 mais

Interação com o usuário

Interaçã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 mais

Programação Lógica. Controle (Bactracking, Cut, Fail) Paulo Henrique Ribeiro Gabriel

Programaçã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 mais

Vamos agora abordar um conjunto de aspectos complementares, incluindo:

Vamos 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 mais

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 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 mais

Unificação PROGRAMAÇÃO EM LÓGICA. Unificação. Unificação. Unificação. Unificação. Linguagem Prolog Parte III

Unificaçã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 mais

EXERCÍCIOS DE PROGRAMAÇÃO EM LÓGICA

EXERCÍ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 mais

Alteração da Base de Dados. Programação Lógica. Alteração da Base de Dados. Alteração da Base de Dados

Alteraçã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 mais

Aula 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 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 mais

Programaçã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 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 mais

Linguagens Lógicas. Aluno: Victor Rocha

Linguagens 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 mais

Conferência Predicados de corte e falha

Conferê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 mais

Prof. A. G. Silva. 31 de agosto de Prof. A. G. Silva Programação em Lógica 31 de agosto de / 1

Prof. 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 mais

Prolog. MATA56 - Paradigmas de Linguagens de Programação, UFBA, Prof. Rodrigo Rocha Prolog. Iniciando.

Prolog. 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 mais

Prática 6 - Predicados extra-lógicos

Prá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 mais

N rainhas Colorir um mapa. MasterMind. 1 Não determinismo:geração e Teste. 2 Modificar a Base de Dados

N 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 mais

UNIDADE ACADÊMICA: Faculdade de

UNIDADE 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 mais

Prof. A. G. Silva. 14 de setembro de Prof. A. G. Silva Programação em Lógica 14 de setembro de / 1

Prof. 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 mais

Controle de Retrocesso. Programação Lógica. Controle de Retrocesso. Controle de Retrocesso

Controle 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 mais

Fundamentos. Paradigma de Programação Lógico. Marco A L Barbosa

Fundamentos. 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 mais

A 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. 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 mais

Recursão PROGRAMAÇÃO EM LÓGICA. Recursão. Sonho Recursivo. Recursão. Recursão. Linguagem Prolog Parte IV

Recursã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 mais

Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi

Algoritmos. 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 mais

INE5416 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: 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 mais

INF 1771 Inteligência Artificial

INF 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 mais

Inteligência Artificial Apontamentos para as aulas Luís Miguel Botelho

Inteligê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 mais

O Predicado concatena

O 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 mais

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Paradigmas 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 mais

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. 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 mais

Fundamentos de Lógica Matemática

Fundamentos 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 mais

Programação imperativa

Programaçã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 mais

Prof. A. G. Silva. 24 de agosto de Prof. A. G. Silva Programação em Lógica 24 de agosto de / 1

Prof. 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 mais

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

PROGRAMAÇÃ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 mais

Conferencia 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 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 mais

LÓGICA DE PROGRAMAÇÃO INTRODUÇÃO AO JAVA. Professor Carlos Muniz

LÓ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 mais

Paradigmas. Fortran, Algol, Algol-68, Pascal, C, Cobol, PL/I

Paradigmas. 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 mais

Capítulo 3 Lógica de Primeira Ordem

Capí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 mais

Exemplo:- CONTROLE DE RETROCESSO. Construir um programa Prolog para implementar a função:

Exemplo:- 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 mais

Introdução à Ciência da Computação

Introduçã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 mais

PROLOG OPERADORES PRÉ-DEFINIDOS

PROLOG 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 mais

Inteligência Artificial Apontamentos para as aulas. Luís Miguel Botelho

Inteligê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 mais

2. Diga qual é a diferença entre tipos de informação elementares e tipos de informação estruturados.

2. 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 mais

Programação Orientada a Objetos

Programaçã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 mais

BUSCA DE SOLUÇÕES EM PROLOG

BUSCA 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 mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programaçã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 mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introduçã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 mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. 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 mais

PROLOG. Rafael D. Ribeiro, M.Sc.

PROLOG. 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 mais

Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno

Programaçã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 mais

4 Conceito de Herança

4 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 mais

Aula 2 POO 1 Prática. Profa. Elaine Faria UFU

Aula 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 mais

Sistemas Inteligentes,

Sistemas 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 mais

Linguagens de Programação Aula 15

Linguagens 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 mais

Linguagem de Programação e Compiladores

Linguagem 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 mais

Prof. A. G. Silva. 19 de outubro de Prof. A. G. Silva Programação em Lógica 19 de outubro de / 21

Prof. 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 mais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

Introduçã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 mais

02. [Sebesta, 2000] Quais são as vantagens e as desvantagens dos tipos de dados decimais?

02. [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 mais

Variá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 (_).

Variá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 mais

Objetos Estruturados Listas Recursão Exercícios. Inteligência Artificial

Objetos 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 mais

Programação estruturada no Fortran 90-1

Programaçã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 mais

Programação Orientada a Objetos. Programação Lógica

Programaçã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 mais

TÉCNICO DE INFORMÁTICA - SISTEMAS

TÉ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 mais

Uma consulta em CRT é especificada da seguinte forma:

Uma 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 mais

A B Classe Genérica D A C. Classe Especializada. Classe Especializada. Características Herdadas

A 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 mais

Retrocesso 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 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 mais

Conferência Tratamento de listas no PROLOG

Conferê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 mais

Universidade 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 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 mais

Tipos 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) 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 mais

OpenMP. Slides baseados em tutorial de Tim Mattson da Intel

OpenMP. 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 mais

Mecanismos de Controle

Mecanismos 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 mais

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ PROLOG PROF. CESAR A. TACLA UTFPR/CURITIBA

UNIVERSIDADE 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 mais

Listas. 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 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 mais

Programação I A Linguagem C. Prof. Carlos Alberto

Programaçã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 mais

Universidade de Aveiro

Universidade 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 mais

Paradigmas de Linguagens de Programação. Linguagens de Programação Lógicas

Paradigmas 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 mais

CENTRO 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 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 mais

Paradigmas de Programação

Paradigmas 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 mais

Python Listas e Strings. Listas 23/11/2016. Por que usar listas? Listas. Listas - Solução. Listas - Problema

Python 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 mais

Estruturas de Dados. Parte dos slides a seguir são adaptações, extensões e recodificações em C dos originais:

Estruturas 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 mais

Classes e Objetos. Sintaxe de classe em Java

Classes 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 mais

Conceitos Básicos de Programação

Conceitos 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 mais

Entrada Processamento Saída

Entrada 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 mais

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

Programaçã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 mais

Parte IV. Linguagens de Programação. Relembrando da Última Aula... Empacotador de Préprocessadores. Primeiro Exemplo Usando Classes em C++

Parte 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 mais

Linguagens de Programação

Linguagens 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 mais

Estruturas 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: 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 mais

INF 1771 Inteligência Artificial

INF 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 mais

Paradigma de Programação Lógico. Marco A L Barbosa

Paradigma 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 mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Heranç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 mais

Aula prática 5. Funções Recursivas

Aula 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 mais

24/09/2014. Prof. André Backes

24/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 mais

INTRODUÇÃO AO MATLAB - PARTE 2

INTRODUÇÃ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 mais

Modelo Lógico de Dados. Modelo Relacional

Modelo 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 mais

puras um ou mais apenas mesmos

puras 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 mais

Sets. 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. 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 mais

Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática

Universidade 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 mais

Fundamentos e prática de Prolog

Fundamentos 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 mais

Aula Prática 2. Paradigmas da Programação I / Programação Funcional

Aula 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