Algoritmos e Estruturas de Dados I



Documentos relacionados
O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

Métodos Computacionais. Fila

Este trabalho tem como objetivo praticar o uso de tipos abstratos de dados e estruturas do tipo Lista.

Estrutura de Dados Básica

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Trabalho 3: Agenda de Tarefas

Trabalho 7 Fila de prioridade usando heap para simulação de atendimento

Algoritmos e Programação

Algoritmos e Programação Estruturada

Filas: conceitos e implementações

Tipo Abstrato de Dados

Aula 1 Tipo Abstrato de Dados

Estrutura de Dados Básica

Algoritmos e Estrutura de Dados. Prof. Tiago A. E. Ferreira

Trabalho Prático 1 Revisão de Programação, Tipos Abstratos de Dados e Combinação de Alocação Estática e Dinâmica de Memória

Estruturas de Dados Aula 15: Árvores 17/05/2011

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Estruturas de Repetição

OBI2012 Caderno de Tarefas

Capítulo 8. CICLOS. Tabela 8.1 Programa8a.f90.


DAS5102 Fundamentos da Estrutura da Informação

Implementando uma Classe e Criando Objetos a partir dela

Tabela do planejamento de estudo para o concurso do INSS/2012

Tecnologia WEB II. Prof. Erwin Alexander Uhlmann. Introdução ao PHP. UHLMANN, Erwin Alexander. Introdução ao PHP. Instituto Siegen. Guarulhos, 2012.

TEXTO DE REVISÃO: Uso da calculadora científica e potências de 10.

Lista restrita onde as operações de inserção e retirada são feitas nas extremidades. Deque (fila de final duplo).

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Conceitos básicos da linguagem C

Astra LX Frases Codificadas Guia para o processo de Configuração de Frases Codificadas no Programa AstraLX.

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

15 a Aula Subprogramação /Subalgoritmos Função e Procedimento

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Especificação do Trabalho Prático

CURSO BÁSICO DE CRIAÇÃO DE SITES MÓDULO 2 AULA 3

Lista de Exercícios 3 Estruturas de Controle Profa Susana M Iglesias

Introdução à Ciência da Computação. Registros em C. Sumário. Registros. Agradecimentos. Parte dos slides a seguir são adaptações dos originais:

cast poderia ser usado também para transformar um real (float) em inteiro. A sintaxe C (float)i pode ser substituída em C++ por float(i).

Av. Moaci, 965 Moema São Paulo SP CEP: Tel. +55 (11) Perguntas Frequentes

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP

COS767 - Modelagem e Análise Aula 2 - Simulação. Algoritmo para simular uma fila Medidas de interesse

4 Linux e HackerTeen Equipe de Gestão de Educação à Distância

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

BCC402 Algoritmos e Programação Avançada Prof. Marco Antonio M. Carvalho Prof. Túlio Ângelo M. Tóffolo 2011/1

Usando o do-file editor Automatizando o Stata

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Guia de Acesso para os Cursos Online

Algoritmos e Estruturas de Dados I

Módulo 1: Contextualização

Atividade de Recuperação- Física

5 Apresentando a linguagem C

A Maquina de Vendas Online É Fraude, Reclame AQUI

1 Funções básicas de implementação de arquivos

OBI2012 Caderno de Tarefas

Especificação do 3º Trabalho

Manual do Módulo de Correspondência

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Variáveis e Comandos de Atribuição

MATERIAL DE APRESENTAÇÃO DO SCRATCH

Unidade 5: Sistemas de Representação

TÉCNICAS DE PROGRAMAÇÃO

Programação científica C++

LINGUAGEM C UMA INTRODUÇÃO

INF 1007 Programação II

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

0, OU COMO COLOCAR UM BLOCO QUADRADO EM UM BURACO REDONDO Pablo Emanuel

Reaproveitando algoritmos

Banco de Dados I. Modelagem Conceitual Parte 2. Cardinalidades, atributos em relacionamentos, identificadores, generalização. Prof.

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

1) Ao ser executado o código abaixo, em PHP, qual será o resultado impresso em tela?

Estruturas de repetição (Ciclos)

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Programa Olímpico de Treinamento. Aula 9. Curso de Combinatória - Nível 2. Tabuleiros. Prof. Bruno Holanda

NOVIDADE NO CÁLCULO DO IR SOBRE O BENEFÍCIO PRHOSPER

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

R2D2E TANK SIMULATOR

Bacharelado em Ciência e Tecnologia Processamento da Informação TESTE DE MESA TESTE DE MESA

MEI 2015 DECLARAÇÃO DE RENDA 17 DICAS PARA VOCÊ NÃO TER DOR DE CABEÇA COM A SUA DECLARAÇÃO DE RENDA

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

Como erguer um piano sem fazer força

Estrutura Condicional C++

1º Domingo de Agosto Primeiros Passos 02/08/2015

LINGUAGEM C UMA INTRODUÇÃO

QUE TIPO DE PESSOA QUERO EM MINHA EQUIPE? Crédito da Apresentação: Diretora Milene Nader

MANUAL ARRECADAWEB. Versão 1.0

Trabalho Prático 1 Tipos Abstratos de Dados

Richard Uchôa C. Vasconcelos CEO LEO Brasil. leolearning.com

Equipe OC- Olimpíadas Científicas

PARA REALIZAR SUA INSCRIÇÃO É NECESSÁRIO QUE VOCÊ TENHA EM MÃOS DOCUMENTO DE IDENTIDADE, CPF E UMA CONTA DE .

Projeto Mancala. Objetivo. Objetivo linguístico. Etapas e duração. Procedimentos. Aula 1

Róbson Rodrigues da Rosa Curso Técnico Integrado ao Ensino Médio Turma Informática Tarde

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

COMO GERAR LEADS SEM GASTAR NENHUM CENTAVO

Comandos Sequenciais if else, e Switch

Markes Roberto Vaccaro

Estruturas compostas

Transcrição:

Algoritmos e Estruturas de Dados I Prof. Daniel M. Martin (daniel.martin@ufabc.edu.br) Aula 7 (laboratório)

Exercício de Laboratório Neste exercício você deverá praticar o uso da estrutura de dados 'Fila' O objetivo é fazer um programa em C que simula o funcionamento de uma fila de banco. Seu programa deve ter duas fases: Fase 1: chegada dos clientes na fila do caixa Fase 2: atendimento dos clientes pelos caixas

Fase 1: chegada dos clientes Cada cliente que chega no banco tem um problema diferente para resolver Cada cliente demorará um tempo diferente para ser atendido Você deve ler da entrada padrão (i.e. usando scanf) uma seqüência de números inteiros positivos e colocá-los numa fila de inteiros, até a leitura de um número menor ou igual a zero (que não deve ser colocado na fila). Cada número da fila é o número de minutos que o atendimento àquele cliente levará

Fase 2: atendimento dos clientes Na fase 2 você deve simular o atendimento dos clientes por três caixas c1, c2 e c3 Use uma variável tempo (inicialmente com valor 0) No tempo 0, todos os caixas estão livres e O caixa 1 chama o primeiro da fila O caixa 2 chama o primeiro da fila (que andou) O caixa 3 chama o primeiro da fila (que andou)

Fase 2: atendimento dos clientes Exemplo: digamos que a fila contenha os números 4 2 5 1 3 6 12 5 nesta ordem Então, no tempo 0, temos os eventos No tempo 0 o caixa 1 chama 4 (c1 = 4) No tempo 0 o caixa 2 chama 2 (c2 = 2) No tempo 0 o caixa 3 chama 5 (c3 = 5)

Fase 2: atendimento dos clientes No tempo 1, cada cliente já está sendo por 1 minuto, então temos (c1 = 3) (c2 = 1) (c3 = 4) Nenhum evento ocorreu

Fase 2: atendimento dos clientes No tempo 2, temos (c1 = 2) (c2 = 0) caixa se tornou livre (c3 = 3) Como o caixa dois está livre, ele já chama o próximo cliente. Temos o evento: No tempo 2 o caixa 2 chama 1 (c2 = 1)

Fase 2: atendimento dos clientes No tempo 3 temos (c1 = 1) (c2 = 0) caixa livre novamente (c3 = 2) Como o caixa 2 está livre novamente, ele chama o próximo cliente. Temos o evento: No tempo 2 o caixa 2 chama 3 (c2 = 3)

Fase 2: atendimento dos clientes No tempo 4, temos (c1 = 0) caixa se tornou livre (c2 = 2) (c3 = 1) Caixa 1 chama próximo cliente gerando o evento: No tempo 4 o caixa 1 chama 6 (c1 = 6)

Fase 2: atendimento dos clientes No tempo 5, temos (c1 = 5) (c2 = 1) (c3 = 0) caixa se tornou livre Caixa 3 chama próximo cliente gerando o evento: No tempo 5 o caixa 3 chama 12 (c3 = 12)

Fase 2: atendimento dos clientes No tempo 6, temos (c1 = 4) (c2 = 0) caixa se tornou livre (c3 = 11) Caixa 2 chama próximo cliente gerando o evento: No tempo 6 o caixa 2 chama 5 (c2 = 5) Neste momento a fila está vazia, e a simulação terminou

Exercício de Laboratório A saída do seu programa deve ser justamente uma listagem dos eventos (só uma lista dos eventos, um por linha, e nada mais) Você não deve imprimir o valor de c1, c2 e c3 Você NÃO deve simular o atendimento em tempo real (seu programa deve rodar em alguns milisegundos!)

Exercício de Laboratório Exemplo: Entrada: 4 2 5 1 3 6 12 5 Saída: No tempo 0 o caixa 1 chama 4 No tempo 0 o caixa 2 chama 2 No tempo 0 o caixa 3 chama 5 No tempo 2 o caixa 2 chama 1 No tempo 2 o caixa 2 chama 3 No tempo 4 o caixa 1 chama 6 No tempo 5 o caixa 3 chama 12 No tempo 6 o caixa 2 chama 5

Instruções Observe as instruções atentamente: Você deve usar o Módulo Fila disponível no site da disciplina Você deve usar os arquivo fila.h, fila.c e item.h que estão contidos no fila.tar.gz Você não tem permissão para modificar os arquivos fila.h nem fila.c e deve apenas utilizá-los em seu programa

Instruções Em seu programa você deverá usar uma fila de inteiros declarada como struct s_fila F; Para tanto, deve modificar o arquivo item.h trocando a linha typedef char item; por typedef int item;

Instruções Você não pode declarar/alocar/usar nenhum vetor em seu programa!!! Você pode apenas usar as funções da interface fila.h Lembre-se de chamar inicializa_fila(&f, 1000); antes de usar outras funções de fila.h

Instruções Entregar somente o seu arquivo main.c (não é para entregar nem fila.h nem fila.c nem item.h) Eu vou usar o meu fila.h e fila.c para compilar seu programa (e tb o meu item.h modificado) Entregar até meia noite de domingo 04/03 Entrega posterior fica com zero O assunto do e-mail deve ser AED1-EL3