SCC Algoritmos e Estruturas de Dados II Profa. Cristina Oliveira. Segundo Trabalho Prático Arquivos. Prazo máximo: 23:55h de 03/06/2012

Documentos relacionados
Tabela de jogos COMPLETA Tabela de jogos -

SCC Algoritmos e Estruturas de Dados II Profa. Cristina Oliveira. Terceiro Trabalho Prático Árvores B. Prazo máximo: 23:55h de 05/07/2012

TABELA BÁSICA DO CAMPEONATO BRASILEIRO/SÉRIE A

CAMPEONATO BRASILEIRO SUB-20 TABELA BÁSICA / EDIÇÃO 2019

GOLS FABU- LOSOS

CAMPEONATO BRASILEIRO SUB-20 TABELA DETALHADA / EDIÇÃO 2019

CONFEDERAÇÃO BRASILEIRA DE FUTEBOL

CONFEDERAÇÃO BRASILEIRA DE FUTEBOL TURNO

TABELA BÁSICA DO CAMPEONATO BRASILEIRO/SÉRIE A

CONFEDERAÇÃO BRASILEIRA DE FUTEBOL

TABELA DO CAMPEONATO BRASILEIRO DE CLUBES SÉRIE A TABELA DETALHADA

O SÃO PAULO F. C. inicia a 18ª PARTICIPAÇÃO COPA DO BRASIL, TRICOLOR. do clube na. em busca do único troféu que falta na coleção do

Valor das Marcas. 30 Clubes Brasileiros Sports Management. Junho de BDO Brazil Page 1

ESTATÍSTICAS INTER 2012 Jogos: 36 Vitórias: 20 Empates: 9 Derrotas: 7 Gols marcados: 68 Gols sofridos: 31 Aproveitamento: 63,9% INTER EM CASA Jogos: 2

Uma DAS MAIORES REVELAÇÕES

CAMPEONATO PAULISTA DE FUTEBOL FEMININO

CAMPEONATO BRASILEIRO SUB-20 TABELA DETALHADA / EDIÇÃO 2019

Clubes brasileiros com maiores receitas com estádios em De estádios para arenas, como mudaremos de patamar?

SCC Algoritmos e Estruturas de Dados II Profa. Cristina Oliveira. Primeiro Trabalho Prático Individual Grafos

ESTATÍSTICAS INTER 2012 Jogos: 40 Vitórias: 22 Empates: 11 Derrotas: 7 Gols marcados: 73 Gols sofridos: 33 Aproveitamento: 64,2% INTER EM CASA Jogos:

VEJA AQUI A TABELA COMPLETA. Goiás x Vasco

1 a rodada Palmeiras 1 x 0 Atlético-MG. 1 a rodada Chapecoense 2 x 1 Coritiba. 1 a rodada Fluminense 3 x 1 Joinville

classificações finais e desempenho

RECIFE, 23 de setembro de 2012 EDIÇÃO 132 ANO 3. foto: sport clube do recife / divulgação. Sem direito. de errar

COPA DO BRASIL SÃO PAULO FUTEBOL CLUBE NÚMEROS TRICOLORES

Primeiro Trabalho Prático Turma A. Descrição do Trabalho. Considere os seguintes dados a respeito de um livro:

ESTATÍSTICAS INTER 2012 Jogos: 44 Vitórias: 24 Empates: 12 Derrotas: 8 Gols marcados: 79 Gols sofridos: 37 Aproveitamento: 63,6% INTER EM CASA Jogos:

MERCADO DO FUTEBOL 2012 MERCADO DO FUTEBOL BRASILEIRO

Solução usando variáveis simples

RECIFE, 21 de julho de 2012 EDIÇÃO 116 ANO 3. foto: sport clube do recife / divulgação. Leão com fome. de vitórias

CANASTRA CLUBE CAIXERAL. Tabela de Jogos

Rank Equipe Jogos nos quais não sofreu gol Jogos disputados 53.85%

Confederação Brasileira de Futebol

SÃO PAULO FUTEBOL CLUBE

Confederação Brasileira de Futebol

/ Maior goleada / SÃO PAULO 10 BOTAFOGO / PB 0

Maio, Receitas com estádios dos clubes brasileiros

CAMPEONATO PAULISTA DE FUTEBOL FEMININO

CAMPEONATO PAULISTA DE FUTEBOL SUB ASSOCIAÇÕES PARTICIPANTES

Confederação Brasileira de Futebol

Valor das Marcas. 34 Clubes Brasileiros Sports Management. Agosto de BDO Brazil Page 1

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia Elétrica Profa. Maria Cristina Rangel

Confederação Brasileira de Futebol

CAMPEONATO PAULISTA DE FUTEBOL FEMININO

SÃO PAULO FUTEBOL CLUBE

Art. 1º A Copa do Brasil Sub 17, doravante Copa, é regida por dois regulamentos mutuamente complementares identificados a seguir:

COPA DO BRASIL SUB 20 DE 2013 REC REGULAMENTO ESPECÍFICO DA COMPETIÇÃO

Confederação Brasileira de Futebol

Confederação Brasileira de Futebol

TABELA DA COPA DO BRASIL DE 2010

Confederação Brasileira de Futebol

LISTA DE EXERCÍCIOS 2

Confederação Brasileira de Futebol

Universidade Federal do Espírito Santo - CT - DI Trabalho Computacional - PD II - Engenharia de Computação Profa. Claudia Boeres

Confederação Brasileira de Futebol

ESTATÍSTICAS INTER 2012 Jogos: 50 Vitórias: 26 Empates: 14 Derrotas: 10 Gols marcados: 83 Gols sofridos: 41 Aproveitamento: 61,3% INTER EM CASA Jogos:

CAMPEONATO PAULISTA DE FUTEBOL SUB ASSOCIAÇÕES PARTICIPANTES

CONFEDERAÇÃO BRASILEIRA DE FUTEBOL

COPA PAULISTA DE FUTEBOL PROFISSIONAL

Relatório de Atividades Comissão de Arbitragem

CCO 016 / COM 110 Fundamentos de Programação

SEJA BEM-VINDO DE VOLTA A ` SUA CASA, DIEGO

Valor das Marcas. 40 Clubes Brasileiros Esporte Total. Setembro de BDO Brazil Page 1

Comparando as finanças dos clubes Parte 3: Dívidas e Patrimônio

Trabalho Prático. Descrição Considere os seguintes dados a respeito de uma pessoa:

Primeira Parte do Trabalho Prático (Parte I) Valor: 30% Descrição do arquivo de dados

COPA PAULISTA DE FUTEBOL PROFISSIONAL

COPA PAULISTA DE FUTEBOL PROFISSIONAL

1ª Pesquisa PLURI STOCHOS Tamanho das Torcidas por Região

CAMPEONATO BRASILEIRO DA SÉRIE A DE 2013 REC - REGULAMENTO ESPECÍFICO DA COMPETIÇÃO. CAPÍTULO I Da Denominação e Participação

CAMPEONATO PAULISTA DE FUTEBOL SUB ASSOCIAÇÕES PARTICIPANTES

Confederação Brasileira de Futebol

CAMPEONATO BRASILEIRO DA SÉRIE A TABELA BÁSICA / EDIÇÃO 2016 TURNO REF ROD DATA HORA JOGO ESTÁDIO CIDADE

Nº DATA COMPETIÇÃO ESTÁDIO RES. ADVERSÁRIO gols

GOLS FABU- LOSOS

Compressão de Textos. Introdução. Introdução. Introdução. O volume de informação textual disponível on-line é imenso:

SCC-502 Algoritmos e Estruturas de Dados 1 M. Cristina/Jorge. Trabalho Rec Codificação de Huffman

IPEG Índice PLURI de Eficiência na Gestão do Futebol em 2013

As forças econômicas do futebol brasileiro

Quinto Trabalho Prático. Este trabalho tem como objetivo indexar arquivos de dados usando um índice árvore-b.

Federação Paulista de Futebol

Estruturas de Repetição. Leonardo Murta

INTRODUÇÃO À PROGRAMAÇÃO LISTA DE EXERCÍCIOS 14

CONFEDERAÇÃO BRASILEIRA DE FUTEBOL

Segunda Parte do Trabalho Prático (Parte II) Valor: 70%

Aula 3:Introdução à Linguagem C

ESTATÍSTICAS INTER 2012 Jogos: 54 Vitórias: 27 Empates: 15 Derrotas: 12 Gols marcados: 88 Gols sofridos: 45 Aproveitamento: 59,2% INTER EM CASA Jogos:

Confederação Brasileira de Futebol

PLURI VIEW O impacto da desvalorização do Real sobre a janela de transferência de jogadores

Confederação Brasileira de Futebol

Árvores. Fabio Gagliardi Cozman. PMR2300 Escola Politécnica da Universidade de São Paulo

O USO DE MODELO PROBABILÍSTICO NA PREVISÃO DOS RESULTADOS DOS JOGOS DO CAMPEONATO BRASILEIRO DE 2006

CAMPEONATO PAULISTA DE FUTEBOL SUB ASSOCIAÇÕES PARTICIPANTES

CAMPEONATO BRASILEIRO DA SÉRIE A DE 2014 REC - REGULAMENTO ESPECÍFICO DA COMPETIÇÃO. CAPÍTULO I Da Denominação e Participação

Trabalho Prático 2015 Simulador de Circuitos Opção 1 Versão /11/2013

RECIFE, 06 outubro de 2012 EDIÇÃO 135 ANO 3. Vamos. derrubar o Timão

Tipos de apostas. *Repare que no jogo (3) o apostador jogou Empate o placar ficou 2-2, mas houve desempate nos pênaltis e o Fluminense ganhou.

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

Transcrição:

SCC0203 - Algoritmos e Estruturas de Dados II Profa. Cristina Oliveira Segundo Trabalho Prático Arquivos Prazo máximo: 23:55h de 03/06/2012 Neste trabalho, as duas questões fornecidas são de realização obrigatória. A primeira é relativa à organização de arquivos e a segunda à compressão de dados. Ambas abordam assuntos e algoritmos vistos em sala de aula. A realização deste trabalho deve ser em duplas. Para este trabalho, não será usado o Online Judge. Devem ser entregues três arquivos compactados no Moodle, em suas respectivas pastas: uma para cada tarefa da questão 1 e outro para a questão 2. Os arquivos compactados devem ser nomeados com o numero USP dos alunos separados por _ e conter a extensão.zip (ex: 1234_5678.zip). Cada arquivo compactado deve conter: Um único arquivo de código fonte.c, contendo a solução do problema. O arquivo deve ser denominado da seguinte maneira: Qx_Ty_XXXX_XXXX.c, onde: x é o número da questão e y é o número da tarefa (quando aplicável). A seguir, deve- se colocar o número USP dos autores. Ainda, dentro do código fonte deve- se ter, nas primeiras linhas, um comentário contendo o nome e o número USP dos autores do trabalho. O arquivo de saída gerado pelo programa para a tarefa 1 da primeira questão. O arquivo deve ser nomeado com tabelacampeonatofixo_xxxx_xxxx.dat, onde XXXX deve ser substituído pelo número USP dos autores. Um relatório de, no máximo, 2 páginas, explicando a teoria aplicada à resolução do problema. Este relatório não deve conter detalhes de codificação do problema. Observações - Deve- se fazer a implementação em linguagem ANSI C. - O sistema bloqueia entregas após o prazo estipulado. Assim sendo, não será possível entregar o trabalho após a data/horário estilpulados. - Considere as entradas e saídas ESTRITAMENTE nos padrões descritos. Não imprima na tela quaisquer outras coisas que não as saídas esperadas pelo programa. - Para fins de avaliação, apenas a última submissão de cada problema é considerada. Será analisado o código fonte, especialmente os TADs utilizados. Os trabalhos também serão processados em um verificador de plágio. Bom trabalho!

Questão 1 Seu Astolfo e o Campeonato Brasileiro No dia 19 de maio, inicia- se a disputa do Campeonato Brasileiro de Futebol de 2012. Neste ano, 20 times jogam entre si, em turno e returno, em um campeonato de pontos corridos. Ao final, aquele time que somar mais pontos, sagra- se Campeão Brasileiro de Futebol. Seu Astolfo é um torcedor das antigas. Ele gosta de acompanhar todos os jogos do seu time pelo radinho à pilha. Para isso, Seu Astolfo usa sempre a boa e velha tabela da competição que vem no jornal da sua cidade. Este ano, entretanto, Seu Astolfo comprou seu primeiro computador. Segundo ele, seu time tem tudo para ser campeão neste ano e ele não pode perder nenhum jogo. O computador vai ser de grande valia para encontrar as datas e os horários dos jogos do seu time. Convocamos você para ajudar o Seu Astolfo. Disponibilizamos um arquivo contendo a tabela completa do Campeonato Brasileiro de 2012 tabelacampeonato.dat. Neste arquivo, cada registro corresponde a um jogo do campeonato. Cada um desses registros é composto por 8 campos, separados por um marcador # (em ordem: rodada, data, dia da semana, hora, mandante, visitante, estádio e cidade). Registros estão separados pelo marcador \n. Abaixo, tem- se um exemplo de registro constante no arquivo, bem como a maneira de interpretar as suas informações. 3#07/jun#Qui#20:30#Botafogo#Cruzeiro#João Havelange#Rio de Janeiro# 1. Rodada: 3 2. Data: 07/jun 3. Dia da semana: quinta- feira 4. Horário: 20:30 5. Mandante: Botafogo 6. Visitante: Cruzeiro 7. Estádio: João Havelange 8. Cidade: Rio de Janeiro Com este arquivo, precisamos que você faça as seguintes tarefas: Tarefa 1) Faça um primeiro programa que converta estes arquivos para o formato de campos e registros de tamanho fixo. O tamanho de cada campo deve ser determinado por você. Deve ser escolhido o melhor tamanho possível para cada campo, isso é, de maneira que haja o menor desperdício possível de espaço. Os registros, por sua vez, terão o tamanho máximo igual à soma dos comprimentos dos 8 campos. Por exemplo, se todos os 8 campos tiverem um comprimento 20, então o comprimento do registro é de 8 * 20 = 160. Note que os registros não devem mais estar separados por uma quebra de linha!

Seu programa deve imprimir na tela o nome de cada campo e o tamanho fixo escolhido para o mesmo, bem como o tamanho total de cada registro. Por exemplo, considerando que todos os campos sejam de tamanho 20, seu programa deve imprimir na tela: Rodada 20 Data 20 Dia da semana 20 Hora 20 Mandante 20 Visitante 20 Estádio 20 Cidade 20 Registro 160 Ainda, seu programa deve gravar o resultado da conversão do arquivo de entrada em campos e registros de tamanho fixo em um arquivo tabelacampeonatofixo_xxxx_xxxx.dat. Tarefa 1.2) Faça um programa que receba como entrada (a partir do teclado) o nome do time para o qual o Seu Astolfo torce. Assim, lendo o arquivo tabelacampeonatofixo_xxxx_xxxx.dat que você gerou na tarefa anterior, deve- se imprimir na tela, a cada linha, os seguintes dados de todas as partidas em que o time de Seu Astolfo for visitante: rodada, data, horário, mandante e estádio, nessa ordem. As informações devem ser separadas por um único símbolo \t. Por exemplo, considerando que receba- se Cruzeiro na entrada, a saída gerada (na tela) deverá ser: 2 26/mai 21:00 Náutico Aflitos 3 07/jun 20:30 Botafogo João Havelange 6 23/jun 18:30 Vasco São Januário 8 07/jul 18:30 Internacional Beira Rio 10 18/jul 20:30 Portuguesa Canindé 12 25/jul 21:50 Corinthians Pacaembu 15 08/ago 21:50 Santos Vila Belmiro 16 11/ago 18:30 Bahia Pituaçu 18 19/ago 16:00 Coritiba Couto Pereira 20 29/ago 18:30 Atlético-GO Serra Dourada 23 09/set 18:30 Sport Ilha do Retiro 24 12/set 18:30 Figueirense Orlando Scarpelli 26 23/set 18:30 São Paulo Morumbi 28 06/out 16:00 Grêmio Olímpico 30 17/out 18:30 Flamengo João Havelange 32 24/out 21:00 Palmeiras Pacaembu 33 27/out 16:00 Ponte Preta Moisés Lucarelli 36 18/nov 19:30 Fluminense João Havelange 38 02/dez 16:00 Atlético-MG Arena do Jacaré

Para essa tarefa, deve- se considerar que possui- se uma memória principal limitada, que suporta apenas 3 registros armazenados. Deve- se, ainda, fazer o menor número possível de acessos ao arquivo. Seu programa deve imprimir na tela, ao final, logo abaixo da lista de informações solicitadas, o número total de consultas em arquivo realizadas para a leitura das informações solicitadas, tal como no exemplo abaixo. Acessos 12345

Questão 2 Comprimindo os dados do Seu Astolfo Seu Astolfo, agora, enfrenta um novo problema. De tanto baixar da internet textos, fotos e vídeos sobre a história do seu time, o disco rígido do seu computador recém adquirido está muito próximo de seu limite máximo. Procurando na internet por uma solução para isso, Seu Astolfo ouviu falar de compressão de arquivos. Ele, muito interessado, procurou mais sobre o assunto e ouviu que um senhor chamado David Huffman havia proposto uma solução muito simples para a codificação de arquivos que, ao final, reduzia o seu tamanho. Seu Astolfo, então, pediu que você o ajudasse com esse problema. Usando a Codificação de Huffman, você deve fazer um programa que leia um arquivo, cujo caminho seja passado como entrada (teclado), compacte- o e seja capaz de descompactá- lo. O arquivo deverá ser lido byte a byte, isto é, deve- se considerar a existência de, no máximo, 256 símbolos. Seu programa deverá realizar uma primeira leitura do arquivo para contar o número de ocorrências de cada símbolo e, a partir desta informação, construir uma codificação de Huffman para o conjunto de dados. Uma segunda passada pelo arquivo será necessária para comprimi- lo. Para permitir a decodificação do arquivo, será necessário armazenar uma tabela contendo o número de ocorrências de cada símbolo no início do arquivo comprimido (antes dos dados codificados). Dessa forma, o decodificador poderá recuperar do arquivo a frequência de cada um dos símbolos e, consequentemente, reconstruir a mesma codificação de Huffman utilizada na compressão. Uma vez restaurada a codificação utilizada, a descompressão das informações pode ser realizada facilmente. O seu programa deverá ler o arquivo de entrada, cujo caminho foi especificado na entrada, e comprimi- lo, salvando- o com o nome arquivocomprimido.huf. Em seguida, seu programa deve ler o arquivo arquivocomprimido.huf e descomprimi- lo, salvando- o com o nome arquivodescomprimido.huf.