Simulação estocástica discreta

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

Download "Simulação estocástica discreta"

Transcrição

1 Simulação estocástica discreta Apoio ao projecto Simulação estocástica discreta : 1/31

2 Introdução (1) Existem diversos tipos de simulação de sistemas: Simulação analógica: com modelos físicos, por exemplo, o modelo reduzido de uma ponte. Simulação digital: realizada em computador. Modelos possíveis: Modelos contínuos: equações diferenciais que descrevem a evolução de grandezas contínuas. Modelos discretos: fenómenos que podem ser descritos por eventos e suas sequências. Classificação: Estocástica: as grandezas em causa seguem leis aleatórias, por exemplo, o tempo que decorre entre eventos. Determinista: as grandezas em causa seguem leis deterministas. LEEC@IST Simulação estocástica discreta : 2/31

3 Introdução (2) No seguimento, vamos ilustrar uma técnica de simulação digital, discreta e estocástica. Problema: Simulação de um troço de auto-estrada. Simular o tráfego num troço de estrada com portagem, só num dos sentidos. Os veículos entram no troço em causa com uma cadência aleatória no final do qual chegam a uma portagem (apenas com um portageiro), ficam em fila até ao pagamento e, concluído este, saem do troço. Pretende-se estudar a evolução do número de veículos na fila, em função de leis aleatórias: tempo entre chegadas; tempo de travessia; tempo de pagamento. LEEC@IST Simulação estocástica discreta : 3/31

4 Introdução (3) A técnica adoptada é a de sequenciamento de eventos pendentes (SEP): 1. Identificar os eventos que afectam o sistema a modelar. É necessário caracterizar os eventos, entre outros: É essencial categorizar os eventos, por forma a distingui-los. É essencial um atributo de tempo, que marca o instante em que se dá o evento. 2. Definir as leis aleatórias que regem o acontecimento dos eventos. LEEC@IST Simulação estocástica discreta : 4/31

5 Introdução (4) 3. Definir procedimentos para simular a observação das variáveis aleatórias em causa. 4. Simular os eventos. O núcleo do simulador é a cadeia de acontecimentos pendentes (CAP), na qual se encontram todos os eventos (futuros). Durante a simulação podem: Retirar-se eventos da CAP. Colocar-se novos eventos na CAP. LEEC@IST Simulação estocástica discreta : 5/31

6 Identificação de eventos (1) Na simulação de um troço de auto-estrada existem os seguintes eventos: Chegada: chegada de um veículo ao troço em estudo (entrada na auto-estrada). Portagem: chegada de um veículo à portagem no final do troço (ou fica na fila da portagem ou entra em pagamento). Partida: saída do veículo da portagem após pagamento. Simulação estocástica discreta : 6/31

7 Identificação de eventos (2) Na simulação de um troço de auto-estrada não há outros atributos para além do atributo de tempo. Em simulações mais complicadas pode ser necessário considerar outros atributos. Poderia ser necessário associar cada evento ao veículo em causa se se pretendesse estudar o tempo total de permanência dos carros no troço incluindo a portagem. LEEC@IST Simulação estocástica discreta : 7/31

8 Identificação de eventos (3) Diagrama de classes dos eventos do sistema (sem representação de atributos e métodos): <<abstract> Evento EvChegada EvPortagem EvPartida LEEC@IST Simulação estocástica discreta : 8/31

9 Leis aleatórias (1) Na simulação de um troço de auto-estrada há que considerar as seguintes leis aleatórias: Chegadas: admite-se que o tempo entre chegadas consecutivas é uma variável aleatória com distribuição exponencial de valor médio chegada. Travessias: admite-se que o tempo que um veículo leva a atravessar o troço é uma variável aleatória com distribuição exponencial de valor médio travessia. Pagamentos: admite-se que o tempo que cada veículo leva a pagar (tempo entre o início do pagamento, depois de ficar em primeiro lugar na fila, e a saída) é uma variável aleatória com distribuição exponencial de valor médio pagamento. LEEC@IST Simulação estocástica discreta : 9/31

10 Leis aleatórias (2) Uma variável aleatória com distribuição exponencial de valor médio m tem a seguinte distribuição: 1-exp{-t/m} Por exemplo, para m=2: LEEC@IST Simulação estocástica discreta : 10/31

11 Observação de variáveis aleatórias (1) A geração de uma observação de uma variável aleatória exponencial é feita por intermédio da inversa da função de distribuição: -m log(1-y) Por exemplo, para m=2: LEEC@IST Simulação estocástica discreta : 11/31

12 Observação de variáveis aleatórias (2) Se Y~U(0,1) então -m log(1-y)~exp(m) public static double exprandom(double m) { Random random = new Random(); double next = random.nextdouble(); return -m*math.log(1.0-next); } LEEC@IST Simulação estocástica discreta : 12/31

13 Observação de variáveis aleatórias (3) Para uma variável aleatória com distribuição exponencial de valor médio 2: for (int i=0; i<5; i++) { System.out.println(expRandom(2)); } No terminal é impresso: LEEC@IST Simulação estocástica discreta : 13/31

14 Simulação dos eventos CAP (1) Para se entender a utilidade da CAP, considere-se o problema da simulação de tráfego em estudo na situação em que: há veículos já no troço, há veículos na fila, e está um veículo a pagar a portagem. Como deverá continuar a simulação a partir desta situação? LEEC@IST Simulação estocástica discreta : 14/31

15 Simulação dos eventos CAP (2) A simulação é apenas um ciclo em que em cada passo se simula o acontecimento de um evento. Põe-se então a questão: qual será o próximo evento a simular? A resposta é simples: vai-se buscar à CAP o próximo evento, onde por próximo se entende o evento com o atributo tempo de menor valor. Põe-se então outra questão: como alimentar a CAP de novos eventos? A resposta a esta questão já é mais complicada LEEC@IST Simulação estocástica discreta : 15/31

16 Simulação dos eventos CAP (3) Na CAP devem estar os eventos que já sabemos que terão de ser simulados no futuro (e que ainda não foram simulados por ainda não ter chegado a vez deles). De cada vez que se simula uma chegada ao troço devese colocar na CAP: 1. A próxima chegada: basta guardar na CAP o evento new EvChegada(tempo+expRandom(chegada)) 2. O fim da travessia do veículo cuja travessia se está a simular: basta guardar na CAP o evento new EvPortagem(tempo+expRandom(travessia)) em que tempo é um atributo que contém o tempo de simulação do evento corrente (o tempo corrente), neste caso um evento de chegada. LEEC@IST Simulação estocástica discreta : 16/31

17 Simulação dos eventos CAP (4) De cada vez que se simula um fim de travessia do troço há que examinar se o portageiro está ocupado. 1. Se estiver ocupado há que colocar mais um veículo na fila de espera. 2. Caso contrário começa a fase de pagamento. Pode-se então calcular o evento de fim de pagamento e, portanto, deve-se colocar na CAP o evento new EvPartida(tempo+expRandom(pagamento)) Finalmente, de cada vez que se simula uma saída, ou seja, fim de pagamento, há que examinar a fila de espera. Se esta não estiver vazia há que retirar um elemento da fila (o primeiro) e planificar o fim de pagamento desse veículo guardando na CAP o evento new EvPartida(tempo+expRandom(pagamento)) LEEC@IST Simulação estocástica discreta : 17/31

18 Simulação dos eventos CAP (5) Na realidade, não é necessária a fila de portagem, sendo apenas necessário guardar o número de carros na fila LEEC@IST Simulação estocástica discreta : 18/31

19 Simulação (1) A classe SimuladorTrafego pode então ser definida como se segue (definição parcial): public class SimuladorTrafego { private static double temposimulacao, tempocorrente; private static Evento eventocorrente; static CAP static int cap; numcarrosfilaportagem; } //... LEEC@IST Simulação estocástica discreta : 19/31

20 Simulação (2) A classe Evento pode então ser definida como se segue (definição parcial): public abstract class Evento { protected static double protected double chegada, travessia, pagamento; tempo; public abstract void simulaevento(); } //... LEEC@IST Simulação estocástica discreta : 20/31

21 Simulação (3) Supondo existe acesso à cap e ao método exprandom, o método simulaevento relativo à chegada ao troço de auto-estrada é definido como se segue: cap.adicionarevcap( new EvChegada(tempo+expRandom(chegada))); cap.adicionarevcap( new EvPortagem(tempo+expRandom(travessia))); Nota: estudar com cuidado de que forma deve ser dado o acesso à cap e ao método exprandom! LEEC@IST Simulação estocástica discreta : 21/31

22 Simulação (4) Supondo que existe acesso à cap, ao numcarrosfilaportagem e ao método exprandom, o método simulaevento relativo à chegada à portagem é definido como se segue: if (numcarrosfilaportagem==0) cap.adicionarevcap( new EvPartida(tempo+expRandom(pagamento))); numcarrosfilaportagem++; Nota: estudar com cuidado de que forma deve ser dado o acesso à cap, numcarrosfilaportagem, e ao método exprandom! LEEC@IST Simulação estocástica discreta : 22/31

23 Simulação (5) Supondo que existe acesso à cap, ao numcarrosfilaportagem e ao método exprandom, o método simulaevento relativo à saída da portagem é definido como se segue: numcarrosfilaportagem--; if (numcarrosfilaportagem>0) cap.adicionarevcap( new EvPartida(tempo+expRandom(pagamento))); Nota: estudar com cuidado de que forma deve ser dado o acesso à cap, numcarrosfilaportagem, e ao método exprandom! LEEC@IST Simulação estocástica discreta : 23/31

24 Simulação (6) A CAP é uma classe com dois métodos: public void adicionarevcap(evento ev) adiciona o evento recebido como parâmetro à CAP. public Evento proximoevcap(evento ev) remove o primeiro evento da CAP e devolve-o. LEEC@IST Simulação estocástica discreta : 24/31

25 Simulação (7) O simulador é o método main da classe SimuladorTrafego e consiste basicamente num ciclo, onde em cada passo se simula o próximo evento na CAP. O simulador tem como input: chegada travessia pagamento temposimulacao LEEC@IST Simulação estocástica discreta : 25/31

26 Simulação (8) public static void main(string[] args) { // TODO: ler input e actualizar atributos de: // chegada, travessia, pagamento e temposimulacao //inicialização numcarrosfilaportagem = 0; cap = new CAP(); eventocorrente = new EvChegada(expRandom(chegada)); tempocorrente = eventocorrente.tempo; //ciclo de simulação while (tempocorrente<temposimulacao) { //TODO: simular eventocorrente eventocorrente = cap.proximoevcap(); tempocorrente = eventocorrente.tempo; } } LEEC@IST Simulação estocástica discreta : 26/31

27 Exemplos (1) É obtido o seguinte gráfico para o comprimento da fila de espera da portagem executando o SimuladorTrafego com: chegada=1 travessia=50 pagamento=0.9 temposimulacao= LEEC@IST Simulação estocástica discreta : 27/31

28 Exemplos (2) Outra simulação para o mesmo input: LEEC@IST Simulação estocástica discreta : 28/31

29 Exemplos (3) Mais outra simulação para o mesmo input: LEEC@IST Simulação estocástica discreta : 29/31

30 Exemplos (4) Aumentado apenas pagamento para 2: Simulação estocástica discreta : 30/31

31 Exemplos (5) Diminuindo apenas pagamento para 0.7: LEEC@IST Simulação estocástica discreta : 31/31

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1

Leia mais

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes. JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta

Leia mais

Modelação e Simulação de Sistemas - Tópicos Modelação e Simulação de Sistemas - Tópicos - A simulação de sistemas - Modelos de simulação - Propriedade

Modelação e Simulação de Sistemas - Tópicos Modelação e Simulação de Sistemas - Tópicos - A simulação de sistemas - Modelos de simulação - Propriedade Modelação e Simulação de Sistemas - Tópicos Modelação e Simulação de Sistemas - Tópicos - A simulação de sistemas - Modelos de simulação - Propriedades dos modelos de simulação - Classificação dos modelos

Leia mais

Exercício de Estrutura de dados. Java Fila

Exercício de Estrutura de dados. Java Fila Exercício de Estrutura de dados Java Fila Obs.: Esse projeto foi um exercício realizado em sala de aula da matéria de Estrutura de dados com o Profº Frederico Augusto Siqueira Gentil Aqui está sendo relatado

Leia mais

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos. 2. Classes e Objetos Uma classe é um modelo que define os atributos e métodos comuns a um conjunto de objetos de forma encapsulada. Atributos são informações ou dados que descrevem, categorizam ou quantificam

Leia mais

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia.

A programação orientada a objetos tenta simular estes aspectos, trazendo para o computador a realidade do dia-a-dia. Introdução A orientação a objetos é uma maneira de programar que trata de modelar os processos de programação de uma maneira próxima à linguagem humana: tratando componentes de um programa como um objeto

Leia mais

2 Vectores de objectos

2 Vectores de objectos 2 Vectores de objectos Agenda de contactos 3 Objectivo Manipular uma agenda de contactos. Descrição e Funcionalides Cada contacto na agenda caracteriza-se por um nome, um telefone e um e-mail. Na agenda,

Leia mais

Classes e Objetos POO

Classes e Objetos POO Classes e Objetos POO Prof. Marcio Delamaro 1/40 POO (wikipedia) Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data,

Leia mais

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. P. Fazendeiro & P. Prata POO FP0/1 ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java. 0 Iniciar o ambiente de desenvolvimento integrado

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 6 Filas Estrutura de Dados A Estrutura de Dados Fila Fila é uma estrutura de dados usada em programação, que tem regras para

Leia mais

Simulação a Eventos Discretos. Fernando Nogueira Simulação 1

Simulação a Eventos Discretos. Fernando Nogueira Simulação 1 Simulação a s Discretos Fernando Nogueira Simulação Introdução Simulação não é uma técnica de otimização: estima-se medidas de performance de um sistema modelado. Modelos Contínuos X Modelos Discretos

Leia mais

Modelização do Sistema Produtivo Simulação

Modelização do Sistema Produtivo Simulação Modelização do Sistema Produtivo Simulação http://www.fe.up.pt/maspwww Licenciatura em Engenharia Electrotécnica e de Computadores Gil M. Gonçalves gil@fe.up.pt 2004/2005 Génese Estatística, teoria da

Leia mais

Modelagem e Análise de Sistemas - COS767

Modelagem e Análise de Sistemas - COS767 Modelagem e Análise de Sistemas - COS767 Aula de hoje Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Geração de variáveis aleatórias: método da transformada inversa Simulação

Leia mais

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO Estruturas de repetição Estrutura de repetição nada mais é que laços de repetições. Laços de repetições permitem que um conjunto de instruções seja repetido

Leia mais

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são: Apêndice A Classe Vector A classe Vector permite a representação de um vetor de dados de maneira similar à de um array, visto na disciplina Programação Orientada a Objetos I, mas com maior flexibilidade.

Leia mais

Tempo de atendimento (minutos)

Tempo de atendimento (minutos) 1. Simule manualmente o problema que a seguir se descreve. Enunciado do problema (barbearia): Uma determinada Barbearia funciona da seguinte forma: os clientes chegam à barbearia e esperam numa cadeira

Leia mais

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica. Computação L2 Linguagem C++ ovsj@cin.ufpe.br Observação: Material Baseado na Disciplina Computação Eletrônica. Alfabeto São os símbolos ( caracteres ) permitidos na linguagem: Letras (maiúsculas e minúsculas);

Leia mais

PROGRAMAÇÃO JAVA. Parte 3

PROGRAMAÇÃO JAVA. Parte 3 PROGRAMAÇÃO JAVA Parte 3 O PRIMEIRO PROGRAMA O Java executa uma instrução a seguir a outra, pela ordem em que estão escritas. Essa sequência poderá ser contrariada de forma especial: Alternativas: Ciclos

Leia mais

Idiomas de Programação

Idiomas de Programação DCC / ICEx / UFMG Idiomas de Programação Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Definição de Idiomas Idiomas são padrões de baixo nível específicos de uma linguagem de programação Cada idioma

Leia mais

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos

Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Tratamento de Exceções, Multithreads e arquivos (em Java) Programação Orientada a Objetos Nesta unidade vamos ver os últimos assuntos de interesse em java. O primeiro deles, bem simples, é o tratamento

Leia mais

1. Estude e implemente a classe Exemplo1 apresentada abaixo:

1. Estude e implemente a classe Exemplo1 apresentada abaixo: P. Fazendeiro & P. Prata POO FP09/1 Exceções Uma exceção (Exception) é um sinal gerado pela máquina virtual de Java em tempo de execução indicando uma situação de erro da qual é possível recuperar. O objectivo

Leia mais

Professora Jeane Melo

Professora Jeane Melo Professora Jeane Melo Roteiro Lista Encadeada Alocação: Estática x Dinâmica O que são Ponteiros? Ponteiros Variáveis que Armazenam Endereços de Memória Mas, toda variável não é armazenada na memória? Ponteiros

Leia mais

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Linguagem de Programação 1 Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano Objetivo: Desenvolver a habilidade de comentar código adequadamente INTRODUÇÃO Até o momento

Leia mais

S I M U L A Ç Ã O 84

S I M U L A Ç Ã O 84 S I M U L A Ç Ã O 84 - 1 - Elabore uma rotina que lhe permita gerar números pseudo-aleatórios (NPA) com distribuição X ( f X ( x ) representa a função de densidade de probabilidade de X e F X ( x ) representa

Leia mais

Tabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1

Tabelas de Dispersão. Algoritmos e Estruturas de Dados Verão Cátia Vaz 1 Tabelas de Dispersão Algoritmos e Estruturas de Dados Verão 2012 1 Tabelas de endereçamento directo Endereçamento directo é usado quando o universo de chaves é pequeno e todas as chaves são distintas:

Leia mais

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha.

Pilha e Fila. Pilha em C. Definir o registro que representará cada elemento da pilha. 1 Estrutura de Dados II Pilha e Fila Pilha em C Definir o registro que representará cada elemento da pilha. No início a pilha estará vazia, logo o ponteiro topo tem o valor NULL. As operações de inserção

Leia mais

ProgamaçãoOrientada pelos Objetos B. Vectores

ProgamaçãoOrientada pelos Objetos B. Vectores ProgamaçãoOrientada pelos Objetos B Vectores 2 Introdução aos vectoresem Java Os slidesseguintes são utilizados na disciplina de Introdução à Programação da LEI 3 Estação Meteorológica Vectores 4 Neste

Leia mais

Dada a linguagem, números romanos, construir uma representação para a gramática dela junto com um interpretador para essa gramática.

Dada a linguagem, números romanos, construir uma representação para a gramática dela junto com um interpretador para essa gramática. Resumo Interpreter Amanda e Nikson Problema Dada uma linguagem, definir uma representação para a sua gramática e um interpretador que usa esta representação para interpretar sentenças da linguagem. Exemplo

Leia mais

Filas. Prof. Jesus José de Oliveira Neto

Filas. Prof. Jesus José de Oliveira Neto Filas Prof. Jesus José de Oliveira Neto São estruturas que adotam a política FIFO (First In First Out o primeiro que entra é o primeiro que sai) para a manipulação de elementos. As inserções são feitas

Leia mais

Recursividade. Prof. Jesus José de Oliveira Neto

Recursividade. Prof. Jesus José de Oliveira Neto Recursividade Prof. Jesus José de Oliveira Neto Algoritmos podem ser definidos de duas formas: Forma iterativa ou não recursiva: utiliza laços de repetição (while, for, do/while) Forma recursiva: métodos

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Introdução à simulação Geração de números aleatórios Lei dos Grandes Números Aula de hoje Geração de variáveis aleatórias: Transformada Inversa

Leia mais

Ambiente Arena Tutorial. Paulo Cesar F. de Oliveira, BSc, PhD

Ambiente Arena Tutorial. Paulo Cesar F. de Oliveira, BSc, PhD Ambiente Arena Tutorial Paulo Cesar F. de Oliveira, BSc, PhD Terminologia Variável de Estado Evento Recurso e Fila de Recurso Entidade Atributo Atividade e Período de Espera Tempo (Real) Simulado e Tempo

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos

Leia mais

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição Recursividade Prof. Cesar Augusto Tacla Métodos iterativos Métodos iterativos utilizam estruturas de repetição For While Do while Normalmente, um método invoca outros métodos, não a si mesmo. 2 1 Recursividade

Leia mais

Exame de Estruturas de Dados 2010.Junho.26

Exame de Estruturas de Dados 2010.Junho.26 Exame de Estruturas de Dados 2010.Junho.26 Duração: 2:30 horas Valorização: 12 valores. 1. Responda às seguintes questões: a) Faça o estudo da complexidade do seguinte método: 1. void fun2(int n, int v[])

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

Leia mais

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo.

Engenharia de Software Aula 21. Revisão da Prova 2. Eduardo Figueiredo. Engenharia de Software Aula 21 Revisão da Prova 2 Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@dcc.ufmg.br 16 Maio 2018 Aula 16: POO Um programa OO é geralmente constituído de várias classes

Leia mais

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java.

p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos fonte de Java. Pacotes e Jar 1 Pacotes p Usamos pacotes em java para organizar as classes semelhantes. p Pacotes, a grosso modo, são apenas pastas ou diretórios do sistema operacional onde ficam armazenados os arquivos

Leia mais

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 03 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 03 Introdução à Java 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: Tipos de Dados;

Leia mais

Padrões para atribuir responsabilidades: Expert

Padrões para atribuir responsabilidades: Expert Padrão para atribuir responsabilidades: Expert Introdução Um sistema OO é composto de objetos que enviam mensagens uns para os outros Uma mensagem é um método executado no contexto de um objeto Escolher

Leia mais

Aplicação. Controlo Óptimas. 23º Seminário de Engenharia Mecânica - 4 Junho de Nuno Manuel R. S. Órfão

Aplicação. Controlo Óptimas. 23º Seminário de Engenharia Mecânica - 4 Junho de Nuno Manuel R. S. Órfão Aplicação de Cadeias de Markov em Redes de Filas de Espera Políticas de Controlo Óptimas 23º Seminário de Engenharia Mecânica - 4 Junho de 2003 - Nuno Manuel R. S. Órfão nmorfao@estg.ipleiria.pt 1 Sumário

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Herança e Propriedades

Herança e Propriedades Herança e Propriedades 2013 O que veremos hoje? Herança e Propriedades Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Herança em POO Herança Herança

Leia mais

1. Cotação de cada pergunta: / / (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame.

1. Cotação de cada pergunta: / / (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame. Departamento de Ciência de Computadores Estruturas de Dados (CC114) 2 o Teste: 25/Junho/2012 FCUP 2011/12 duração: 2.5 horas 1. Cotação de cada pergunta: 1. 30 / 2. 35 / 3. 35 (Total: 100 pontos) 2. Responda

Leia mais

Prof. Jesus José de Oliveira Neto

Prof. Jesus José de Oliveira Neto Prof. Jesus José de Oliveira Neto Encapsulam a representação dos dados e as operações que podem ser realizadas sobre eles Usuário do TAD vs. programador do TAD Usuário só enxerga a interface, não a implementação

Leia mais

Departamento de Ciência de Computadores Estruturas de Dados (CC114)

Departamento de Ciência de Computadores Estruturas de Dados (CC114) 1. Cotação de cada pergunta: 1. 30 / 2. 40 / 3. 30 (Total: 100 pontos) 2. Responda às questões de forma clara e concisa nas folhas de exame distribuídas. 1. (Valorização: 30%) Responda às seguintes questões:

Leia mais

Tipos abstratos de dados; pilhas e filas

Tipos abstratos de dados; pilhas e filas 1 Tipos abstratos de dados; pilhas e filas Além do Sedgewick (sempre leiam o Sedgewick), veja http://www.ime.usp.br/~pf/algoritmos/aulas/pilha.html http://www.ime.usp.br/~pf/algoritmos/aulas/fila.html

Leia mais

package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); }

package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println(Alpha public!); } package especificadores1; public class Alpha { public static void alphapublic(){ System.out.println("Alpha public!"); protected static void alphaprotected(){ System.out.println("Alpha protected!"); static

Leia mais

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real: Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos

Leia mais

MULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci

MULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci MULTITHREADING Prof.: Michele Nasu Tomiyama Bucci Introdução O corpo humano realiza uma grande variedade de operações paralelamente, ou concorrentemente. Os computadores também realiza operações concorrentemente.

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Vetores Unimensionais

Vetores Unimensionais Vetores Unimensionais Objetivos Entender a importância e a necessidade do uso de Vetores Definição de Manipulação de Vetores Inserir elementos em um vetor (usando laços ou não) Imprimir elementos de um

Leia mais

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 6 Exercícios sobre repetição 1. Escreva um método que lê via teclado 8 números e retorna

Leia mais

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: Métodos em Java Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: http://www.oxnar.com.br/aulas/java/ Os métodos são conhecidos como funções, ações de execuções ou procedimentos, sendo

Leia mais

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

Leia mais

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação

AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação AULA TEÓRICA 7 Tema 7. Colecções (cont.) Vector Ø Criação Ø Manipulação 1 Vector Os vectores são semelhantes aos arrays, pois também podem conter um conjunto de objectos aos quais é atribuído um índice.

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Aula de Hoje Abstração de Dados Classes e Objetos Definição de Métodos Métodos com parâmetro Abstração de Dados Processo mental através do qual

Leia mais

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins

Prova 2 PMR3201 1o. semestre 2015 Prof. Thiago Martins Prova PMR0 o semestre 0 Prof Thiago Martins Instruções: Escreva o nome e o número USP na folha de papel almaço ( pontos) Uma árvore binária de busca é uma árvore binária na qual para qualquer sub-árvore

Leia mais

Processamento da Informação

Processamento da Informação Processamento da Informação Introdução ao curso Professora Carla Negri Lintzmayer 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Introdução Carla Negri Lintzmayer carla.negri@ufabc.edu.br

Leia mais

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Sumário de Aula } Conceito de Memória } Variáveis e Tipos de Dados } Constantes 2 Conceito de Memória } A memória de um computador é

Leia mais

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo

Usando o Eclipse - Fundamentos. Professor Vicente Paulo de Camargo Usando o Eclipse - Fundamentos Professor Vicente Paulo de Camargo O Eclipse é um ambiente de desenvolvimento integrado (IDE) É a ferramenta mais utilizada pelas empresas, visto que pode ser configurada

Leia mais

POO Programação Orientada a Objetos

POO Programação Orientada a Objetos POO Programação Orientada a Objetos Prof. Vicente Paulo de Camargo PUCGO O CONTEÚDO DOS SLIDES FAZ REFERÊNCIA AO MATERIAL DA APOSTILA K19-K11 E DO LIVRO JAVA USE A CABEÇA E DO LIVRO JAVA COMO PROGRAMAR

Leia mais

Atributos e Métodos Estáticos

Atributos e Métodos Estáticos Atributos e Métodos Estáticos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Atributos Estáticos Atributos

Leia mais

IO.println(a+" * "+b+" = "+produto); } }

IO.println(a+ * +b+ = +produto); } } Departamento de Ciência da Computação Universidade de Brasília Computação Básica. Professor Jorge H. C. Fernandes Lista de Exercícios Programação Básica em Java Resolva os exercícios abaixo usando a Linguagem

Leia mais

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação

Ederson Luiz da Silva Ciência da Computação. Algoritmos e Programação Ederson Luiz da Silva Ciência da Computação Algoritmos e Programação Programação em C Características Criado na década de 70; Possui muitas regras em sintaxe e semântica; Utilizado para programação de

Leia mais

Processamento da Informação

Processamento da Informação Processamento da Informação Introdução ao curso Professora Carla Negri Lintzmayer 2019.Q1 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Introdução Carla Negri Lintzmayer carla.negri@ufabc.edu.br

Leia mais

Estatística e Modelos Probabilísticos - COE241

Estatística e Modelos Probabilísticos - COE241 Estatística e Modelos Probabilísticos - COE241 Aula passada Função Distribuição Condicional Calculando Probabilidades condicionando Esperança Condicional Aula de hoje Análise de Comandos de Programação

Leia mais

Orientação a Objetos - Herança

Orientação a Objetos - Herança Orientação a Objetos - Herança 1 Repetindo Código p Todo banco tem funcionário. A classe funcionario ficaria da seguinte forma; class Funcionario { String nome; String cpf; double salario; // métodos devem

Leia mais

private static Ascii ascii = new Ascii(); static List<Character> asciinumber = ascii.getasciitable(); Scanner input = new Scanner(System.

private static Ascii ascii = new Ascii(); static List<Character> asciinumber = ascii.getasciitable(); Scanner input = new Scanner(System. import java.util.arraylist; import java.util.list; import java.util.scanner; import cifravalida.ascii; public class Main { private static Ascii ascii = new Ascii(); static List asciinumber =

Leia mais

Linguagem de Programação II Importando Classes/Pacotes

Linguagem de Programação II Importando Classes/Pacotes Linguagem de Programação II Importando Classes/Pacotes Prof. Alessandro Borges 2 Tópicos Pacotes Usando classes do mesmo pacote Importando classes de pacotes diferentes 3 Pacotes 4 Pacotes Como visto em

Leia mais

// quando o estado do Sujeito muda

// quando o estado do Sujeito muda Padrão Observer No padrão Observer temos dois objectos: um, designado Sujeito (Subject) que possui uma dada informação que pode variar ao longo da execução do programa, e outro, designado Observador (Observer)

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,

Leia mais

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Processos Semáforos Semáforos Mecanismo de sincronização que não requer espera ocupada Dijkstra propôs usar uma variável inteira para contar o n o de WAKEUPs para uso futuro Menos

Leia mais

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias

Leia mais

// quando o estado do Sujeito muda

// quando o estado do Sujeito muda Padrão Observer No padrão Observer temos dois objectos: um, designado Sujeito (Subject) que possui uma dada informação que pode variar ao longo da execução do programa, e outro, designado Observador (Observer)

Leia mais

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos;

RESPOSTA: import java.util.arraylist; import java.util.list; class CarrinhoDeCompras2 { List<Produto> produtos; Fundação CECIERJ - Vice Presidência de Educação Superior a Distância Curso de Tecnologia em Sistemas de Computação Disciplina: Programação Orientada a Objetos AP2 2 semestre de 2016. Nome Assinatura Observações:

Leia mais

Arrays em Java. Introdução à Programação. Bruno Cartaxo

Arrays em Java. Introdução à Programação. Bruno Cartaxo Arrays em Java Introdução à Programação Bruno Cartaxo http://sites.google.com/site/brunocartaxo bruno.cartaxo@olinda.ifpe.edu.br Tópicos a serem discutidos na disciplina Introdução a computadores e algoritmos

Leia mais

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Fundamentos da Linguagem de Programação Java Prof. Gilberto B. Oliveira Variáveis Atributos: Variáveis Declaradas fora de um método, sem o modificador static Variáveis membro ou

Leia mais

Arrays. int idade1; int idade2; int idade3; int idade4; int[] idades;

Arrays. int idade1; int idade2; int idade3; int idade4; int[] idades; Vetores 1 Arrays p O problema: Dentro de um bloco, podemos declarar diversas variáveis e usa -las: int idade1; int idade2; int idade3; int idade4; p Isso pode se tornar um problema quando precisamos mudar

Leia mais

Escola Náutica Infante Dom Henrique. Grupo I (7.5 valores)

Escola Náutica Infante Dom Henrique. Grupo I (7.5 valores) Grupo I (7.5 valores) Este grupo é formado por questões de resposta múltipla. Para cada uma delas, existe uma resposta correcta. Assinale com uma cruz no enunciado do exame a opção que considere correcta.

Leia mais

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes Aula 08 Estruturas de Condição Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes http://www.profbrunogomes.com.br/ Agenda da Aula Entrada de Dados; Estruturas de Controle: Estrutura de Sequência;

Leia mais

Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores)

Nome: Número: Primeira Parte (7 valores) Segunda Parte (3 valores) Nome: Número: Programação com Objectos 10 de Novembro de 2015, 08:00 (90 minutos) Primeira Parte (7 valores) Segunda Parte (3 valores) PERGUNTA NOTA PERGUNTA RESPOSTA 1.1 2.1 1.2 2.2 1.3 1.4 2.3 2.4 2.5

Leia mais

Introdução à Programação em C Input / Output

Introdução à Programação em C Input / Output Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Modelagem e Análise de Sistemas de Computação Aula 20

Modelagem e Análise de Sistemas de Computação Aula 20 Modelagem e Análise de Sistemas de Computação Aula 20 Aula passada Lei dos grandes números Calculando integrais Gerando outras distribuições Método da transformada inversa Aula de hoje Simulando uma fila

Leia mais

ACH Introdução à Estatística Conteúdo Teórico: 12 - Simulação

ACH Introdução à Estatística Conteúdo Teórico: 12 - Simulação ACH2053 - Introdução à Estatística Conteúdo Teórico: Marcelo S. Lauretto Referências: Morris DeGroot, Mark Schervish. Probability and Statistics. 4th Ed. - 4o capítulo Ilya M. Sobol. A Primer for the Monte

Leia mais

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga Professora Sheila Cáceres Sobrecarga (overloading) Na mesma classe podemos definir vários métodos com o mesmo nome Sobrecarga O tipo

Leia mais

1 Da aula teórica ao Java

1 Da aula teórica ao Java Universidade Federal do ABC Bacharelado em Ciência da Computação Processamento da Informação - Prof. Fabrício Olivetti de França Guia de tradução entre Java e outras linguagens 1 Da aula teórica ao Java

Leia mais

ESTRUTURA DE DADOS LAÇOS E VETORES

ESTRUTURA DE DADOS LAÇOS E VETORES ESTRUTURA DE DADOS LAÇOS E VETORES Prof. Dr. Daniel Caetano 2014-2 Objetivos Recordar os laços de repetição Conhecer os vetores Compreender o uso de vetores Material de Estudo Material Notas de Aula Apresentação

Leia mais

Algoritmos Gulosos. Norton T. Roman

Algoritmos Gulosos. Norton T. Roman Algoritmos Gulosos Norton T. Roman Apostila baseada no trabalho de Delano M. Beder, Luciano Digianpietri, David Matuszek, Marco Aurelio Stefanes e Nivio Ziviani Algoritmos Gulosos São aqueles que, a cada

Leia mais

Atribuições: Valores, Ponteiros e Referências

Atribuições: Valores, Ponteiros e Referências Atribuições: Valores, Ponteiros e Referências Estruturas de Dados Prof. Vilson Heck Junior Sobre Variáveis Aprendemos, em introdução à programação, que possuem 3 partes mais importantes: Nome; Tipo de

Leia mais