Prof. Marco Antonio M. Carvalho



Documentos relacionados
Prof. Marco Antonio M. Carvalho

STL significa Standard Template Library. É uma biblioteca que contém algumas estruturas de dados, como árvore binária e lista encadeada.

Prof. Marco Antonio M. Carvalho

Pesquisa em Memória Primária. Prof. Jonas Potros

Pilhas. Profa Morganna Diniz

Prof. Marco Antonio M. Carvalho

Árvores Binárias de Busca

Pesquisa Sequencial e Binária

Aula 8- Standard Template Library. Arthur Ribacki Gabriel Portal Leonardo Chatain Luiz Fernando Scheidegger Rosália Schneider

Algoritmos e Estruturas de Dados II. Trabalho Prático 2

Lógica de Programação

Na disciplina de Cálculo Numérico, vamos trabalhar com a linguagem C++ e o compilador que vamos usar é o Dev C++.

Estruturas de Dados Pilhas, Filas e Deques

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Algoritmos de pesquisa. Tabelas de dispersão/hash

Tabelas de Espalhamento

Programas operam sobre dados. Dados são relacionados e possuem estrutura. Como representar e manipular dados em um computador

Busca. Pesquisa sequencial

MANUAL PARA UTILIZAÇÃO DO MOODLE FACULDADE INTERAÇÃO AMERICANA VIRTUAL - Versão: Aluno

Manual de acesso ao UNICURITIBA Virtual (Moodle) para alunos

GUIA BÁSICO DA SALA VIRTUAL

Computação e Programação Aula prática nº 5. Enunciados dos problemas

Criando Quiz com BrOffice.impress

Princípios de programação em Linguagem C++

Análise de Sugestão de Compra

Guia e Utilização do Visual Studio 6.0

Fundamentos de Programação II. Introdução à linguagem de programação C++

Aula 1 Tipo Abstrato de Dados

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Portal Institucional do IFPB

FACULDADE SENAC-RS PELOTAS RODRIGO ALMEIDA PEREIRA. Sistemas de Informação

Manual Integra S_Line

Sumário 1. O acesso ao ambiente virtual de aprendizagem da FSMA A sala de aula virtual A rotina do estudante

Nota de Aula: Utilização da IDE Code::Blocks

Capítulo 19. Algoritmos de Ordenação e de Pesquisa. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

ÍNDICE. 1. Introdução O que é o Sistema Mo Porã Como acessar o Site Mo Porã Cadastro do Sistema Mo Porã...

WORKSHOP Ferramenta OLAP IBM Cognos

Programação de Computadores Primeiros Passos Práticos em C++

"Manual de Acesso ao Moodle - Discente" 2014

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

AULA 1 Iniciando o uso do TerraView

Computação L2. Arquivos. Observação: Material da Disciplina Computação Eletrônica CIN/UFPE.

Moodle - CEAD Manual do Estudante

Listas Duplamente Encadeadas

Árvore B UNITINS ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 3º PERÍODO 43

Apostila Oultlook 2007 Prof. Fabrício Melo

Componentes da linguagem C++

Pesquisa em Memória Primária. Algoritmos e Estruturas de Dados II

Sistema de Arquivos. Ambientes Operacionais. Prof. Simão Sirineo Toscani

Índice. Tenho uma conta pessoal e uma conta da instituição em que dou aula, porém não consigo acessar a conta da escola. O que fazer?

Manual AGENDA DE BACKUP

Versionamento de Código. Núcleo de Desenvolvimento de Software

2ª Lista de Exercícios

Manual Portal Ambipar

Manual AGENDA DE BACKUP

Banco de Dados Microsoft Access: Criar tabelas

Manual de Instalação e Utilização

BSI UFRPE Prof. Gustavo Callou

Banco de Dados Microsoft Access: Criar tabelas. Vitor Valerio de Souza Campos

Manual do usuário. Softcall Java. versão 1.0.5

COMO JOGAR TRANCA ONLINE

Listas Lineares. Fundamentos

BUSCA EM LISTAS LISTAS SEQÜENCIAIS, LISTAS SIMPLESMENTE E DUPLAMENTE ENCADEADAS E LISTAS CIRCULARES

TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS

Menus Personalizados

Guia de Consulta Rápida C++ STL. Joel Saade. Novatec Editora

Manual do Usuário. Gold Lock Enterprise Encriptação de nível Militar Para Symbian OS 9.2 e acima S60 3ed Edition, FP1 e FP2

ALUNES MANUAL DO USUÁRIO. Guia rápido Alunes

Filas COMANDOS EM C++ PARA IMPLEMENTAÇÃO DE UMA FILA. Biblioteca padrão <queue>

Tabela de símbolos: tabelas de espalhamento

Curso: Redes II (Heterogênea e Convergente) Tema da Aula: Características Roteamento

O que é um programa? Programa é uma lista de instruções que descrevem uma tarefa a ser realizada pelo computador.

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

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

Microsoft Office Excel 2007

Apresentando o Sistema GeoOffice GPS Profissional

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Árvores Binárias de Busca

Guia de Acesso Rápido AVA Ambiente Virtual de Aprendizagem Aluno

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

Hashing Letícia Rodrigues Bueno

Editor de Questões E24H

1 Sumário O Easy Chat Conceitos Perfil Categoria Instalação O Aplicativo HTML...

LILDBI-Web. Objetivo: Aplicar as funcionalidades do LILDBI-Web para alimentação de bases de dados bibliográficas. Conteúdos desta aula

GUIA INTEGRA SERVICES E STATUS MONITOR

Filas: conceitos e implementações

DAS5102 Fundamentos da Estrutura da Informação

OneDrive: saiba como usar a nuvem da Microsoft

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

PÁGINA DE ATORES MANUAL DO APLICATIVO

Manual de Instalação

1 ACESSO AO PORTAL UNIVERSITÁRIO 3 3 PLANO DE ENSINO 6 4 AULAS 7 5 AVALIAÇÃO E EXERCÍCIO 9 6 ENQUETES 12 7 QUADRO DE AVISOS 14

Prof. Yandre Maldonado - 1 PONTEIROS. Prof. Yandre Maldonado e Gomes da Costa

MANUAL. Perfil de Professor

Adapti - Technology Solutions Leonor cardoso nº 331 Fone : (041) Curitiba - PR MANUAL DO USUÁRIO

CAPÍTULO 35 Como utilizar os componentes ColdFusion

Tutorial Plone 4. Manutenção de Sites. Universidade Federal de São Carlos Departamento de Sistemas Web Todos os direitos reservados

BC Sistemas Operacionais Sistema de Arquivos (aula 10 Parte 2) Prof. Marcelo Z. do Nascimento

Como funciona? SUMÁRIO

Índice: CMS 3 O que é Content Management System? Clientes 4 O que é o Cliente? 4 Configurando o i-menu/i-view para trabalhar. com o CMS.

Transcrição:

Prof. Marco Antonio M. Carvalho

Lembretes Lista de discussão Endereço: programaacao@googlegroups.com Solicitem acesso: http://groups.google.com/group/programaacao Página com material dos treinamentos http://www.decom.ufop.br/marco/extensao/obi/ Repositório online de problemas das edições passadas da OBI http://br.spoj.com/problems/obi/sort=-7 Moodle http://programaacao.net.br/login/index.php 2

Avisos 3

Na aula de hoje URI Online Judge list deque Problemas Selecionados Um Problema de Lógica 4

URI Online Judge 5

URI Online Judge O URI Online Judge é um site tipo o SPOJ, com enunciados de problemas e com um juiz automático Brasileiro; Universidade Regional Integrada do Alto Uruguai e das Missões. Possui um ranking, assim como o SPOJ Por programadores e por instituição. Possui estatísticas sobre quantas pessoas resolveram cada problema. 6

URI Online Judge Vantagens: Problemas categorizados por abordagem Ad hoc, strings, estruturas de dados, geometria, grafos etc; Problemas categorizados por nível de dificuldade Nível 1 ao 9. É possível saber o quanto sua resposta está errada Wrong Answer (10%), Wrong Answer (100%), etc; Depende do quanto você acertou dos casos de teste do juiz. É possível saber a possível causa de erros de execução durante o julgamento. 7

URI Online Judge Vantagens: Interface de rede social Badges. Fórum melhor do que o do SPOJ; Criação de casos de teste adicionais pelo próprio site; É possível salvar seus códigos do site para o dropbox automaticamente; Possibilidade de criar competições privadas pelo site; Há um plano para disponibilizar no site material e tutoriais para estudo. 8

URI Online Judge Desvantagens Relativamente poucos problemas (489 em novembro/13); Relativamente novo (8 mil usuários) Site instável (novembro/13). 9

URI Online Judge Há uma seção de problemas para iniciantes (nível 1) Comecem a praticar! É possível que o professor acompanhe o desempenho dos alunos pelo site e ajude nas dúvidas. http://www.urionlinejudge.com.br/judge/en/problems/index/1 10

URI Online Judge Como mudar a linguagem do site? Selecione a opção "Português" no menu Settings -> Website Language. 11

URI Online Judge Acesso: http://www.urionlinejudge.com.br/ http://www.urionlinejudge.com.br/forum/ https://www.facebook.com/urionlinejudge 12

list 13

list Uma lista é uma estrutura de dados sequencial, que permite inserções e remoções em qualquer posição em tempo constante Além de iterações em ambos os sentidos. 14

list Vantagens Quando comparada com vector e deque, a lista geralmente tem melhor desempenho para inserção, remoção e movimentação de elementos em qualquer posição no contêiner; Consequentemente, algoritmos como os ordenação têm melhor desempenho. Desvantagem Ainda comparada a vector e deque, as listas não possuem acesso direto aos elementos, de acordo com sua posição ou índice; É necessário iterar de uma posição conhecida até o elemento desejado, em tempo linear. 15

list #include <iostream> #include <list> using namespace std; int main () { list<int> first; // lista de inteiros vazia first.push_front( 1 ); //insere na frente first.push_front( 2 ); 16

list first.push_back( 4 ); //insere no final first.push_back( 1 ); first.remove( 4 ); // remove todos os 4s first.unique(); // remove elementos duplicados first.pop_front(); // remove elemento da parte da frente first.pop_back(); // remove elemento da parte de trás first.sort(); // ordena values cout << "O conteúdo é: ; for (list<int>::iterator it = first.begin(); it!= first.end(); it++) cout << *it << " ; return 0; } 17

list Neste exemplo, temos os seguintes métodos da classe list: sort: ordena a lista em ordem crescente; unique: remove elementos duplicados; remove: apaga todas as ocorrências de um determinado valor da lista. Existem outros como: reverse: inverte a lista; merge: intercala listas; remove_if: remove elementos que atendam um critério. 18

deque 19

deque Um deque (double-ended queue) é uma fila de ponta dupla; Em outras palavras, é uma estrutura de dados sequencial e de tamanho dinâmico, podendo ser expandida ou contraída em ambas extremidades No início (frente) ou no final. 20

deque Vantagens O deque é muito parecido com vector, porém, é mais eficiente para inserção e remoção de elementos também no início; Para armazenar muitos dados, é melhor que vector, pois realoca memória mais facilmente. Desvantagens Ao contrário do vector, não é uma estrutura contígua; Quando comparado com lista, o deque tem pior desempenho em operações que envolvem inserções e remoções frequentes em posições que não sejam o início ou o final. 21

deque #include <iostream> #include <deque> using namespace std; int main () { unsigned int i; deque<int> first; // deque vazio do tipo int 22

deque first.push_front( 2 ); first.push_front( 3 ); first.push_back( 1 ); // utiliza o operador de subscrito para modificar elemento na localização 1 first[ 1 ] = 5; first.pop_front(); // remove o primeiro elemento first.pop_back(); // remove o primeiro elemento cout << "O conteúdo é:"; for (i=0; i < first.size(); i++) cout << " " << first[i]; return 0; } 23

deque O método push_front está disponível apenas para list e deque; O operador [] permite acesso direto aos elementos do deque Também pode ser utilizado em um vector. Em geral, um deque possui um desempenho levemente inferior em relação a um vector No entanto, é mais eficiente para fazer inserções e remoções no início. 24

Problemas Selecionados 25

Problemas Selecionados http://www.urionlinejudge.com.br/judge/en/ problems/view/1430 http://www.urionlinejudge.com.br/judge/en/ problems/view/1025 26

Um Problema de Lógica 27

Um Problema de Lógica Uma pessoa montou uma tenda para acampar. Subitamente, apareceu um Urso que lhe desfez a tenda. A pessoa, pacientemente, reparou a tenda e montou-a novamente. Entretanto, o urso andou um quilômetro para sul, dois quilômetros para oeste e outro quilômetro para norte, voltando a passar pelo acampamento desfazendo novamente a tenda. De que cor era o urso? 28

Perguntas? 29