Linguagens Lógicas. Introdução

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

Download "Linguagens Lógicas. Introdução"

Transcrição

1 Linguagens Lógicas 1 Introdução Em LPs imperativas um programa é composto por uma sequência de comandos que representam as atividades computacionais que serão executadas. O programador deve portanto especificar claramente como realizar o processamento desejado, ou seja, como é o algoritmo. Em LPs lógicas um programa consiste na definição de relações lógicas que devem ser satisfeitas pela solução procurada. A busca por uma solução acontece automaticamente através de regras de inferência. mleal@inf.puc-rio.br 2

2 Introdução Programar em uma LP lógica consiste em: Declarar fatos primitivos sobre um domínio; Definir regras que expressam relações entre os fatos de um domínio; Fazer perguntas sobre um domínio. O processo de dedução através do qual encontram-se respostas às perguntas é executado automaticamente pelo sistema. mleal@inf.puc-rio.br 3 1. Aves botam ovos. Exemplo 2. Mamíferos não botam ovos. 3. Baleias são mamíferos. 4. Baleias botam ovos? Não. 5. Quem bota ovos? Aves. mleal@inf.puc-rio.br 4

3 Fatos Uma forma de declarar um fato como uma baleia é um mamífero é: mamifero (baleia). Para representar o fato Bruno gosta de Ana podemos escrever: gostar(bruno, ana) Repare que este fato é diferente de Ana gosta de Bruno : gostar(ana, bruno) Nas expressões acima gostar é o predicado do fato, representando uma relação entre os argumentos. mleal@inf.puc-rio.br 5 Fatos Outros exemplos de fatos campeao(flamengo). vender(marcelo,carro,carlos). chuva. Esta sintaxe não corresponde a invocação de uma função!!! mleal@inf.puc-rio.br 6

4 Regras A declaração de regras (axiomas) em LPs lógicas segue um padrão conhecido como cláusulas de Horn: H A 1,A 2,..., A n se todos os A i são verdadeiros, então H é verdadeiro. Na expressão acima, H é denominado a cabeça da cláusula e A 1,A 2,..., A n é o seu corpo. Através de regras pode-se estabelecer relações entre fatos. mleal@inf.puc-rio.br 7 Resolução Para descobrir novas relações uma LP lógica utiliza um processo conhecido como resolução. O corpo de uma cláusula é equivalente a sua cabeça, e ambos podem ser substituídos livremente em outras cláusulas para formar novas regras. C A,B D C D A,B Através do processo de resolução uma LP lógica é capaz de provar a validade de proposições. mleal@inf.puc-rio.br 8

5 Banco de Dados O conjunto de fatos e relações contidos em um programa lógico é denominado banco de dados, e representa o conhecimento sobre um ou mais domínios. O objetivo de um programa lógico é inferir e validar novos fatos ou relações a partir do banco de dados. mleal@inf.puc-rio.br 9 Prolog Foi desenvolvida no início da década de 70 para ser usada na prova de teoremas. Ainda hoje é a mais popular e principal LP lógica. É bastante utilizada em sistemas especialistas. Em Prolog um programa é composto por fatos e regras. mleal@inf.puc-rio.br 10

6 Fatos em Prolog Fatos em Prolog são representados através de átomos ou estruturas. Átomos são strings que começam sempre com letra minúscula: esta_chovendo. dinheiro. joao. 11 Fatos em Prolog Estruturas são átomos seguidos de uma lista de argumentos entre parânteses: pred (arg1, arg2,..., argn). onde: pred - nome de um predicado arg1,... argn - argumentos N - número de argumentos (aridade). - final sintático de qualquer cláusula Prolog mleal@inf.puc-rio.br 12

7 Fatos em Prolog Os argumentos de uma estrutura podem ser átomos, estruturas, variáveis e números. Exemplos: caro(diamente). amigo(joana, patricia). arvore_bin(valor1, arvore_bin(valor2, valor3)). quantidade(24). Estruturas representam relações entre os argumentos, ou seus predicados. mleal@inf.puc-rio.br 13 Variáveis Em LPs imperativas variáveis são instanciadas através de operações explícitas de atribuição. Em LPs lógicas variáveis geralmente são instanciadas implicitamente pelo sistema durante o processo de resolução. São usadas basicamente para extrair informações do banco de dados, e para expressar relações entre fatos. Variáveis em Prolog são representadas por strings que começam com uma letra maiúscula. mleal@inf.puc-rio.br 14

8 Exemplos offroad(x):- carro(x),tracao4x4(x), suspensaoreforcada(x). frio(groelandia).?-frio(x). x=groelandia. 15 Questões Questões são representados por fatos precedidos por -?.?-gostar(bruno, ana). Informalmente: : Bruno gosta de Ana? Formalmente: : É possível provar a partir dos fatos conhecidos pelo programa que a relação gostar(bruno, ana) é verdadeira? mleal@inf.puc-rio.br 16

9 Exemplos animal (cachorro) animal (gato)?-animal(cachorro). yes?-animal(x) X = cachorro; X = gato; yes mleal@inf.puc-rio.br 17 Unificação Para tentar provar um fato Prolog precisa estabelecer a equivalência entre fatos. Dois fatos equivalentes são ditos unificáveis. Dois átomos são unificáveis apenas se são idênticos. Duas estruturas são unificáveis se o seu predicado é idêntico, e se seus argumentos são unificáveis. mleal@inf.puc-rio.br 18

10 Unificação Uma variável é unificável a qualquer coisa. Durante o processo de resolução, uma variável é instanciada com um valor que permite a sua unificação com um símbolo correspondente de um outro fato. O símbolo = em prolog representa unificação. mleal@inf.puc-rio.br 19 Exemplos fruta(manga).?-fruta(x). X = manga X foi unificada com manga gostar(bruno,ana).?-gostar(bruno,x). X = ana X foi unificada com ana?-x=sol. X=sol X foi unificada com sol?-sol=sol. yes sol foi unificado com sol mleal@inf.puc-rio.br 20

11 Regras em Prolog Regras são representadas como cláusulas de Horn seguindo a sintaxe: pred(x1,...,xn):- pred1(x1,...,xn),...,predn(x1,...,xn). se os predicados 1 a n são verdadeiros para as variáveis Xi, então o predicado pred é verdadeiro para as variáveis Xi. A variável representa portanto o símbolo para o qual a regra é verdadeira. mleal@inf.puc-rio.br 21 Exemplos pai(joao,joaquim). pai(joaquim,manuel). avo(x,y):-pai(z,y),pai(x,z).?-avo(joao,z). Z=manuel?-avo(joao,manuel). yes. mleal@inf.puc-rio.br 22

12 Conjunções Conjunções permitem a especificação de questões com múltiplas condições que devem ser satisfeitas simultaneamente. Conjunções são representadas por uma vígula (, ). Exemplo:?- localizacao(x,cozinha), comida(x), gostoso(x). Existe alguma comida gostosa na cozinha? mleal@inf.puc-rio.br 23 Disjunções Disjunções permitem a especificação de questões com múltiplas condições na qual ao menos uma delas deve ser satisfeita. Disjunções são representadas por um ponto-e- vírgula ( ; ). Exemplos:?-amigos(X,Y); parentes(x,y). inverno(x):- nevando(x); gelado(x). É inverno se está nevando ou está gelado. mleal@inf.puc-rio.br 24

13 Fluxo de Controle Prolog possui um fluxo de controle implícito através do qual busca responder uma questão. Este fluxo é determinístico, ou seja segue sempre uma mesma ordem: O banco de dados é percorrido sequencialmente na ordem em que os fatos\regras foram declarados. Para cada predicado correto encontrado, os argumentos são testados em ordem. Para cada regra,, as condições são testadas sempre da esquerda para a direita. mleal@inf.puc-rio.br 25 Exemplo tropical(caribe). (1) tropical(havai). praia(havai). praia(caribe). (2) bonito(havai). bonito(caribe). (3) paraiso_tropical(x):-tropical(x),praia(x), tropical(x),praia(x), bonito(x).?-paraiso_tropical(x). X=caribe; X is caribe true X is caribe true X is caribe tropical praia bonito true mleal@inf.puc-rio.br 26

14 Fluxo de Controle Variáveis são instanciadas implicitamente com valores que permitem a unificação da estrutura. Assim que uma associação válida for encontrada, os valores com os quais as variáveis foram instanciadas são impressos. Apenas a primeira associação válida é impressa. Para que todas as associações válidas possam ser encontradas basta digitar um ; após cada resultado apresentado por Prolog. mleal@inf.puc-rio.br 27 Fluxo de Controle Implícito Para provar questões mais complexas Prolog pode ser obrigado a testar várias vezes a mesma condicão, instanciando uma mesma variável com diferentes valores. A sequência com que os fatos e regras são testados portanto não é necessariamente linear, e segue um caminho semelhante a uma árvore. O processo de retornar para uma condicão e testá-la novamente é denominado backtracking. mleal@inf.puc-rio.br 28

15 Exemplos surf(vitor). surf(renan). surf(teco). skate(vitor). skate(teco). moto(renan). moto(teco). radical(x):-surf(x),skate(x),moto(x).?-radical(x). teco. 29 Exemplo radical(x):-surf(x),skate(x),moto(x). radical(x) surf(x) skate(x) moto(x) X is vitor X is renan X is teco X is vitor X is renan X is teco X is vitor x is teco surf true skate false skate true moto false moto true mleal@inf.puc-rio.br 30

16 Modificando o Fluxo de Execução Prolog oferece dois comandos que permitem alterar o fluxo natural de execução. cut:! fail Usado para impedir o backtracking. Ao ser ultrapassada, não permite retorno. Faz com que a busca sempre falhe, provocando backtracking. Usado em combinação com! para gerar um not. mleal@inf.puc-rio.br 31 Exemplos not(p):- call(p),!,fail;true. gosta(maria,x):- cobra(x),!, fail; animal(x). statement:- condition,!, then_part; else_part. filosofo(x) :-: intelectual(x),grego(x). intelectual(platao). intelectual(socrates). grego(platao). grego(socrates). listar_filosofos:- write( Filosofos: ), nl, filosofo(x),write(x),nl, fail. mleal@inf.puc-rio.br 32

17 Igualdade Em Prolog existem quatro operadores que representam igualdade: 1. X == Y Relação de identidade. É verdadeiro apenas se X e Y são idênticos (representam a mesma variável ou o mesmo símbolo). 2. X = Y - Unificação. É verdadeiro se X é unificável com Y. 3. X =:= Y Significa calcule X, calcule Y e teste sua igualdade. X e Y devem ser expressões aritméticas. 4. X is Y - Significa ``calcule Y e unifique X com Y''. Y deve ser uma expressão aritmética. mleal@inf.puc-rio.br 33 Aritmética O operador is é o mais utilizado em operações aritméticas, e força a instanciação de variáveis. Exemplos?- X is 1+2 X = 3?-1+2 is 4-14 no fib(0,1). fib(1,1). fib(x,r):- A is X-1, X B is X-2, X fib(a,r1), fib(b,r2), R is R1+R2. mleal@inf.puc-rio.br 34

18 Listas Prolog suporta uma notação especial para representar listas. Uma lista genérica tem a seguinte sintaxe: [elem1, elem2,..., elemn] Para manipular uma lista pode-se utilizar a notação [H T] onde H representa o primeiro elemento da lista e T os demais elementos. member(x, [X T]). member(x, [H T]):- member (X, T). last(x,[x]). last(x, [H T]):- last (X, T). mleal@inf.puc-rio.br 35 Predicados da Linguagem asserta(x) - adiciona a cláusula X no início do banco de dados. assertz(x) - adiciona a cláusula X no final do banco de dados. retract(x) - remove a cláusula X do banco de dados. call(x) tenta satisfazer a cláusula X. mleal@inf.puc-rio.br 36

19 I/O see(arq arq) redireciona o input para o arquivo arq. seeing(arq arq) unifica arq com o input corrente. seen - fecha o input corrente. tell(arq arq) redireciona o output para o arquivo arq. telling(arq arq) unifica arq com o output corrente. told - fecha o output corrente. mleal@inf.puc-rio.br 37 I/O read(term) lê o próximo termo (string) do arquivo corrente. Retorna end_of_file se eof. write(term) imprime Term no output corrente. get0(n) lê o próximo caracter do input corrente e unifica o seu código ASCII com N. Retorna 11 se eof. get(n) lê o próximo caracter não nulo do input corrente e unifica o seu código ASCII com N. Retorna 11 se eof. put(n) imprime o caracter correspondente ao ASCII N no output corrente. nl imprime um newline. tab(n) imprime N espaços. mleal@inf.puc-rio.br 38

20 Gramáticas de Cláusulas Definidas Gramáticas de Cláusulas Definidas (definite clause grammars - DCGs) estendem gramáticas livres de contexto permitindo o uso de argumentos ou procedimentos embutidos nas produções (cláusulas). Prolog suporta diretamente a definição de DCGs através de uma sintaxe especial. Através deste mecanismo é fácil construir parsers para qualquer gramática livre de contexto. mleal@inf.puc-rio.br 39 Exemplo Considera a seguinte gramática: <frase> ::= <sintagma nominal > <predicado>. <sintagma nominal > ::= <artigo> <substantivo> <predicado> ::= <verbo> <verbo> <sintagma nominal > <artigo> ::= a o <substantivo> ::= menino menina gato cachorro <verbo> ::= viu mordeu dormiu chamou mleal@inf.puc-rio.br 40

21 Exemplo A partir da frase o cachorro mordeu o gato. podemos criar o seguinte grafo: o cachorro mordeu o gato Para respresentar um sintagma nominal podemos usar a regra: sintagmanominal(k,l) :-: artigo(k,m), substantivo(m,l). sintagmanominal(1,3) :-: artigo(1,2), substantivo(2,3). onde os argumentos indicam os nós do grafo. mleal@inf.puc-rio.br 41 Exemplo frase(k,l) :-: sintagmanominal(k,m), predicado(m,n), period(n,l). sintagmanominal(k,l) :-: artigo(k,m), substantivo(m,l). predicado(k,l) :-: verbo(k,m), sintagmanominal(m,l). predicado(k,l) :-: verbo(k,l). artigo(k,l) :-: o(k,l). artigo(k,l) :-: a(k,l). substantivo(k,l) :-: menino(k,l). substantivo(k,l) :-: menina(k,l). substantivo(k,l) :-: gato(k,l). substantivo(k,l) :-: cachorro(k,l). verbo(k,l) :-: viu(k,l). verbo(k,l) :-: mordeu(k,l). verbo(k,l) :-: dormiu(k,l). verbo(k,l) :-: chamou(k,l). mleal@inf.puc-rio.br 42

22 Exemplo o(1,2). cachorro(2,3). mordeu(3,4). o(4,5). gato(5,6). ponto(6,7).?- frase(1,7). yes?- frase(x,y). X = 1 Y = 7 yes <frase> <predicado> <sintagma nominal > <sintagma nominal > o cachorro mordeu o gato mleal@inf.puc-rio.br 43 DCG Para representar uma DCG deve-se definir as cláusulas usando o operador -- -->. Os terminais são indicados entre colchetes ( [ ]). Terminais podem conter argumentos. Pode-se especificar rotinas a serem executadas durante a validação de uma cláusula através de chaves ({ }). mleal@inf.puc-rio.br 44

23 Exemplo frase --> > sintagmanominal, predicado, ['.']. ']. sintagmanominal --> > artigo, substantivo. predicado --> > verbo, sintagmanominal. predicado --> > verbo. artigo --> > [o]; [a]. substantivo --> > [menino] ; [menina] ; [cachorro] ; [gato]. verbo --> > [viu] ; [chamou] ; [dormiu] ; [mordeu]. mleal@inf.puc-rio.br 45 Exemplo frase(fr(n,p)) --> > sintagmanominal(n), predicado(p), ['.']. sintagmanominal(sintagn(d,n)) --> > artigo(d), substantivo(n). predicado(pred(v,n)) --> > verbo(v), sintagmanominal(n). predicado(pred(v)) --> > verbo(v). artigo(art(o)) --> > [o]. artigo(art(a)) --> > [a]. substantivo(sub (menino)) --> > [menino]. substantivo(sub (menina)) --> > [menina]. substantivo(sub (gato)) --> > [gato]. substantivo(sub (cachorro)) --> > [cachorro]. verbo(verb(viu)) --> > [viu]. verbo(verb(mordeu)) --> > [mordeu]. verbo(verb(dormiu)) --> > [dormiu]. verbo(verb(chamou)) --> > [chamou]. mleal@inf.puc-rio.br 46

24 Exemplo?- frase(f, [o,cachorro,mordeu,o,gato,'.'], []). F = fr(sintagn(art(o), sub (cachorro)), pred(verb(mordeu), sintagn(art(o), sub(gato)))) yes?- predicado(f, [mordeu,o,gato], []). F = pred(verbo(mordeu), sintagn(art(o), sub(gato))) yes mleal@inf.puc-rio.br 47 Scanner <num> ::= <digito> <digito><num>. <num> ::= <digito> <restnum>. <restnum> ::= ε <digito><num>. getnum(c,n) :-: digit(c), get0(d), restnum(d,lc), name(n,[c Lc]). restnum(c,[c Lc]) :-: digit(c), get0(d), restnum(d,lc). restnum(c,[]). mleal@inf.puc-rio.br 48

25 Scanner scan([t Lt]) :-: getch(c), gettoken(c, T, D), restprog(t, D, Lt),!. getch(c) :-: get0(c), (endline(c),nl; endfile(c), nl ; put(c)). restprog(eop, C, []). restprog(t, C, [U Lt]) :-: gettoken(c, U, D), restprog(u, D, Lt). mleal@inf.puc-rio.br 49 Invocando Rotinas scanp :-: nl, write('scan & Parse'), nl, nl, write('enter name of source file: '), nl, getfilename(filename), nl, see(filename), scan(tokens), seen, write('scan ok'), nl,!, write(tokens), nl, nl, parse(parsetree,tokens), write('parse ok'), nl,!, write(parsetree), nl, nl. getfilename(w) :-: get0(c), restfilename(c,cs), name(w,cs). restfilename(c,[c Cs]) :-: filechar(c), get0(d), restfilename(d,cs). restfilename(c,[]). mleal@inf.puc-rio.br 50

Linguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés

Linguagens Lógicas. Alunos: Josiane Novais Cláudio Moisés Linguagens Lógicas Alunos: Josiane Novais Cláudio Moisés Declarativos em vez de baseados em procedimentos Sintaxe diferente das linguagens imperativas e funcionais. Semântica é pouco semelhante a linguagem

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

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

Sintaxe e Semântica. Fases da Compilação. programa fonte

Sintaxe e Semântica. Fases da Compilação. programa fonte Sintaxe e Semântica mleal@inf.puc-rio.br Fases da Compilação programa fonte tokens parse tree árvore anotada ou outra forma intermediária código intermediário código objeto código objeto otimizado scanner

Leia mais

Práticas de Programação em Lógica. José Romildo Malaquias

Práticas de Programação em Lógica. José Romildo Malaquias Práticas de Programação em Lógica José Romildo Malaquias 9 de março de 2010 2 Sumário 1 Execução de programas em Prolog 1-1 1.1 Objetivos........................................ 1-1 1.2 Conceitos........................................

Leia mais

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura

Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura UFPI CCN DIE Curso: Ciência da Computação Disciplina: Construção de Compiladores Período: 2010-1 Prof. Dr. Raimundo Moura O projeto Desenvolver um compilador de um subconjunto básico da linguagem PORTUGOL.

Leia mais

Linguagem Lógica Prolog

Linguagem Lógica Prolog Linguagem Lógica Prolog Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Conteúdo O que é diferente na Programação Lógica Cláusulas, Fatos, Regras e Predicado Objetos

Leia mais

Linguagem algorítmica: Portugol

Linguagem algorítmica: Portugol Programação de Computadores I Aula 03 Linguagem algorítmica: Portugol José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/34 Introdução I Lógica A lógica é usada

Leia mais

Resolução de problemas e desenvolvimento de algoritmos

Resolução de problemas e desenvolvimento de algoritmos SSC0101 - ICC1 Teórica Introdução à Ciência da Computação I Resolução de problemas e desenvolvimento de algoritmos Prof. Vanderlei Bonato Prof. Cláudio Fabiano Motta Toledo Sumário Análise e solução de

Leia mais

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto

ALGORITMOS PARTE 01. Fabricio de Sousa Pinto ALGORITMOS PARTE 01 Fabricio de Sousa Pinto Algoritmos: Definição 2 É uma sequência de instruções finita e ordenada de forma lógica para a resolução de uma determinada tarefa ou problema. Algoritmos 3

Leia mais

Introdução à Programação

Introdução à Programação Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5

Leia mais

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma

Algoritmo. Linguagem natural: o Ambígua o Imprecisa o Incompleta. Pseudocódigo: o Portugol (livro texto) o Visualg (linguagem) Fluxograma Roteiro: Conceitos básicos de algoritmo, linguagem, processador de linguagem e ambiente de programação; Aspectos fundamentais da organização e do funcionamento de um computador; Construções básicas de

Leia mais

Introdução a Algoritmos Parte 04

Introdução a Algoritmos Parte 04 Universidade Federal do Vale do São Francisco Curso de Engenharia de Computação Introdução a Algoritmos Parte 04 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1

Informática I. Aula 6. http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Informática I Aula 6 http://www.ic.uff.br/~bianca/informatica1/ Aula 6-12/09/2007 1 Ementa Noções Básicas de Computação (Hardware, Software e Internet) HTML e Páginas Web Internet e a Web Javascript e

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C

Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Linguagem e Técnicas de Programação I Programação estruturada e fundamentos da linguagem C Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Continuando as aulas sobre os fundamentos

Leia mais

Aluísio Eustáquio da Silva

Aluísio Eustáquio da Silva 1 Aluísio Eustáquio da Silva SciLab Programável Material didático usado em aulas de Programação de Computadores, Algoritmos e Lógica de Programação Betim Maio de 2012 2 PROGRAMAÇÃO O SciLab permite que

Leia mais

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Roteiro 1: Dados, variáveis, operadores e precedência

Roteiro 1: Dados, variáveis, operadores e precedência 1. Introdução Universidade Federal do ABC Disciplina: Processamento da Informação (BC-0505) Assunto: Dados, variáveis, operadores e precedência Roteiro 1: Dados, variáveis, operadores e precedência Nesta

Leia mais

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Sandra Manuela Lemos Machado Versão 2 Março 2002 Criticas e sugestões: smachado@dei.isep.ipp.pt

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

Programação Funcional. Capítulo 13. Mônadas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013.

Programação Funcional. Capítulo 13. Mônadas. José Romildo Malaquias. Departamento de Computação Universidade Federal de Ouro Preto 2013. Programação Funcional Capítulo 13 Mônadas José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2013.1 1/42 1 Mônadas 2 Entrada e saída 3 Expressão do 4 Computações que podem

Leia mais

PARSER: UM ANALISADOR SINTÁTICO E SEMÂNTICO PARA SENTENÇAS DO PORTUGUÊS

PARSER: UM ANALISADOR SINTÁTICO E SEMÂNTICO PARA SENTENÇAS DO PORTUGUÊS Estudos Lingüísticos XXVI (Anais de Seminários do GEL) Trabalho apresentado no XLIV Seminário do GEL na UNITAU - Taubaté, em 1996 UNICAMP-IEL Campinas (1997), 352-357 PARSER: UM ANALISADOR SINTÁTICO E

Leia mais

Lógica Computacional. Argumentos válidos e sólidos. Métodos de Demonstração. Demonstrações formais. Regras de Inferência Igualdade

Lógica Computacional. Argumentos válidos e sólidos. Métodos de Demonstração. Demonstrações formais. Regras de Inferência Igualdade Lógica Computacional Argumentos válidos e sólidos Métodos de Demonstração Demonstrações formais Regras de Inferência Igualdade Não-consequências lógicas 6 Março 2013 Lógica Computacional 1 Argumentos Exemplo:

Leia mais

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO

Geração de código. Ivan Ricarte INTRODUÇÃO À COMPILAÇÃO Geração de código Ivan Ricarte 2008 Sumário Geração de código intermediário Código de três endereços Notação pós-fixa Otimização de código Heurísticas de otimização Geração de código em linguagem simbólica

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

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões

Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Algoritmos I Aula 13 Java: Tipos básicos, variáveis, atribuições e expressões Professor: Max Pereira http://paginas.unisul.br/max.pereira Ciência da Computação Primeiro Programa em Java public class OlaPessoal

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. 1 Diagrama de Classes Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes. Um dos objetivos do diagrama de classes é definir a base para

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Geração de código intermediário. Novembro 2006

Geração de código intermediário. Novembro 2006 Geração de código intermediário Novembro 2006 Introdução Vamos agora explorar as questões envolvidas na transformação do código fonte em uma possível representação intermediária Como vimos, nas ações semânticas

Leia mais

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá. INTRODUÇÃO A lógica de programação é extremamente necessária para as pessoas que queiram trabalhar na área de programação, seja em qualquer linguagem de programação, como por exemplo: Pascal, Visual Basic,

Leia mais

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos?

Análise semântica. Análise Semântica. Estrutura de um compilador. Anotação da árvore sintática. Tipos de comunicação de atributos? Estrutura de um compilador Análise semântica Tradução orientada pela sintaxe 1 2 Análise Semântica Anotação da árvore sintática Análise semântica: Tipos (& Declarações) Escopo Checagens estáticas: Idéia:

Leia mais

Prof. Esp. Adriano Carvalho

Prof. Esp. Adriano Carvalho Prof. Esp. Adriano Carvalho O que é um Programa? Um arquivo contendo uma sequência de comandos em uma linguagem de programação especifica Esses comandosrespeitam regras de como serem escritos e quais

Leia mais

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo

Sumário. INF01040 Introdução à Programação. Elaboração de um Programa. Regras para construção de um algoritmo INF01040 Introdução à Programação Introdução à Lógica de Programação s Seqüenciais Sumário Elaboração de um programa/algoritmo Formas de representação de um algoritmo Elementos manipulados em um programa/algoritmo

Leia mais

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis

Aula 4 Pseudocódigo Tipos de Dados, Expressões e Variáveis 1. TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem ser classificadas em dois tipos: As instruções, que

Leia mais

Introdução a Java. Hélder Nunes

Introdução a Java. Hélder Nunes Introdução a Java Hélder Nunes 2 Exercício de Fixação Os 4 elementos básicos da OO são os objetos, as classes, os atributos e os métodos. A orientação a objetos consiste em considerar os sistemas computacionais

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

Algoritmos e Programação _ Departamento de Informática

Algoritmos e Programação _ Departamento de Informática 16 ARQUIVOS Um arquivo corresponde a um conjunto de informações (exemplo: uma estrutura de dados-registro), que pode ser armazenado em um dispositivo de memória permanente, exemplo disco rígido. As operações

Leia mais

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Criar a classe Aula.java com o seguinte código: Compilar e Executar Introdução à Java Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Código Exemplo da Aula Criar a classe Aula.java com o seguinte código: public class Aula { public static void

Leia mais

Estruturas de Dados Pilhas, Filas e Deques

Estruturas de Dados Pilhas, Filas e Deques Estruturas de Dados Pilhas, Filas e Deques Prof. Eduardo Alchieri Estruturas de Dados Pilhas Pilhas Lista LIFO (Last In, First Out) Os elementos são colocados na estrutura (pilha) e retirados em ordem

Leia mais

UFERSA Universidade Federal Rural do Semi-Árido. R Project R Project Criando e manipulando objetos.

UFERSA Universidade Federal Rural do Semi-Árido. R Project R Project Criando e manipulando objetos. UFERSA Universidade Federal Rural do Semi-Árido R Project R Project Criando e manipulando objetos. Conteúdo 1 2 3 Iniciando o R Manipulando Objetos Objetos especiais Introdução O R é uma importante ferramenta

Leia mais

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba

3/19/2014. Compilador DEV C++ ENGENHARIAS LÓGICA DE PROGRAMAÇÃO Henry Lubanco/ Joelio Piraciaba Compilador DEV C++ 101 Compilador DEV C++ 102 1 Compilador DEV C++ Compilar (Ctrl+F9) Executar (Ctrl+F10) Compilar e executar (F9) 103 Compilador DEV C++ Escolher a pasta Escolher o nome e o tipo de arquivo

Leia mais

Exemplo: programa --> regra; fato. Muito utilizada para definir gramáticas e para processamento de linguagem natural.

Exemplo: programa --> regra; fato. Muito utilizada para definir gramáticas e para processamento de linguagem natural. istemas Inteligentes, 2011-2 1 Utilização de DCGs DCG: Gramática de Cláusulas Definidas (Definite Clause Grammar) é uma linguagem formal para definicção de outras linguagens. Baseada em cláusulas de Horn.

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Roteiro de Aula Prática

Roteiro de Aula Prática UNIVERSIDADE FEDERAL DE UBERLÂNDIA Disciplina: Programação Lógica Curso: Sistemas de Informação Professores: Elaine Ribeiro de Faria Créditos Roteiro de Aula Prática O material a seguir consiste de adaptações

Leia mais

NOME SEXO CPF NASCIMENTO SALARIO

NOME SEXO CPF NASCIMENTO SALARIO Tutorial SQL Fonte: http://www.devmedia.com.br/articles/viewcomp.asp?comp=2973 Para começar Os Sistemas Gerenciadores de Bancos de Dados Relacionais (SGBDr) são o principal mecanismo de suporte ao armazenamento

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br

Organização de programas em Python. Vanessa Braganholo vanessa@ic.uff.br Organização de programas em Python Vanessa Braganholo vanessa@ic.uff.br Vamos programar em Python! Mas... } Como um programa é organizado? } Quais são os tipos de dados disponíveis? } Como variáveis podem

Leia mais

Algoritmos com VisuAlg

Algoritmos com VisuAlg Algoritmos com VisuAlg Prof Gerson Volney Lagemann Depto Eng de Produção e Sistemas UDESC - CCT Algoritmos com VisuAlg Introdução A linguagem VisuAlg é simples, seu objetivo é disponibilizar um ambiente

Leia mais

EXERCÍCIOS DE LÓGICA DE 1ª ORDEM

EXERCÍCIOS DE LÓGICA DE 1ª ORDEM QUANTIFICADORES EXERCÍCIOS DE LÓGICA DE 1ª ORDEM 1 {9.3} Tornar as frases verdadeiras. Abra Bozo s Sentences e Leibniz s World. Algumas das expressões não são wffs, algumas são wffs mas não são frases

Leia mais

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Lógica e Bases de Dados Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012 Bases de Dados Relacionais "Base de dados" Coleção de dados interrelacionados, armazenada de modo independente do programa

Leia mais

Introdução à Lógica de Programação

Introdução à Lógica de Programação Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha

Leia mais

Programação Lógica (em uma aula!)

Programação Lógica (em uma aula!) Paradigmas de Programação Programação Lógica (em uma aula!) Profª Andréa Schwertner Charão DLSC/CT/UFSM Programação lógica Paradigma baseado no Cálculo de Predicados (Lógica Matemática Dedutiva) Exemplo:

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou

Leia mais

Programação de Computadores

Programação de Computadores Programação de Computadores INTRODUÇÃO AOS ALGORITMOS E À PROGRAMAÇÃO DE COMPUTADORES PARTE 2 Renato Dourado Maia Instituto de Ciências Agrárias Universidade Federal de Minas Gerais Exemplo Inicial Uma

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Agenda Estrutura Básica de consultas SQL: A cláusula SELECT; A cláusula FROM; A cláusula WHERE. Operação com cadeias

Leia mais

Introdução aos cálculos de datas

Introdução aos cálculos de datas Page 1 of 7 Windows SharePoint Services Introdução aos cálculos de datas Aplica-se a: Microsoft Office SharePoint Server 2007 Ocultar tudo Você pode usar fórmulas e funções em listas ou bibliotecas para

Leia mais

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes

AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes AULA 12 FUNÇÕES Disciplina: Algoritmos e POO Professora: Alba Lopes alba.lopes@ifrn.edu.br http://docente.ifrn.edu.br/albalopes FUNÇÕES E PROCEDIMENTOS Também chamados de subalgoritmos São trechos de algoritmos

Leia mais

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS

AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS UNIVERSIDADE REGIONAL DE BLUMENAU CENTRO DE CIÊNCIAS EXATAS E NATURAIS CURSO DE CIÊNCIAS DA COMPUTAÇÃO BACHARELADO AMBIENTE PARA AUXILIAR O DESENVOLVIMENTO DE PROGRAMAS MONOLÍTICOS Orientando: Oliver Mário

Leia mais

CONVENÇÃO DE CÓDIGO JAVA

CONVENÇÃO DE CÓDIGO JAVA CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2

Leia mais

Algoritmos e Programação de Computadores

Algoritmos e Programação de Computadores Algoritmos e Programação de Computadores Algoritmos Estrutura Sequencial Parte 1 Professor: Victor Hugo L. Lopes Agenda Etapas de ação do computador; TDP Tipos de Dados Primitivos; Variáveis; Constantes;

Leia mais

CURSO B SICO DE PERL

CURSO B SICO DE PERL CURSO BÁSICO DE PERL CURSO BÁSICO DE PERL ESTRUTURA: 12 aulas de 2 horas e meia totalizando 30 horas. 2 créditos. É necessário 75% de presença (com exceções). Precisamos pensar em um método de avaliação.

Leia mais

Programação WEB I Estruturas de controle e repetição

Programação WEB I Estruturas de controle e repetição Programação WEB I Estruturas de controle e repetição Operadores de Incremento Operadores de incremento servem como expressões de atalho para realizar incrementos em variáveis Operadores de Incremento Vamos

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

ESTRUTURA CONDICIONAL

ESTRUTURA CONDICIONAL AULA 6 ESTRUTURA CONDICIONAL 130 Tem como objetivo executar um conjunto de comandos caso uma condição lógica seja atendida. Quando a resposta lógica for falsa, nada será executado. Sintaxe Se CONDIÇÃO

Leia mais

Ficha Prática 1. José Creissac Campos, António Nestor Ribeiro {jose.campos, anr}@di.uminho.pt PPIII (LESI) 2002/03

Ficha Prática 1. José Creissac Campos, António Nestor Ribeiro {jose.campos, anr}@di.uminho.pt PPIII (LESI) 2002/03 Ficha Prática 1 José Creissac Campos, António Nestor Ribeiro {jose.campos, anr}@di.uminho.pt PPIII (LESI) 2002/03 Objectivos 1. Aprender a trabalhar com o interpretador. 2. Fazer interrogações à informação

Leia mais

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.

Aula 11 Introdução ao Pseudocódigo. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu. Aula 11 Introdução ao Pseudocódigo Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www3.ifrn.edu.br/~brunogomes Agenda da Aula Representação de Algoritmos em Pseudocódigo: Sintaxe;

Leia mais

Falso: F = Low voltage: L = 0

Falso: F = Low voltage: L = 0 Curso Técnico em Eletrotécnica Disciplina: Automação Predial e Industrial Professor: Ronimack Trajano 1 PORTAS LOGICAS 1.1 INTRODUÇÃO Em 1854, George Boole introduziu o formalismo que até hoje se usa para

Leia mais

Processamento de dados XML

Processamento de dados XML Processamento de dados XML César Vittori cvittori@inf.ufrgs.br Outubro de 2000 Resumo Considerações no desenvolvimento de software para processar dados XML. Processamento de uma DTD para interpretar marcação

Leia mais

Agentes Inteligentes segundo o Chimera

Agentes Inteligentes segundo o Chimera Agentes Inteligentes segundo o Chimera C Heuristic I M E R A No ambiente de desenvolvimento de Agentes Inteligentes Chimera, uma extensão do LPA Win-Prolog, um agente é funcionalmente composto por: Código,

Leia mais

AULA 02. 1. Uma linguagem de programação orientada a objetos

AULA 02. 1. Uma linguagem de programação orientada a objetos AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo

Leia mais

Aula 02 Excel 2010. Operações Básicas

Aula 02 Excel 2010. Operações Básicas Aula 02 Excel 2010 Professor: Bruno Gomes Disciplina: Informática Básica Curso: Gestão de Turismo Sumário da aula: 1. Operações básicas; 2. Utilizando Funções; 3. Funções Lógicas; 4. Gráficos no Excel;

Leia mais

Pesquisa Operacional na Tomada de Decisões. Conteúdos do Capítulo. Programação Linear. Lindo. s.t. Resolvendo Programação Linear Em um Microcomputador

Pesquisa Operacional na Tomada de Decisões. Conteúdos do Capítulo. Programação Linear. Lindo. s.t. Resolvendo Programação Linear Em um Microcomputador ª Edição Pesquisa Operacional na Tomada de Decisões Resolvendo Programação Linear Em um Microcomputador Gerson Lachtermacher,00 Programação Linear Software Versão Windows e comandos Formulação do problema

Leia mais

Matemática Discreta para Computação e Informática

Matemática Discreta para Computação e Informática Matemática Discreta para Computação e Informática P. Blauth Menezes blauth@inf.ufrgs.br Departamento de Informática Teórica Instituto de Informática / UFRGS Matemática Discreta para Computação e Informática

Leia mais

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP

Os objetivos indicados aplicam-se a duas linguagens de programação: C e PHP AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de

Leia mais

1.6. Tratamento de Exceções

1.6. Tratamento de Exceções Paradigmas de Linguagens I 1 1.6. Tratamento de Exceções Uma exceção denota um comportamento anormal, indesejado, que ocorre raramente e requer alguma ação imediata em uma parte do programa [GHE 97, DER

Leia mais

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador

Compiladores. Análise léxica. Plano da aula. Vocabulário básico. Motivação para análise léxica. Estrutura de um compilador Estrutura de um compilador Compiladores Análise lexical (1) Expressões Regulares 1 2 Plano da aula 1. Motivação do uso de E.R. e definições Linguagens, tokens, lexemas... 2. Regras de formação e exemplos

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi

Apostila de Fundamentos de Programação I. Prof.: André Luiz Montevecchi Apostila de Fundamentos de Programação I Prof: André Luiz Montevecchi Introdução O mundo atual é dependente da tecnologia O uso intenso de diversos aparatos tecnológicos é parte integrante do nosso dia-a-dia

Leia mais

Orientação a Objetos

Orientação a Objetos Orientação a Objetos 1. Sobrecarga (Overloading) Os clientes dos bancos costumam consultar periodicamente informações relativas às suas contas. Geralmente, essas informações são obtidas através de extratos.

Leia mais

Novas Tecnologias no Ensino da Matemática

Novas Tecnologias no Ensino da Matemática UFF Novas Tecnologias no Ensino da Matemática 1 Novas Tecnologias no Ensino da Matemática Humberto José Bortolossi http://www.professores.uff.br/hjbortol/ Lista 8 ATIVIDADE 1 Uma outra maneira de se poupar

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉCNICAS DE PROGRAMAÇÃO TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente

Leia mais

Estruturas de Repetição

Estruturas de Repetição Estruturas de Repetição Lista de Exercícios - 04 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior Estruturas de Repetição O que são e para que servem? São comandos que são utilizados

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

Leia mais

Treinamento em BrOffice.org Calc

Treinamento em BrOffice.org Calc Treinamento em BrOffice.org Calc 1 Índice I. INTRODUÇÃO...3 II. NÚMEROS, TEXTOS, FÓRMULAS E DATAS...4 III. MENUS BÁSICOS...5 1. Arquivo...5 2. Editar...5 3. Formatar...5 IV. FÓRMULAS...8 V. REFERÊNCIAS

Leia mais

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...

Leia mais

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO

Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Programação de Computadores I Fluxogramas PROFESSORA CINTIA CAETANO Problemas & Algoritmos Para resolver um problema através dum computador é necessário encontrar em primeiro lugar uma maneira de descrevê-lo

Leia mais

Introdução ao FORTRAN (Parte I)

Introdução ao FORTRAN (Parte I) Programação de Computadores III Aula 7 Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2011.1/tcc-03.063 Roteiro da Aula

Leia mais

Programação para web JavaScript

Programação para web JavaScript Programação para web JavaScript Professor: Harlley Lima E-mail: harlley@decom.cefetmg.br Departamento de Computação Centro Federal de Educação Tecnológica de Minas Gerais Belo Horizonte, 4 de maio 2016

Leia mais

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:

Leia mais

Algoritmo e Programação

Algoritmo e Programação Algoritmo e Programação Professor: José Valentim dos Santos Filho Colegiado: Engenharia da Computação Prof.: José Valentim dos Santos Filho 1 Ementa Noções básicas de algoritmo; Construções básicas: operadores,

Leia mais

O que é o JavaScript?

O que é o JavaScript? JavaScript Introdução O JavaScript é utilizado por milhões de páginas na web para melhorar o design, validar forms, e muito mais O JavaScript foi inicialmente desenvolvido pela Netscape e é a linguagem

Leia mais