Predicados dinâmicos. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
|
|
- Domingos Rico Figueiroa
- 6 Há anos
- Visualizações:
Transcrição
1 Predicados dinâmicos Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
2 Predicados dinâmicos Um predicado dinâmico é um predicado cuja definição pode ser alterada em tempo de execução, por meio da inclusão ou exclusão de cláusulas (fatos ou regras). dynamic(p/n): declara que a definição do predicado p/n pode mudar. listing(p/n): exibe a definição do predicado p/n listing(p/n) p/n. asserta(c): insere C como primeira cláusula da definição do predicado. assertz(c): insere C como última cláusula da definição do predicado. assert(c): idem a assertz/1 assert(c) assertz/1. retract(c): exclui cláusula da definição que casa com C. retractall(c): exclui todas as cláusulas da definição que casam com C. abolish(p/n): remove a definição do predicado p/n abolish(p/n) p/n. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 2
3 Predicados dinâmicos Exercício 1. Inclusão de cláusulas Faça as consultas a seguir e analise os resultados apresentados:?- assertz(p(a) p(a)), ), assertz(p(b) p(b)), ), assertz(p(c) p(c)), ), listing(p/1 p/1).?- asserta(p(1,a) p(1,a)), ), asserta(p(2,b) p(2,b)), ), asserta(p(3,c) p(3,c)), ), listing(p/2 p/2).?- listing(p). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 3
4 Predicados dinâmicos Exercício 2. Exclusão de cláusulas Faça as consultas a seguir e analise os resultados apresentados:?- retract(p(b) p(b)). ).?- listing(p/1 p/1).?- retract(p(2,b) p(2,b)). ).?- listing(p/2 p/2).?- retractall(p(x) p(x)). ).?- listing(p).?- abolish(p/2 p/2).?- listing(p). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 4
5 Memoização Memoização É uma técnica bastante eficiente para resolver problemas cuja decomposição em subproblemas mais simples apresenta muita redundância. Esta técnica consiste em manter uma tabela com as soluções de subproblemas previamente resolvidos. Exemplo: Na sequência de Fibonacci, os dois primeiros termos são iguais a 1 e, a partir do terceiro, todo termo é igual à soma dos dois anteriores (1, 1, 2, 3, 5, 8, 13, 21, 34, 55,... ). F(1) = 1 F(2) = 1 F(3) = F(2) + F(1) = 2 F(4) = F(3) + F(2) = 3 F(5) = F(4) + F(3) = 5... F(n) = F(n-2) + F(n-1) F(2) F(3) 1 F(4) 2 1 F(1) 5 F(5) F(2) F(2) F(3) 1 F(1) Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 5
6 Memoização Exemplo 1. Sequência de Fibonacci sem memoização fib(n,1) :- N<3,!. fib(n,f) :- A is N-2, fib(a,x), B is N-1, fib(b,y), F is X + Y. Exercício 3. Sequência de Fibonacci sem memoização Digite o predicado definido no Exemplo 1 e faça a consulta a seguir:?- time(forall( forall(between(1,30,n) between(1,30,n),(fib(n,f) (fib(n,f),writeln(n,writeln(n -> F)))). ). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 6
7 Memoização Exemplo 2. Sequência de Fibonacci com memoização :- dynamic fibmemo/2 /2. fibmemo(1,1). fibmemo(2,1). fibm(n,f) :- fibmemo(n,f),!. fibm(n,f) :- A is N-2, fibm(a,x), B is N-1, fibm(b,y), F is X + Y, assert(fibmemo fibmemo(n,f)). Exercício 4. Sequência de Fibonacci com memoização Digite o predicado definido no Exemplo 2 e faça a consulta a seguir:?- time(forall( forall(between(1,30,n) between(1,30,n),(fibm(n,f) (fibm(n,f),writeln(n,writeln(n -> F)))). ). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 7
8 Coleta de soluções Exemplo 3. Coleta de soluções (idem a findall/3) :- dynamic solução/1. coleta(x,c,l) :- forall(c, (C,assertz assertz(solução solução(x))), coleta(l). coleta([ ([X R X R]) :- retract(solução solução(x)),!, coleta(r). coleta([]). % dados para teste p(a). p(b). p(c). p(b). Exercício 5. Coleta de todas as soluções de uma consulta Digite os predicados definidos no Exemplo 3. Faça a consulta:?- coleta(x,p(x),l). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 8
9 Coleta de soluções Exercício 6. Coleta de todas as soluções de uma consulta, sem repetição Uma característica do predicado coleta/3 que pode ser indesejável em algumas aplicações é que ele devolve uma lista de soluções contendo soluções repetidas. Com base na definição deste predicado, crie um novo predicado coleta_sr/3 devolve uma lista com todas as soluções de uma consulta, sem repetições. coleta_sr/3, que Dica: em vez de usar assertz/1 diretamente, crie um predicado anota/1 que inclui uma solução na base de dados dinâmica só se ela não foi incluída anteriormente. Exercício 7. Coleta de todas as soluções de uma consulta, sem repetição Faça as consultas e analise os resultados apresentados:?- assert(f(1,a) f(1,a)), ), assert(f(2,a) f(2,a)), ), assert(f(3,b) f(3,b)), ), assert(f(3,c) f(3,c)), ), listing(f).?- coleta_sr(x,f(x,y),l).?- coleta_sr(y,f(x,y),l). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 9
10 Simulação de ambiente dinâmico Um ambiente dinâmico É um ambiente cujas propriedades se modificam ao longo do tempo. Exemplo 4. Estado de uma lâmpada :- dynamic lâmpada/1. lâmpada(acesa). apaga :- retract(lâmpada lâmpada(acesa)), assert(lâmpada lâmpada(apagada)). acende :- retract(lâmpada lâmpada(apagada)), assert(lâmpada lâmpada(acesa)). Exercício 8. Estado de uma lâmpada Digite os predicados definidos no Exemplo 4 e faça as consultas a seguir:?- lâmpada(e).?- apaga, lâmpada(e).?- acende, lâmpada(e). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 10
11 Simulação de ambiente dinâmico Exemplo 5. Um agente que anda, pega e solta objetos :- dynamic pos/2 /2, seg/1 /1. pos(agente,garagem). pos(micro,cozinha). pos(rádio,quarto). ande(l) :- pos(agente,l),!. ande(l) :- retract(pos pos(agente,p)), asserta(pos pos(agente,l)), format(' ('~nanda de ~w até ~w',[p,l]),!. pegue(o) :- seg(o),!. pegue(o) :- pos(o,p), ande(p), retract(pos pos(o,_)), assert(seg seg(o)), format(' ('~npega ~w',[o]),!. solte(o) :- not(seg seg(o)),!. solte(o) :- pos(agente,p), retract(seg seg(o)), assert(pos pos(o,p)), format(' ('~nsolta ~w',[o]),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 11
12 Simulação de ambiente dinâmico Exercício 9. Um agente que anda, pega e solta objetos Digite o programa do Exemplo 5 e faça as consultas a seguir:?- pegue(rádio), ande(sala), solte(rádio), ande(rua).?- pegue(rádio), ande(cozinha), solte(rádio). Exercício 10. Levar um objeto de um local para outro Defina o predicado leve(o,l),, que faz o agente levar o objeto O para o local L; ; em seguida, faça as consultas a seguir:?- leve(micro,quintal).?- leve(rádio,banheiro). Exercício 11. Descobrindo as posições de novos objetos Modifique o predicado pegue(o) de modo que, quando a posição do objeto for desconhecida, o agente pergunte ao usuário a sua localização; depois, faça a consulta:?- leve(notebook,sala), ande(rua), leve(notebook,escritório). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 12
13 Memória persistente As informações armazenadas na base de dados do Prolog são voláteis, ou seja, são descartadas assim que o sistema finaliza a sua execução. Assim, para que estas informações persistam de uma execução para outra, é necessário que elas sejam preservadas em um arquivo em disco. tell(a): redireciona a saída padrão para o arquivo de nome A. told: volta a enviar informações para a saída padrão (vídeo). see(a): redireciona a entrada padrão para o arquivo de nome A. seen: volta a ler informações da entrada padrão (teclado). Exercício 12. Redirecionamento de entrada/saída padrão Faça as consultas a seguir e analise os resultados obtidos:?- tell(' ('arq arq.pl pl'), writeln('um.'), writeln('dois.'), told.?- see(' ('arq arq.pl pl'), read(x), read(y), read(z), seen. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 13
14 Memória persistente Exemplo 6. Agente com memória persistente memorize :- tell('dados. ('dados.pl pl'), forall(pos pos(x,y), format('~w.~n',[ ('~w.~n',[pos pos(x,y)])), forall(seg seg(x), format('~w.~n',[ ('~w.~n',[seg seg(x)])), told. relembre :- retractall(pos pos(_,_)), retractall(seg seg(_)), see('dados. ('dados.pl pl'), repeat, read(c), assert(c), C=end_of_file end_of_file, retract(end_of_file end_of_file),!, seen. Exercício 13. Agente com memória persistente Acrescente as definições acima no programa do robô e teste seu funcionamento. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 14
15 Bônus: interface gráfica agente agente agente agente :- inicia, inicia, inicia, inicia, (D, (D, (D, (D,dialog dialog dialog dialog('agente')), ('Agente')), ('Agente')), ('Agente')), (D,append, (D,append, (D,append, (D,append,bitmap bitmap bitmap bitmap(image image image image('ambiente.bmp'))), ('ambiente.bmp'))), ('ambiente.bmp'))), ('ambiente.bmp'))), (D,display, (D,display, (D,display, (D,display, box box box(20,20))), (20,20))), (20,20))), (20,20))), colour colour colour(yellow)), (yellow)), (yellow)), (yellow)), point point point(20,30)), (20,30)), (20,30)), (20,30)), (D,display, (D,display, (D,display, (D,display, Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 15 (@o2,fill_pattern, (@o2,fill_pattern, (@o2,fill_pattern, (@o2,fill_pattern,colour colour colour colour(green)), (green)), (green)), (green)), (@o2,move, (@o2,move, (@o2,move, (@o2,move,point point point point(20,50)), (20,50)), (20,50)), (20,50)), (D,display, (D,display, (D,display, (D,display, (@o3,box(20,20))), (@o3,box(20,20))), (@o3,box(20,20))), (@o3,box(20,20))), (@o3,fill_pattern, (@o3,fill_pattern, (@o3,fill_pattern, (@o3,fill_pattern,colour colour colour colour(red)), (red)), (red)), (red)), (@o3,move, (@o3,move, (@o3,move, (@o3,move,point point point point(20,70)), (20,70)), (20,70)), (20,70)), (D,append, (D,append, (D,append, (D,append, (@a, (@a, (@a, (@a,bitmap bitmap bitmap bitmap(image image image image('agente.bmp')))), ('agente.bmp')))), ('agente.bmp')))), ('agente.bmp')))), (@a,move, (@a,move, (@a,move, (@a,move,point point point point(235,237)), (235,237)), (235,237)), (235,237)), (@t, (@t, (@t, (@t,timer timer timer timer(1)), (1)), (1)), (1)), (@t,start), (@t,start), (@t,start), (@t,start), (D,open). (D,open). (D,open). (D,open).
16 Bônus: interface gráfica :- dynamic posição/2, segurando/1. inicia :- forall(member free(x)), retractall(posição(_,_)), retractall(segurando(_)), assert(posição(agente,9)), assert(posição (1,1)), assert(posição (2,1)), assert(posição (3,1)). porta(1,4). porta(2,5). porta(3,6). porta(4,5). porta(4,7). porta(5,6). porta(5,8). porta(6,9). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 16
17 Bônus: interface gráfica passagem(x,y) :- porta(x,y). passagem(x,y) :- porta(y,x). rota(x,x,[x]) :-!. rota(x,y,[x R]) :- passagem(x,z), rota(z,y,r). % comandos para o agente anda(l) :- posição(agente,l),!. anda(l) :- retract(posição(agente,p)), assert(posição(agente,l)), length(r,_), rota(p,l,r), siga(r),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 17
18 Bônus: interface gráfica pega(o) :- segurando(o),!. pega(o) :- posição(o,p), anda(p), retract(posição(o,_)), assert(segurando(o)), obj(o,no,_), (No,move,X),!. solta(o) :- not(segurando(o)),!. solta(o) :- posição(agente,p), not(member member(p,[5,6])), retract(segurando(o)), assert(posição(o,p)), point(x,y)), obj(o,no,yo), X1 is X-20, Y1 is Y+Yo, (No,move, (No,move,point point(x1,y1)),!. Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 18
19 Bônus: interface gráfica siga([]). siga([s R]) :- mova(s), siga(r). mova(s) :- sala(s,x,y), forall(segurando(o),(obj(o,no,_), (No,move, (No,move,point point(x,y)))), point(x,y)). sala(1, 45, 47). sala(2, 140, 47). sala(3, 235, 47). sala(4, 45, 142). sala(5, 140, 142). sala(6, 235, 142). sala(7, 45, 237). sala(8, 140, 237). sala(9, 235, 237). -20). 0). +20). Prof. Dr. Silvio do Lago Pereira DTI / FATEC-SP 19
20 Fim
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,
Recursividade e listas
Recursividade e listas Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Princípio de recursividade Recursividade é um princípio que permite
Prof. A. G. Silva. 21 de setembro de Prof. A. G. Silva Programação em Lógica 21 de setembro de / 1
Programação em Lógica Prof. A. G. Silva 21 de setembro de 2017 Prof. A. G. Silva Programação em Lógica 21 de setembro de 2017 1 / 1 I Exercícios sobre bases dinâmicas II Gramáticas Prof. A. G. Silva Programação
Predicados extra lógicos. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012
Predicados extra lógicos 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
Recursividade e listas
Recursividade e listas Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Princípio de recursividade Recursividade é um princípio que permite
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,
Algoritmos e Estruturas de Dados I 01/2013. Vetores e Recursividade. Pedro O.S. Vaz de Melo
Algoritmos e Estruturas de Dados I 01/2013 Vetores e Recursividade Pedro O.S. Vaz de Melo Problema 1 Implemente uma função que classifique os elementos de um vetor em ordem crescente usando o algoritmo
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,
Registros, Vetores e Matrizes
Registros, Vetores e Matrizes Lista de Exercícios - 05 Algoritmos e Linguagens de Programação Professor: Edwar Saliba Júnior 1) Elabore um algoritmo que leia 10 números inteiros digitados pelo usuário
6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014
6 a Lista Complementar de Exercícios de CI208 Programação de Computadores 13/02/2014 Parte A - Exercícios de Fixação de Aprendizagem 1. Faça um programa em C++ que leia do teclado uma sequência de 10 números
Exercícios Repetição
Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que
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
Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02
1 Objetivos da lista Universidade Federal do ABC Programação Estruturada Fabrício Olivetti França Lista de Exercícios 02 Esta lista de exercícios tem como objetivo introduzir funções na linguagem C. Como
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
ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO
ESTRUTURAS DE CONTROLE - LAÇOS OU MALHAS DE REPETIÇÃO Executa uma sequencia de comandos; nenhuma, uma ou várias vezes de acordo com uma condição, ou de acordo com uma variável de controle. 6.1 - REPETIÇÃO
Algoritmos - 5. Alexandre Diehl. Departamento de Física - UFPel
Algoritmos - 5 Alexandre Diehl Departamento de Física - UFPel Estruturas usadas num algoritmo Estrutura sequencial Estrutura condicional Estrutura de repetição PCF2017 2 Estruturas usadas num algoritmo
Universidade Federal de Ouro Preto UFOP. Instituto de Ciências Exatas e Biológicas ICEB. Departamento de Computação DECOM
PROGRAMAÇÃO DE COMPUTADORES I BCC701 2017-2 Aula Prática 05 Analise os códigos abaixo para o cálculo das médias aritméticas de dois ou mais números quaisquer. Média Aritmética de 2 Números n = 2; media
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
Algoritmos e Programação
Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Parte 03 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti www.twitter.com/jorgecav
Busca no espaço de estados (parte I)
Busca no espaço de estados (parte I) Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Idéia básica A idéia básica da busca no espaço de estados
Prof. A. G. Silva. 25 de setembro de Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de / 35
INE5603 Introdução à POO Prof. A. G. Silva 25 de setembro de 2017 Prof. A. G. Silva INE5603 Introdução à POO 25 de setembro de 2017 1 / 35 Baseado em materiais da Recursividade Unisinos, Cesar Tacla (UTFPR),
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
Faculdade de Computação
Faculdade de Computação Programação Procedimental 13 Laboratório de Programação - Algoritmos Prof. Cláudio C. Rodrigues Prof. Fabíola Gonçalves I. Introdução a Arquivos A motivação para utilizar arquivos
Programação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Aula 4 Introdução ao C
Considere o nosso MSC. O Processador Central, entende o conjunto de instruções, leia, imprima, atribuição e condicional e com ela resolvemos vários problemas, construindo vários algoritmos. As instruções
Python Funções. Introdução à Programação SI1
Python Funções Introdução à Programação SI1 Conteúdo Funções Conceitos Objetivos Modularização Exemplos Exercícios 2 Funções O que são? Qual a função de uma função? 3 Imagine o código 4 Imagine o código
Criação de Processos Fork( ) Exec( )
Criação de Processos Fork( ) Exec( ) 8/23/18 1 Chamadas de Sistema: Process Management 2 Chamada fork( ) / exec( ) 3 Esboço de uma shell while (TRUE) { /* repeat forever */ type_prompt( ); /* display prompt
Cartões Jogo de Pega-pega
Cartões Jogo de Pega-pega Faça um jogo no qual você precisa pegar um ator para marcar pontos. Conjunto de 7 cartões Cartões Jogo de Pega-pega Use os cartões na seguinte ordem: 1. Mova para a direita e
Simulação de Caixa Automático
Programação Funcional UFOP DECOM 2014.1 Trabalho 1 Simulação de Caixa Automático Sumário Resumo Com esta atividade pretende-se explorar a construção de programas interativos usando ações de entrada e saída
O que é Sintaxe e Semântica? Sintaxe e Semântica. O que é Sintaxe e Semântica? Sintaxe e Semântica. Instruções Primitivas
Construção de Algoritmos Algoritmos e Lógica de Programação Estrutura seqüencial Dicas para escrever bons algoritmos Reinaldo Gomes reinaldo@cefet-al.br O que é? Sintaxe diz respeito a forma de como as
TRABALHO PRÁTICO Nro. 01
USP ICMC SSC SSC0510 - Arquitetura de Computadores Professor responsável: Fernando Santos Osório Semestre: 2010/2 Horário: Quarta 21h00 E-mail: fosorio.at. icmc.usp.br fosorio.at. gmail.com Web: http://www.icmc.usp.br/~fosorio
O que é Sintaxe e Semântica?
Algoritmos e Lógica de Programação Construção de Algoritmos Sintaxe e Semântica iti Estrutura seqüencial Dicas para escrever bons algoritmos Reinaldo Gomes reinaldo@cefet-al.br O que é Sintaxe e Semântica?
LINGUAGEM ALGORÍTMICA
LINGUAGEM ALGORÍTMICA Adriano Mauro Cansian André Proto UNESP - São José do Rio Preto Linguagem Computacional Introdução! Para uma melhor padronização de nosso estudos, vamos agora definir uma linguagem
Algoritmos. Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi
Algoritmos Algoritmos e Linguagem de Programação - Prof Carlos Vetorazzi Etapas para o desenvolvimento de um programa Analise: estudo do problema para determinação dos dados de entrada, do processamento
Aula 15: Repetição (Parte 3)
Aula 15: Repetição (Parte 3) Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aula Anterior Breve Revisão Comandos de Decisão
Exercícios: Recursão
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Recursão 1. Faça uma função recursiva que calcule e retorne o fatorial
-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida. Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça
-Periféricos -Dispositivos de Entrada/Saída - Unidade de medida Gustavo Catarino da Costa Wilson Coelho Neto Paulo Wesley Fogaça O que é o Computador? Máquina composta de partes eletrônicas e eletromecânicas
Variáveis Compostas Homogêneas Vetores
Variáveis Compostas Homogêneas Vetores Lógica de Programação Prof. Kleber Rezende Considerações Iniciais Os vetores são variáveis estruturadas homogêneas capazes de armazenar uma série de informações de
Sub Rotinas. Estrutura de Dados. Prof. Kleber Rezende
Sub Rotinas Estrutura de Dados Prof. Kleber Rezende Considerações Iniciais Uma dos métodos mais comuns e amplamente utilizados em programação de computadores é o Top-Down. Nesta abordagem um problema é
Introdução à Programação de Computadores Fabricação Mecânica
Introdução à Programação de Computadores Fabricação Mecânica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 03 - Conceitos: Hardware, Software, Sistema Operacional
Introdução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
TUTORIAL DE ADMINISTRAÇÃO DO SITE
TUTORIAL DE ADMINISTRAÇÃO DO SITE WWW.BANDAX10.COM.BR O COMANDE É um sistema de Gerência de conteúdo bem simples e produzido com toda praticidade para que o cliente possa ter total facilidade em publicar
Estrutura Sequencial. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo
Estrutura Sequencial Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Fundamentos Tipo de dados especifica um conjunto de valores e operações
Vinicius A. de Souza de janeiro de Contato:
Lógica de Programação Vinicius A. de Souza 1 10 de janeiro de 2012 1 Contato: va.vinicius@gmail.com Sumário 1 Organização dos computadores 2 2 Lógica de programação 2 3 Variáveis 3 3.1 Tipos de dados............................
Softwares de Acessibilidade (DOSVOX) Guia de Consulta
Universidade de Santo Amaro Softwares de Acessibilidade (DOSVOX) Guia de Consulta São Paulo, 2012. Índice 1. Instalação... 2. DOSVOX... 1 2.1. Testar teclado... 2 2.2. Editar Texto... 3 2.3. Ler Texto...
Introdução à Programação 2006/07. Algoritmos
Introdução à Programação 2006/07 Algoritmos Cálculo da média de uma sequência Algoritmos: Exercício 1 Pretende-se escrever um programa que, dado um numero indeterminado de números introduzidos pelo teclado,
Puca Huachi Vaz Penna
BCC201 Introdução à Computação Turmas 61, 62, 63, 64, 65 e 66 Puca Huachi Vaz Penna Departamento de Computação Universidade Federal de Ouro Preto http://www.decom.ufop.br/puca puca@iceb.ufop.br Aula 2
Linguagem C ESTRUTURA DE CONTROLE
ESTRUTURA DE CONTROLE REPETIÇÃO PARA / ENQUANTO Jaime Evaristo (http://professor.ic.ufal.br/jaime/) Slide 1 ESTRUTURA DE REPETIÇÃO - Utilizando PARA Na repetição uma sequência de comandos deve ser executada
Depois de configurada nossa comunicação serial podemos enviar vários comandos para comunicação entre o computador e o Arduino:
Tarefa prática com Arduino nível II Parte 1: Usando o monitor Serial. O Arduino se comunica com o computador por meio de uma conexão serial. Ela é ligada aos pinos 0 (RX) e 1 (TX) da placa. Para iniciar
Disciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Atividades Plano de ensino Conteúdos da disciplina, definição das datas, critérios de avaliação e bibliografias Início da matéria Conceito e definição de algoritmos
Introdução aos Algoritmos
Introdução aos Algoritmos Aula 05 Diogo Pinheiro Fernandes Pedrosa http://www2.ufersa.edu.br/portal/professor/diogopedrosa diogopedrosa@ufersa.edu.br Universidade Federal Rural do Semiárido Bacharelado
Como usar o P-touch Transfer Manager
Como usar o P-touch Transfer Manager Versão 0 BRA-POR Introdução Aviso importante O conteúdo deste documento e as especificações deste produto estão sujeitos a alterações sem aviso prévio. A Brother se
MAC425: EP2 Data de entrega: 4 de dezembro de 2006
MAC425: EP2 Data de entrega: 4 de dezembro de 2006 4 brisa 3 brisa brisa 2 brisa 1 brisa brisa 1 2 3 4 Simulador do Mundo do Wumpus em Prolog Ambiente As alterações com relação ao livro AIMA, estão descritas
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
Exercícios: Vetores e Matrizes
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Vetores e Matrizes 1 Vetores 1. Faça um programa que possua um vetor
Rosane Minghim e Guilherme P. Telles
Introdução à Computação Rosane Minghim e Guilherme P. Telles 9 de Agosto de 2012 Capítulo 6 Registros e Arquivos Neste capítulo apresentamos registros e arquivos. Registros são estruturas que permitem
Linguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas e coerentes, que resolvam com qualidade os problemas que
Programação de Computadores 1 Lista 2. Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP
Programação de Computadores 1 Lista 2 Prof. Álvaro A. F. de Souza DECSI - ICEA - UFOP 0.1 Vetores e Cadeias de Caracteres 1. Codifique um programa que leia e armazene duas notas de 10 alunos e calcule
Algoritmos e Programação
Algoritmos e Programação Aula 7 Vetores Profa. Marina Gomes marinagomes@unipampa.edu.br 19/05/2017 Engenharia de Computação - Unipampa 1 Motivação Problema: Leia as notas de uma turma de cinco estudantes
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
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS. Aluno (s): 01 ATIVIDADE. Revisão de Conteúdo
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO MARANHÃO - CAMPUS CAXIAS DISCIPLINA: Lab. de Programação PROF: MSc. Flávio Barros PERÍODO: 2 DATA: Aluno (s): 01 ATIVIDADE / / Revisão de Conteúdo
Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Aula 12 Arquivos Texto e Binário Prof: Luciano Barbosa Relembrando a Arquitetura Básica de um Computador Até agora, toda a informação armazenada por nossos programas estava na memória
Lógica de Programação
Lógica de Programação Significa o uso correto das leis do pensamento e de processos de raciocínio para a produção de soluções logicamente válidas v e coerentes,, que resolvam com qualidade os problemas
Sistemas Operacionais e Introdução à Programação. Introdução à Lógica de Programação: estruturas de repetição
Sistemas Operacionais e Introdução à Programação Introdução à Lógica de Programação: estruturas de repetição 1 Imagine um algoritmo para calcular a média de uma quantidade desconhecida de números Para
MANUAL USUÁRIO - ADMINISTRAÇÃO SITE. Sumário
MANUAL USUÁRIO - ADMINISTRAÇÃO SITE Sumário Endereços de Acesso/Usuários/Senhas ------------------------- 2 Imóveis ------------------------------------------------------------------ 3 Postagens/Notícias
Treinamento Olimpíada Brasileira de Informática
Treinamento Olimpíada Brasileira de Informática Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 02 Entrada e Saída de Dados Exercícios Saída de dados Saída de dados compreende
Algoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
MICROCOMPUTADORES. Professor Adão de Melo Neto
MICROCOMPUTADORES Professor Adão de Melo Neto Sumário Organização Básica I (base) Organização Básica II (refinamento) Organização Básica III (Microcontrolador 8051) ORGANIZAÇÃO BÁSICA I Composição Unidade
Programação II. Victor Amorim dos Santos
Programação II Victor Amorim dos Santos Estrutura de repetição - Loops Definição Loop é uma palavra inglesa, que originalmente significa aro, anel ou sequência. Início X verdadeiro X!= 0 Exemplo: Ler um
Exercícios: Arquivos
Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Arquivos 1. Codifique, compile e execute um programa que: (a) crie/abra
4ª Lista de Exercícios de Programação I
4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores
Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013
Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão 1.0 12/11/2013 SSC0300 Linguagem de Programação e Aplicações Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz
Universidade Federal de Minas Gerais. Sistemas Operacionais. Aula 19. Sistema de Entrada/Saída
Aula 19 Sistema de Entrada/Saída Sistema de E/S Por que estudar? Essenciais! Muitos tipos: - mouse - discos - impressora - scanner - rede - modem Cada fabricante complica de um jeito diferente. Tempos
Capítulo 8 Compactação e descompactação de arquivos
Capítulo 8 Compactação e descompactação de arquivos 8.1 Dando início Neste capítulo nós trataremos de algumas tarefas que são bastante comuns à todas as pessoas que lidam com arquivos em computadores:
Programação de Computadores I - PRG1 Engenharia Elétrica
Programação de Computadores I - PRG1 Engenharia Elétrica Edilson Hipolito da Silva edilson.hipolito@ifsc.edu.br - http://www.hipolito.info Aula 03 - Conceitos: Hardware, Software, Sistema Operacional Roteiro
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I)
Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton nilton@comp.uems.br 1 Sumário Construção de algoritmos usando estruturas de repetição
Limpar Itens Marcados (Riscados) no Microsoft Outlook IMAP
Limpar Itens Marcados (Riscados) no Microsoft Outlook Classificação do Documento: Página 1 de 6 ÍNDICE ÍNDICE... 2 CONTROLE DOCUMENTO... 3 OBJETIVO... 4 USUÁRIOS DO DOCUMENTO... 4 INTER-RELACIONAMENTO
Exercícios de Fixação Conteúdo das aulas 03 a 06
Disciplina: TCC-0.0 Prog. de Computadores III Professor: Leandro Augusto Frata Fernandes Turma: E- Data: / / Exercícios de Fixação Conteúdo das aulas 0 a 0. Dado o pseudocódigo a seguir, responda: lógico:
Processamento da Informação Teoria. Laços
Processamento da Informação Teoria Laços Semana 02 Prof. Jesús P. Mena-Chalco 04/05/2013 Laços (estruturas de repetição) Usado em situações em que é necessário repetir um determinado trecho de um programa,
Sabe-se que as unidades de entrada e saída são dos dispositivos que possibilitam a comunicação entre o usuário e o computador.
Comandos de entrada e saída Sabe-se que as unidades de entrada e saída são dos dispositivos que possibilitam a comunicação entre o usuário e o computador. Seja a seguinte situação: No início da execução
Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural. Carlos Alberto Alonso Sanches
CT-234 Estruturas de Dados, Análise de Algoritmos e Complexidade Estrutural Carlos Alberto Alonso Sanches CT-234 2) Algoritmos recursivos Indução matemática, recursão, recorrências Indução matemática Uma
Capítulo 7 Matriz. Roteiro
Capítulo 7 Matriz Licenciatura em Computação Fundamentos de Lógica para Programação Prof. Nícolas Trigo nicolas.trigo@ifsertao-pe.edu.br http://professor.ifsertao-pe.edu.br/nicolas.trigo Roteiro Definição
Estruturas de Repetição
Estruturas de Repetição Lista 05 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 na programação
Persistência de Dados
Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD
Técnicas de análise de algoritmos
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA DE MINAS GERAIS Técnicas de análise de algoritmos Algoritmos e Estruturas de Dados I Natália Batista https://sites.google.com/site/nataliacefetmg/ nataliabatista@decom.cefetmg.br
Estruturas Condicionais e de Repetição
Estruturas Condicionais e de Repetição Prof. Wylliams Barbosa Santos wylliamss@gmail.com Introdução à Programação Crédito de conteúdo: Professora Ceça Moraes Conteúdo Comando de Decisão Comandos de Repetição
Complexidade de Algoritmos. Edson Prestes
Edson Prestes Programação Dinâmica A programação dinâmica costuma ser aplicada a problemas de otimização resultando, em geral, em algoritmos mais eficientes que os mais diretos. Esse método é útil quando
Introdução a Linguagem C. Prof. Me. Hélio Esperidião
Introdução a Linguagem C Prof. Me. Hélio Esperidião Características de um programa De forma geral a maioria dos programas são compostos por dados de entrada, processamento e dados de saída. Entrada de
Arquiteturas e desenhos finais
Arquiteturas e desenhos finais Ao contrário das versões anteriores do Eberick, em que os comandos para importação e exportação de arquivos DWG/DXF eram acessados no menu Ferramentas, a partir do Eberick
LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.
LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado
Raciocínio Automatizado
Raciocínio Automatizado Prof. Dr. Silvio do Lago Pereira Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo Introdução Raciocínio automatizado simula raciocínio lógico por meio
COLÉGIO OBJETIVO JÚNIOR
COLÉGIO OBJETIVO JÚNIOR NOME: N. o : DATA: / /2015 FOLHETO DE INFORMÁTICA (V.C. E R.V.) 7. o ANO Ao longo deste ano, aprendemos a operar os comandos e as funções básicas do SCRATCH, por exemplo, utilizando
Manual do InCD Reader
Manual do InCD Reader Nero AG Informações sobre direitos autorais e marcas registradas O manual e todo o seu conteúdo é protegido por leis de direitos autorais e são de propriedade da Nero AG. Todos os
ATIVIDADE EXTRA COMPONENTE CURRICULAR (AEC)
FACULDADE DE TECNOLOGIA SENAC GOIÁS FUDAMENTOS DE REDES DE COMPUTADORES Isadora Mesquita Julia Gabriella ATIVIDADE EXTRA COMPONENTE CURRICULAR (AEC) Professora: Lúcilia Ribeiro GOIÂNIA, 2016 Isadora Mesquita
Estrutura de Dados Conceitos Iniciais
Engenharia de CONTROLE e AUTOMAÇÃO Estrutura de Dados Conceitos Iniciais Aula 04 DPEE 08 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria
4ª Lista de Exercícios de Programação I
4ª Lista de Exercícios de Programação I Instrução As questões devem ser implementadas em C. 1. Faça um algoritmo que leia 10 valores inteiros armazenando-os em um vetor e depois calcule a soma dos valores
Linguagem C Ponteiros
Linguagem C Ponteiros Instituto Federal de Educação, Ciência e Tecnologia do Triângulo Mineiro Prof. Edwar Saliba Júnior Janeiro de 2018 Unidade 14 Linguagem C - Ponteiros 1/24 Identificadores e Endereços