Software de Telecomunicações. Verificação de modelos com a ferramenta Murphi

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

Download "Software de Telecomunicações. Verificação de modelos com a ferramenta Murphi"

Transcrição

1 Software de Telecomunicações Verificação de modelos com a ferramenta Murphi Prof RG Crespo Software de Telecomunicações Murphi : 1/38 Introdução (1) Passos na análise da segurança de protocolos, baseados em modelos Descrição protocolo Requisitos protocolo (modelo) Modelo intruso Falhas de segurança Analisador Propriedades de segurança (especificação) Prof RG Crespo Software de Telecomunicações Murphi : 2/38

2 Introdução (2) Várias técnicas têm sido exploradas na verificação formal da segurança de protocolos Varrimento dos estados finitos Blast, programas escritos em C Murϕ, programas escritos em Pascal SMV SPIN, Programas escritos em Promela Modelo de estados infinitos (SRI) Álgebra de processos (cálculo π) Modelos probabilísticos (PRISM) Na disciplina usa-se a ferramenta Murϕ, Univ. Stanford/US, acessível em Prof RG Crespo Software de Telecomunicações Murphi : 3/38 Murϕ: introdução (1) O sistema é descrito por Variáveis de estado inicializadas (tabelas de dispersão usadas, para evitar repetição de estados) Regras de transição para cada participante no protocolo Comunicação implementada por variáveis partilhadas O Murϕ varre os estados, por onde o sistema pode passar, terminando quando identificar violação das regras de segurança. bloqueio ( deadlock ) por o estado não ter transições para outro Nota: directiva ndl não verifica bloqueio Prof RG Crespo Software de Telecomunicações Murphi : 4/38

3 Murϕ: introdução (2) Actuais ferramentas permitem analisar até estados. Nota1: Para variáveis com 10 valores, 10 8 é coberto por 8 variáveis. Se o espaço de variáveis for reduzido para 3 valores, 10 3*3 e 10 8 é coberto por 16 variáveis. Nota2: normalmente, os protocolos não cobrem todos os estados gerados pelos espaços das variáveis (certas combinações não têm significado). Para reduzir espaço de pesquisa, adoptadas simplificações: Número finito de participantes (ex: 2 clientes, 2 servidores) Números aleatórios representados por constantes (r1, r2, ) Prof RG Crespo Software de Telecomunicações Murphi : 5/38 Murϕ: introdução (3) Passos na análise de segurança em protocolos 1. Representação do protocolo Definir tipo de dados para cada mensagem. Descrever o comportamento de cada participante, por uma máquina de estados finitos. Descrever a condição de segurança como invariante de estado. 2. Adição do intruso Acede a todas as mensagens ( buffer partilhados) Murϕ tenta todas as combinações possíveis de intercepção, divisão e guarda de mensagens geração de novas mensagens a partir dos dados observados e conhecimentos iniciais (ex: chaves públicas) Prof RG Crespo Software de Telecomunicações Murphi : 6/38

4 Murϕ: introdução (4) O programa a submeter ao Murϕ é formado por 3 partes: 1. Declarações i. Constantes (const) ii. Tipos de dados (type) iii. Variáveis globais (var) 2. Rotinas não aninhadas 3. Comportamento do sistema: Regras de transição Definição dos estados iniciais Invariantes a terem de ser satisfeitos em todos os estados Prof RG Crespo Software de Telecomunicações Murphi : 7/38 Murϕ: introdução (5) Um estado é definido pelo valor das variáveis globais. As falhas de segurança ocorrem quendo o sistema entre num estado que não satisfaz o invariante. Problema Down Benchmark: Numa tabela de inteiros é aplicada uma função de decrementar todas as posições até ao índice máximo. O invariante é detwerminado pela condição da soma da tabela ter de ser positiva (>0). O problema é incluído na distribuição do Murϕ no ficheiro Murphi3.1/ex/toy/down.m Prof RG Crespo Software de Telecomunicações Murphi : 8/38

5 Murϕ: declarações (1) A. Bloco de constantes const {id: expressão-inteira;} Zero, uma, ou mais Ex: Down Benchmark const INITIAL_VAL: 5; -- valor inicial da tabela L: 1; H: 6; -- índices inferior e máximo MAX_VAL:(H-L+1)*INITIAL_VAL; Prof RG Crespo Software de Telecomunicações Murphi : 9/38 Murϕ: declarações (2) B. Tipos type {id: tipo;} O Murϕ suporta os seguintes tipos de dados: boolean -- booleanos, constantes true e false <expr>.. <expr> -- gama de valores enum { id {,id} } -- enumerados scalarset( <expr> {,<expr>} ) -- conjunto de valores, não ordenados e não identificados union { tipo {, tipo} } -- grupos de scalarset record { decl-var } end -- estruturas array [ tipo ] of tipo -- tabelas de objectos multiset [ DIM ] of tipo -- colecções não ordenadas de objectos de -- determinado tipo e tamanho máximo DIM Prof RG Crespo Software de Telecomunicações Murphi : 10/38

6 Murϕ: declarações (3) Nota1: não há inteiros, devido ao elevado espaço ocupado pelos literais. Nota2: limites dos enumerados e dimensão do scalarset devem poder ser calculados na altura da declaração. Nota3: não existem literais nos scalarset. Valores podem ser atribuídos a variável id de tipo scalarset pelas instruções forall, exists, for, ruleset ou atribuição de outra variável de tipo scalarset. Ex: Down Benchmark type ind_t: L..H; val_t: 0..INITIAL_VAL; arr_t: Array[ ind_t ] Of val_t; sum_t: 0.. MAX_VAL; Prof RG Crespo Software de Telecomunicações Murphi : 11/38 Murϕ: declarações (4) C. Variáveis de estado var {id: tipo;} Ex: Down Benchmark var a: arr_t; Prof RG Crespo Software de Telecomunicações Murphi : 12/38

7 Murϕ: instruções (1) <stmts> ::= <stmt> {; <stmt> } --- as instruções são separadas por ; A. Atribuição id := <expr> B. Retorno de função return [ <expr>] C. Condicional if <expr> then [ <stmts> ] { elsif <expr> then [ <stmts> ] } [ else [ <stmts> ] ] endif Prof RG Crespo Software de Telecomunicações Murphi : 13/38 Murϕ: instruções (2) D. Escolha valores switch <expr> { case <expr> then [ <stmts> ] } [ else [ <stmts> ] ] endswitch E. Varrimento for <quantif> do [ stmts ] endfor <quantif> ::= id:<tipo> id := <expr> to <expr> [by <expr>] F. Ciclo while <expr> do [ stmts ] end Prof RG Crespo Software de Telecomunicações Murphi : 14/38

8 Murϕ: instruções (3) G. Geração erro error <string> --- termina verificação e imprime string H. Asserção assert <expr> [ <string> ] --- equivale if!<expr> then error <string> end I. Chamada a procedimento id ( <expr> {, <expr> }) J. Impressão put ( <expr> <string> ) Prof RG Crespo Software de Telecomunicações Murphi : 15/38 Murϕ: instruções (4) As expressões podem ser formadas por Operadores inteiros (+, -, *, /, %) Operadores relacionais (=,!=, >, >=, <, <=) Operadores lógicos (!,, &, ->) Chamada a funções Quantificador universal forall <quantif> do <expr> endforall Quantificador existencial exists <quantif> do <expr> endforall Localização id {. id [ <expr> ] } Nota: nos quantificadores, <expr> deve ser de tipo booleano Prof RG Crespo Software de Telecomunicações Murphi : 16/38

9 Murϕ: rotinas (1) As rotinas (procedure ou function), não aninhadas, são todas declaradas entre as declarações e o programa. procedure id( [ par {; par} ]); [ <decl> begin ] [ <stmts> ] opcional function id ([ par {; par} ]) <tipo>; [ <decl> begin ] [ <stmts> ] Prof RG Crespo Software de Telecomunicações Murphi : 17/38 Murϕ: rotinas (2) Parâmetros podem ser passados por referência ou por valor Ex: Down Benchmark procedure Decrement( var dec : val_t ); begin if dec >= 1 then dec := dec-1; Function Sum( a : arr_t ): sum_t; var sum : sum_t; begin sum := 0; for i : ind_t do sum := sum+a[i]; return sum; Prof RG Crespo Software de Telecomunicações Murphi : 18/38

10 Murϕ: scalarset Seja a declaração var id:multiset[dim] of type; mutisetadd(<expr>,loc) -- armazena valor ismember(<expr>,type) -- verifica se expressão está armazenada multisetcount(i:loc,<expr>) -- devolve numero de valores armazenados, que satisfazem -- condição indicada pela expressão booleana Prof RG Crespo Software de Telecomunicações Murphi : 19/38 Murϕ: regras (1) As regras de comportamento identificam as transições no autómato. Cada regra é dividida em condição e acção. O Murϕ armazena os estados percorridos, por omissão em largura. Os estados visitados são marcados, bem como todas as transições percorridas. O verificador executa todos os traços possíveis. Se for atingido um estado que não satisfaça o invariante, ou um estado sem transições, termina execução. O Murϕ é formado por regras simples. Outros construtores facilitam a especificação do protocolo. ruleset e startstate Invariante Choose Prof RG Crespo Software de Telecomunicações Murphi : 20/38

11 Murϕ: regras (2) A. Simples <simplerule> ::= rule [<string>] [ <expr> ==> ] [ {<decl>} ] begin [ stmts ] -- normalmente altera estado do sistema end Nota: a expressão tem de ser de tipo booleano e determina a pré-condição para execução da transição Prof RG Crespo Software de Telecomunicações Murphi : 21/38 Murϕ: regras (3) B. Conjunto <ruleset> ::= ruleset <quantif> { ; <quantif> } do <regras> end As <regras> são duplicadas, com a substituição dos identificadores por cada um elementos do scalarset ou intervalo de valores. Prof RG Crespo Software de Telecomunicações Murphi : 22/38

12 Murϕ: regras (4) Ex: Down Benchmark ruleset i : L.. H do rule a[i] > 0 ==> begin Decrement( a[i] ); if i+1 < H then if a[i+1] > 0 then Decrement(a[i+1]); Prof RG Crespo Software de Telecomunicações Murphi : 23/38 Murϕ: regras (5) C. Início <startstate> ::= startstate [ <string> ] [ { <decl> } ] begin <stmts> end As regras <startstate> são executada apenas no início da verificação. As instruções devem inicializar as variáveis. Prof RG Crespo Software de Telecomunicações Murphi : 24/38

13 Murϕ: regras (6) Ex: Down Benchmark startstate begin for i : ind_t do a[ i ] := INITIAL_VAL; Prof RG Crespo Software de Telecomunicações Murphi : 25/38 Murϕ: regras (7) D. Invariantes <invariant> ::= invariant [ <string> ] <expr> O invariante corresponde à regra rule end!<expr> ==> error <string> Ex: Down Benchmark invariant "Positive sum" Sum(a) > 0; Prof RG Crespo Software de Telecomunicações Murphi : 26/38

14 Murϕ: regras (8) E. Choose choose i:loc do O Murϕ selecciona um elemento de uma localização de tipo multiset Prof RG Crespo Software de Telecomunicações Murphi : 27/38 Modelo intruso Dolev-Yao As capacidades de um intruso são descritas no modelo proposto por Dolev e Yao*. No modelo, o intruso pode Pode interceptar e emitir mensagens Pode dividir e formar pares Pode cifrar/decifrar mensagens desde que conheça a chave. * On the security of public key protocols; D. Dolev and A. Yao; IEEE Transations on Information Theory 29(2), pp ; Mar Prof RG Crespo Software de Telecomunicações Murphi : 28/38

15 Exemplo (1) Consideremos um protocolo inseguro de envio de uma mensagem secreta As chaves são conhecidas apenas pelos donos. I {M}K I {M}K I K R R Nota: protocolo falha, porque as mensagens não são autenticadas I E R {M}K R {M}K I {M}K I K E {M}K E {O}K E {O}K E K R {O}K R Prof RG Crespo Software de Telecomunicações Murphi : 29/38 Exemplo (2) 1. Canais de comunicação implementados por uma variável global de tipo multiset Const NetworkCap: 2; -- max number of outstanding msgs in the net Type Message: record -- message contents Var net: multiset[networkcap] of Message; -- network Prof RG Crespo Software de Telecomunicações Murphi : 30/38

16 Exemplo (3) 2. Estado do agente determinado por variável de tipo enumerado. O estado de partida deve ser testado na précondição Type InitiatorStates: enum{i_sleep,i_wait, I_COMMIT}; Initiator:record state: InitiatorStates; Var ini: array[initiatorid] of Initiator; Prof RG Crespo Software de Telecomunicações Murphi : 31/38 Exemplo (4) 3. Intercepção implementada por envio de mensagens do nó para todos os restantes agentes Type InitiatorId: scalarset(numinitiators); ResponderId: scalarset(numresponders); EavesdropperId: scalarset(numeavesdroppers); AgendId: union{initiatorid, ResponderId, EavesdropperId}; Prof RG Crespo Software de Telecomunicações Murphi : 32/38

17 Exemplo (5) ruleset i:initiatorid do ruleset d:agentid do rule 01 "Initiator sends ciphered message ini[i].state=i_sleep &!ismember(d,initiatorid) -- only to Responder and Intruder ==> var outm: Message; -- outgoing message begin -- constructs message mutisetadd(outm,net); -- message sent! Prof RG Crespo Software de Telecomunicações Murphi : 33/38 Exemplo (6) 4. Intruso guarda mensagens num multiset Const MaxKnowledge:5; -- max number of msgs intruder can remember Type Intruder:record gotit: boolean; store: mutiset[maxknowledge] of Messages; Var int: array[eavesdropperid] of Intruder; Prof RG Crespo Software de Telecomunicações Murphi : 34/38

18 Verificação (1) Para gerar o ficheiro de verificação, executar o Makefile MU = /usr/local/share/murphi3.1/bin/mu.x86 INCLUDE = /usr/local/share/murphi3.1/include/ CXX = g++ CFLAGS = -DCATCH_DIV -fno-default-inline -Wnodeprecated test: test.c ${CXX} ${CFLAGS} -I${INCLUDE} test.c -o test lm test.c: test.m ${MU} -c test.m clean: rm -f test test.c Prof RG Crespo Software de Telecomunicações Murphi : 35/38 Verificação (2) Verificação executada directamente no programa gerado Opções disponíveis -h imprime lista de comandos -ndl não verifica bloqueio -p muito mais verboso Exemplo de verificação com opção -p Unpacking state from queue: ini[initiatorid_1].state:i_sleep res[responderid_1].state:r_sleep res[responderid_1].deliver:undefined int[eavesdropperid_1].gotit:false Prof RG Crespo Software de Telecomunicações Murphi : 36/38

19 Verificação (3) The following next states are obtained: Firing rule Initiator sends ciphered message, d:responderid_1, i:initiatorid_1 Obtained state: net{0}.mtype:m_inicipher net{0}.data:valid net{0}.source:initiatorid_1 Mensagem inserida na rede net{0}.dest:responderid_1 net{0}.key1:initiatorid_1 net{0}.key2:undefined ini[initiatorid_1].state:i_wait res[responderid_1].state:r_sleep res[responderid_1].deliver:undefined int[eavesdropperid_1].gotit:false Prof RG Crespo Software de Telecomunicações Murphi : 37/38 Verificação (4) Firing rule Initiator sends ciphered message, d:eavesdropperid_1, i:initiatorid_1 Obtained state: net{0}.mtype:m_inicipher net{0}.data:valid net{0}.source:initiatorid_1 net{0}.dest:eavesdropperid_1 net{0}.key1:initiatorid_1 net{0}.key2:undefined ini[initiatorid_1].state:i_wait res[responderid_1].state:r_sleep res[responderid_1].deliver:undefined int[eavesdropperid_1].gotit:false Prof RG Crespo Software de Telecomunicações Murphi : 38/38

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação FaculdadedeCiências UniversidadeAgostinhoNeto DepartamentodeMatemáticaeEngenhariaGeográfica CiênciasdaComputação ProgramaçãoII SegundaParte Adaptado de um original dos docentes de ISCTE Objectivos Os alunos

Leia mais

Testes Baseados na Implementação. (fluxo de controle) Baseado em notas de aula da profa. Eliane Martins

Testes Baseados na Implementação. (fluxo de controle) Baseado em notas de aula da profa. Eliane Martins Testes Baseados na Implementação (fluxo de controle) Baseado em notas de aula da profa. Eliane Martins 1 Tópicos O que é Grafo de fluxo de controle Critérios de cobertura 2 Referências B.Beizer R.Binder

Leia mais

Hugo Pedro Proença, 2007

Hugo Pedro Proença, 2007 Stored Procedures À medida que a complexidade dos sistemas aumenta, torna-se cada vez mais difícil a tarefa de integrar o SQL com as aplicações cliente. Além disto, é necessário que todas as aplicações

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

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

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

PHP. Hypertext Pre-Processor

PHP. Hypertext Pre-Processor PHP Hypertext Pre-Processor O que é o PHP? Uma linguagem de scripting é uma linguagem cujo código não tem de ser compilado para ser executado! O código escrito é interpretado em tempo de execução para

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

Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo;

Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo; Conjunto (set) O tipo estruturado set representa, em Pascal, um conjunto de objectos de um dado tipo; O tipo de dados tem por base um tipo simples (enumerável); Na verdade, um set representa o conjunto

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

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea Variáveis Compostas Heterogêneas Variável Composta Heterogênea Conjunto de dados logicamente relacionados, mas de tipos diferentes. Também chamada de registro. Variável Composta Heterogênea 1 Declaração

Leia mais

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1

Estrutura de Dados. Introdução a Ponteiros. Prof. Gerson Borges Estrutura de Dados I 1 Estrutura de Dados Introdução a Ponteiros Prof. Gerson Borges Estrutura de Dados I 1 Sumário è Explicação da importância do planejamento de ensino; è Métodos e técnicas que iremos trabalhar durante o semestre;

Leia mais

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01

IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 IFTO TÉCNICO EM INFORMÁTICA DESENVOLVIMENTO DE SISTEMAS AULA 01 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 3: Métodos LEEC@IST Java 1/45 Métodos (1) Sintaxe Qualif Tipo Ident ( [ TipoP IdentP [, TipoP IdentP]* ] ) { [ Variável_local Instrução ]* Qualif: qualificador (visibilidade,

Leia mais

Busca em Espaço de Estados

Busca em Espaço de Estados Busca em Espaço de Estados Jomi Fred Hübner jomi@inf.furb.br FURB / BCC Introdução 2 Agente orientado a meta O projetista não determina um mapeamento entre percepções e ações, mas determina que objetivo

Leia mais

INTRODUÇÃO OBJECT PASCAL/DELPHI

INTRODUÇÃO OBJECT PASCAL/DELPHI Introdução Object Pascal/Delphi 1 INTRODUÇÃO OBJECT PASCAL/DELPHI Objetivo Demonstrar a sintaxe e a semântica do Object Pascal e a forma como esse linguagem de programação será aplicada na disciplina de

Leia mais

Um sistema SMS 1 simplificado

Um sistema SMS 1 simplificado 1 Introdução Um sistema SMS 1 simplificado Projecto de Redes de Computadores I - 2007/2008 LEIC IST, Tagus Park 10 de Setembro de 2007 Pretende-se com este projecto que os alunos implementem um sistema

Leia mais

Planificação Anual da disciplina de TIC 9ºANO

Planificação Anual da disciplina de TIC 9ºANO Planificação Anual da disciplina de TIC 9ºANO Conteúdos/Temas Competências Avaliação 1.1. Conceitos Introdutórios - Conhecer os conceitos básicos: Informação Informática Tecnologias da Informação e - Conhecer

Leia mais

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP)

Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Ferramentas de Modelação e Análise de Sistemas baseadas em Redes de Petri (RdP) Existem inúmeras ferramentas (software) baseadas em RdP que permitem desenvolver modelar e analisar sistema de RdP. Algumas

Leia mais

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário

Filas. A ordem de saída corresponde diretamente à ordem de entrada dos elementos. Fila de caixa bancário Filas Fila é um tipo de lista linear onde as inserções são realizadas num extremo (final da Fila) e as remoções restritas ao outro (começo da Fila). O primeiro a entrar é o primeiro a sair e último a entrar

Leia mais

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação

Algoritmo. Prof. Anderson Almeida Ferreira. Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação 1 Algoritmo Prof. Anderson Almeida Ferreira Agradeço ao prof. Guilherme Tavares de Assis por fornecer slides que fazem parte desta apresentação Desenvolvimento de programas 2 Análise do problema Desenvolvimento

Leia mais

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL

Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL OBJECTIVOS Reconhecer alguns dos objectos VBA Automatizar bases de dados recorrendo à programação VBA e scripts SQL O objecto DOCMD Este objecto permite o acesso a todas as operações sobre todos os objectos

Leia mais

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida)

Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Sintaxe do Pascal Simplificado Estendido de 12 novas construções em Notação EBNF (BNF estendida) Não-terminais são nomes mnemônicos colocados entre parênteses angulares. Vocabulário terminal formado por

Leia mais

Calculador de preços e prazos de encomendas

Calculador de preços e prazos de encomendas Calculador de preços e prazos de encomendas O calculador de preços e prazos de encomendas dos Correios é destinado aos clientes que possuem contrato de SEDEX, e-sedex e PAC, que necessitam calcular, no

Leia mais

MANUAL DO UTILIZADOR DE REDE

MANUAL DO UTILIZADOR DE REDE MANUAL DO UTILIZADOR DE REDE Guardar o registo de impressão na rede Versão 0 POR Definições de notas Ao longo do Manual do utilizador, é utilizado o seguinte ícone: Notas sobre como enfrentar situações

Leia mais

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada

Programação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

2.3. PHP Tipos de dados e operadores

2.3. PHP Tipos de dados e operadores Programação para Internet II 2.3. PHP Tipos de dados e operadores Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Tipos de dados Embora não seja necessário declarar os tipos de dados das variáveis,

Leia mais

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos.

Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Métodos Os métodos de uma classe podem ser classificados como construtores, destrutores, funções ou procedimentos. Construtor: método executado por uma CLASSE (e não por um objeto, instância da classe)

Leia mais

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem.

O código JavaScript deve ser colocado entre tags de comentário para ficar escondido no caso de navegadores antigos que não reconhecem a linguagem. 1 - O que é JAVASCRIPT? É uma linguagem de script orientada a objetos, usada para aumentar a interatividade de páginas Web. O JavaScript foi introduzido pela Netscape em seu navegador 2.0 e posteriormente

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

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

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos

Variáveis e estruturas de controlo. Introdução à Programação André L. Santos Variáveis e estruturas de controlo Introdução à Programação André L. Santos Variáveis Uma variável pode ser vista como um espaço em memória onde um valor de determinado tipo (p.e. inteiro) pode ser guardado.

Leia mais

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções) Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando

Leia mais

Sincronização. Cooperação entre Processos

Sincronização. Cooperação entre Processos Sincronização Parte II Programação Concorrente Cooperação entre Processos Vários processos executam em conjunto uma ou mais tarefas, nas quais Competem por recursos Indicam uns aos outros a: Ausência/existência

Leia mais

Programação Estruturada e Orientada a Objetos REVISÃO

Programação Estruturada e Orientada a Objetos REVISÃO Programação Estruturada e Orientada a Objetos REVISÃO 2013 O que veremos hoje? Introdução Revisão Estruturas de Controle de Fluxo Exercícios Transparências baseadas no material do Prof. Gilbert Azevedo

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

Projeto de Banco de Dados

Projeto de Banco de Dados Projeto de Banco de Dados Prof. Marcelo Siedler Objetivos do documento: Apresentar os conceitos de stored procedutes e funções. Exercícios. Referência: http://dev.mysql.com/doc/refman/4.1/pt/stored-procedures.html

Leia mais

ISCAP. Algoritmia. Pág. 1. Ana Paula Teixeira

ISCAP. Algoritmia. Pág. 1. Ana Paula Teixeira Algoritmia Pág. 1 Os Computadores e a resolução de Problemas PROBLEMA Fase de Resolução do Problema Pág. 2 Passo difícil Solução como um PROGRAMA de Computador Solução em forma de Algoritmo Fase de Implementação

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

Introdução. A verificação de tipos pode ser estática e dinâmica

Introdução. A verificação de tipos pode ser estática e dinâmica Análise Semântica Introdução Verifica se as construções sintaticamente corretas possuem significado lógico dentro da linguagem Verifica a consistência da declaração e uso dos identificadores Além disso,

Leia mais

Python: Comandos Básicos. Claudio Esperança

Python: Comandos Básicos. Claudio Esperança Python: Comandos Básicos Claudio Esperança Primeiros passos em programação Até agora só vimos como computar algumas expressões simples Expressões são escritas e computadas imediatamente Variáveis podem

Leia mais

O comando if. O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condições para sua execução.

O comando if. O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condições para sua execução. O comando if if - else O comando condicional permite incluir no programa trechos de código que dependem de uma ou mais condições para sua execução. O comando condicional tem duas formas básicas: if(condição)

Leia mais

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Laboratório de Banco de Dados II Aula 1. Stored Procedures Laboratório de Banco de Dados II Aula 1 Stored Procedures Stored procedures Uma seqüência de comandos SQL pode ser agrupada, formando uma stored procedure A sua execução é comandada, invocando-se o nome

Leia mais

Curso de Iniciação ao Access Basic (I) CONTEÚDOS

Curso de Iniciação ao Access Basic (I) CONTEÚDOS Curso de Iniciação ao Access Basic (I) CONTEÚDOS 1. A Linguagem Access Basic. 2. Módulos e Procedimentos. 3. Usar o Access: 3.1. Criar uma Base de Dados: 3.1.1. Criar uma nova Base de Dados. 3.1.2. Criar

Leia mais

Programação Concorrente

Programação Concorrente Programação Concorrente Monitores e Troca de Mensagens Monitores Considere que, no projeto da solução do produtor-consumidor com semáforos, os 2 downs tenham sido trocados Se o buffer estiver cheio deadlock

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

O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros:

O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros: - Necessidade O dono de uma livraria cuja base de dados é administrada por si pediu-lhe para efectuar as seguintes alterações ao preço dos livros: Os livros que custarem mais de 10, devem ver o seu preço

Leia mais

Árvores e Árvores Binárias

Árvores e Árvores Binárias MAC 5710 - Estruturas de Dados - 2008 Referência bibliográfica Os slides sobre este assunto são parcialmente baseados nas seções sobre árvores do capítulo 4 do livro N. Wirth. Algorithms + Data Structures

Leia mais

Módulo III. Folhas de Cálculo

Módulo III. Folhas de Cálculo Módulo III Ferramentas do Office Folhas de Cálculo Ferramentas de produtividade 1 Folhas de Cálculo O que é: Uma Folha de Cálculo é, por tradição, um conjunto de células que formam uma grelha ou tabela

Leia mais

Expressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe

Expressões. Prof. Alberto Costa Neto alberto@ufs.br. Linguagens de Programação. Departamento de Computação Universidade Federal de Sergipe Linguagens de Programação Departamento de Computação Universidade Federal de Sergipe Expressão é uma frase de um programa que ao ser avaliada retorna um valor Tipos Literais Agregados Chamadas de Função

Leia mais

Algoritmos e Programação

Algoritmos e Programação Universidade Federal do Vale do São Francisco Curso de Engenharia da Produção / Elétrica Algoritmos e Programação Parte 05 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

1. O DHCP Dynamic Host Configuration Protocol

1. O DHCP Dynamic Host Configuration Protocol CURSO DE EDUCAÇÃO E FORMAÇÃO TIPO 5 2º ANO TÉCNICO DE INFORMÁTICA/INSTALAÇÃO E GESTÃO DE REDES 2008/2009 INSTALAÇÃO REDES CLIENTE SERVIDOR WINDOWS SERVER 2003 Após a instalação Instalação de serviços de

Leia mais

#define SIM 1 equivale a definição de constantes; a palavra SIM é substituída por 1 toda vez que é utilizada no programa.

#define SIM 1 equivale a definição de constantes; a palavra SIM é substituída por 1 toda vez que é utilizada no programa. 929292929292929292929292929292929292929292929292929292 15- O Pré-Processador C - O compilador C possui um programa chamado pré-processador: executa modificações no código baseado em instruções chamadas

Leia mais

Estruturas de Controle em PHP

Estruturas de Controle em PHP Linguagem de Programação III Estruturas de Controle em PHP Estruturas de Controle em PHP - Comandos condicionais - if - switch - Comandos de repetição - while - do...while - for - foreach Estruturas de

Leia mais

A4 Projeto Integrador e Lista de Jogos

A4 Projeto Integrador e Lista de Jogos A4 Projeto Integrador e Lista de Jogos 1ª ETAPA PROJETO INTEGRADOR (2 pontos na A4) Como discutido em sala de aula, a disciplina de algoritmos I também fará parte do projeto integrador, para cada grupo

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

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA

Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015. Visual Basic VBA Informática de Gestão 1º ano / 1º semestre Ano letivo: 2014/2015 Visual Basic VBA Macros Funções Conjunto de instruções que são executadas sempre que se desejar e pela ordem apresentada As funções são

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

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL

PL/SQL. Profa. Dra. Cristina Dutra de Aguiar Ciferri. Laboratório de Bases de Dados PL/SQL PL/SQL Laboratório de Bases de Dados PL/SQL Program Language SQL linguagem de programação da Oracle que permite processar dados armazenados no banco de dados Exemplos de operações permitidas alterar, remover,

Leia mais

OPERADORES E ESTRUTURAS DE CONTROLE

OPERADORES E ESTRUTURAS DE CONTROLE OPERADORES E ESTRUTURAS DE CONTROLE 3.1 Operadores Os operadores indicam o tipo de operação matemática que será executada gerando novos valores a partir de um ou mais operadores. São muito utilizados em

Leia mais

Manual Gespos SMS. (ultima revisão 20 Fev. 2003)

Manual Gespos SMS. (ultima revisão 20 Fev. 2003) Manual Gespos SMS (ultima revisão 20 Fev. 2003) Prezado Utilizador, É objectivo deste manual servir de ferramenta de formação para que o utilizador dos aplicativos Escripóvoa, possa de uma forma simples

Leia mais

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS João Gabriel Ganem Barbosa Sumário Motivação História Linha do Tempo Divisão Conceitos Paradigmas Geração Tipos de Dados Operadores Estruturada vs

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

Bases de Dados 2007/2008. Aula 9

Bases de Dados 2007/2008. Aula 9 Bases de Dados 2007/2008 Aula 9 1. T-SQL TRY CATCH 2. TRATAMENTO ERROS RAISERROR 3. TRIGGERS 4. EXERCÍCIOS Sumário Referências http://msdn2.microsoft.com/en-us/library/ms189826.aspx (linguagem t-sql) http://www.di.ubi.pt/~pprata/bd/bd0405-proc.sql

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

Busca. Pesquisa sequencial

Busca. Pesquisa sequencial Busca Banco de dados existem para que, de tempos em tempos, um usuário possa localizar o dado de um registro, simplesmente digitando sua chave. Uma tabela ou um arquivo é um grupo de elementos, cada um

Leia mais

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado

Leia mais

Introdução ao Modelos de Duas Camadas Cliente Servidor

Introdução ao Modelos de Duas Camadas Cliente Servidor Introdução ao Modelos de Duas Camadas Cliente Servidor Desenvolvimento de Sistemas Cliente Servidor Prof. Esp. MBA Heuber G. F. Lima Aula 1 Ciclo de Vida Clássico Aonde estamos? Page 2 Análise O que fizemos

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos.

Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3 COMANDOS CONDICIONAIS E DE LAÇO Nesta aula serão apresentados alguns comandos de condição, repetição e gráficos. 3.1 COMANDOS CONDICIONAIS 3.1.1 Comando IF Como o próprio nome já indica, estes comandos

Leia mais

3 Classes e instanciação de objectos (em Java)

3 Classes e instanciação de objectos (em Java) 3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem

Leia mais

Escola Secundária de Camarate

Escola Secundária de Camarate Escola Secundária de Camarate Ano Lectivo 2014/2015 Planificação da Disciplina de Tecnologias da Informação e Comunicação Curso Profissional de Técnico Auxiliar de Saúde e Técnico de Restauração e Bar

Leia mais

4 Criação de macros e introdução à linguagem VBA

4 Criação de macros e introdução à linguagem VBA 4 Criação de macros e introdução à linguagem VBA Vinicius A. de Souza va.vinicius@gmail.com São José dos Campos, 2011. 1 Sumário Tópicos em Microsoft Excel 2007 Introdução à criação de macros...3 Gravação

Leia mais

Javascript 101. Parte 2

Javascript 101. Parte 2 Javascript 101 Parte 2 Recapitulando O Javascript é uma linguagem de programação funcional Os nossos scripts são executados linha a linha à medida que são carregados. O código que está dentro de uma função

Leia mais

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO

A VISTA BACKSTAGE PRINCIPAIS OPÇÕES NO ECRÃ DE ACESSO DOMINE A 110% ACCESS 2010 A VISTA BACKSTAGE Assim que é activado o Access, é visualizado o ecrã principal de acesso na nova vista Backstage. Após aceder ao Access 2010, no canto superior esquerdo do Friso,

Leia mais

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery Linguagem de Programação JAVA Técnico em Informática Professora Michelle Nery Agenda Regras paravariáveis Identificadores Válidos Convenção de Nomenclatura Palavras-chaves em Java Tipos de Variáveis em

Leia mais

Análise Semântica e Tratamento de Erros Dependentes de Contexto

Análise Semântica e Tratamento de Erros Dependentes de Contexto Análise Semântica e Tratamento de Erros Dependentes de Contexto O componente Semântico de uma LP Tarefas da Análise Semântica Implementação da Tabelas de Símbolos Ações Semânticas em Compiladores Dirigidos

Leia mais

3.º e 4.º Anos de Escolaridade Competências Conteúdos Sugestões metodológicas Articulações

3.º e 4.º Anos de Escolaridade Competências Conteúdos Sugestões metodológicas Articulações Introdução ao Ambiente de Trabalho 3.º e 4.º Anos de Escolaridade Distinguir hardware de software; Identificar os principais componentes físicos de um computador e as suas funções; Reconhecer os principais

Leia mais

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação? Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A

Leia mais

Sistemas de Informação

Sistemas de Informação Sistemas de Informação Rules and Triggers André Restivo Sistemas de Informação 2006/07 Rules e Triggers Nem todas as restrições podem ser definidas usando os mecanismos que estudamos anteriormente: - CHECK

Leia mais

Estrutura de Dados Pilha (Stack)

Estrutura de Dados Pilha (Stack) Estrutura de Dados Pilha (Stack) Estrutura de Dados que corresponde a uma lista sequencial com a propriedade seguinte: LIFO O primeiro elemento a entrar é o último a sair ( Last in First Out ) Operações

Leia mais

PROGRAMAÇÃO II 3. PILHA DINÂMICA

PROGRAMAÇÃO II 3. PILHA DINÂMICA 3. PILHA DINÂMICA PROGRAMAÇÃO II Prof. Jean Eduardo Glazar Uma pilha é um tipo especial de Pilha na quais todas as inserções e remoções são feitas na primeira posição, que é chamada de topo. Outro nome

Leia mais

LaSiD/UFBA. Raimundo J. de A. Macêdo

LaSiD/UFBA. Raimundo J. de A. Macêdo Fundamentos de Sistemas Distribuídos Terminação Distribuída LaSiD/UFBA Raimundo J. de A. Macêdo 1 Todos os processos envolvidos numa computação distribuída encerraram suas atividades. Ou seja, estão num

Leia mais

FUNCTION ) RETURNS INTEGER AS $$ DECLARE

FUNCTION ) RETURNS INTEGER AS $$ DECLARE PERFORM O comando PERFORM permite a execução de um comando SELECT desprezando o resultado do comando. PERFORM query; A variável especial FOUND é definida como verdadeiro se a instrução produzir pelo menos

Leia mais

Direcção Regional de Educação do Algarve

Direcção Regional de Educação do Algarve MÓDULO 1 Folha de Cálculo 1. Introdução à folha de cálculo 1.1. Personalização da folha de cálculo 1.2. Estrutura geral de uma folha de cálculo 1.3. O ambiente de da folha de cálculo 2. Criação de uma

Leia mais

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor()

DICIONÁRIOS. template<class K,class T> class Par { public: K chave; T valor; Par():chave(),valor() DICIONÁRIOS Esta estrutura inclui-se nos chamados contentores associativos, que não são mais do que uma colecção de estruturas de tipo Par, com dois membros de dados (chave de pesquisa e valor associado),

Leia mais

1 Lógica de Programação

1 Lógica de Programação 1 Lógica de Programação Técnicas de programação Programação Sequencial Programação Estruturada Programação Orientada a Eventos e Objectos 1.1 Lógica A lógica de programação é necessária para pessoas que

Leia mais

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

Leia mais

ENSINO BÁSICO CURSO DE EDUCAÇÃO E FORMAÇÃO Praticas Administrativas

ENSINO BÁSICO CURSO DE EDUCAÇÃO E FORMAÇÃO Praticas Administrativas Agrupamento de Escolas Nº 1 de Abrantes ENSINO BÁSICO CURSO DE EDUCAÇÃO E FORMAÇÃO Praticas Administrativas ESCOLA: Dr. Solano de Abreu DISCIPLINA:TIC ANO: 1 ANO 2013/2014 CONTEÚDOS Conceitos básicos Informática

Leia mais

Questões de Concursos Públicos sobre Orientação a Objetos e UML

Questões de Concursos Públicos sobre Orientação a Objetos e UML Análise Orientada a Objetos Professora Lucélia Oliveira Questões de Concursos Públicos sobre Orientação a Objetos e UML 1. (BNDES) Analise as seguintes afirmações relativas à Programação Orientada a Objetos:

Leia mais

Grupo I [4v] executaprograma();

Grupo I [4v] executaprograma(); Número: Nome: LEIC/LERC 2012/13-1º Exame de Sistemas Operativos 15/Janeiro/2013 Identifique todas as folhas. Responda no enunciado, apenas no espaço fornecido. Justifique todas as respostas. Duração: 2h30m

Leia mais