ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS. Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms.
|
|
- Wilson Castilhos Vilaverde
- 2 Há anos
- Visualizações:
Transcrição
1 ANÁLISE E IMPLEMENTAÇÃO DE ALGORITMOS DE COMPRESSÃO DE DADOS Maria Carolina de Souza Santos 1 Orientador: Prof.º Ms. Mauricio Duarte 2 Centro Universitário Euripides de Marilia UNIVEM FATEC Faculdade de Tecnologia de Garça Caixa Postal Garça - SP Brasil Resumo: Em muitas situações são necessárias o armazenamento e o envio de informações pertinentes à alguma ação e, em muitos casos, por se tratarem de arquivos digitais muito grandes, estas informações necessitam ser compactadas (comprimidas). O ato de compactar uma informação é reduzir seu tamanho original em um tamanho menor, sem interferir no significado da informação. Este artigo apresenta uma técnica de compressão de dados proposta por Huffman e, baseando-se nela, propõe um novo algoritmo para compressão de dados. Palavras-chave: 1. Compressão; 2. Huffman; 3. Algoritmos INTRODUÇÃO Compressão de texto está relacionada com as maneiras de representar o texto original em menos espaço. Para isto, basta substituir os símbolos do texto por outros que possam ser representados, usando um número menor de bits ou bytes. (ZIVIANI, 2007). Assim, a compressão de dados é um processo de redução do espaço ocupado por dados num determinado dispositivo. O objetivo central é diminuir a quantidade de bytes do dado sem causar alterações, ou seja, utilizar compressão de dados sem perdas. A pesquisa se constitui na proposta de criar um padrão de árvore de codificação, utilizando os conceitos abordados por Huffman, que é um dos métodos de compressão mais conhecidos, cujo objetivo é deixar no nível mais baixo da árvore as palavras de menor frequência, que, por consequência, geram códigos binários mais curtos para palavras mais decorrentes. O estudo de compressão é importante para reduzir dados como imagens, vídeos e textos em situações como transmissão de dados, pois o ideal é diminuir o tempo de latência, e também para backup, que além de utilizar o conceito de compactação necessita fazer a compressão dos dados; caso os backups sejam feitos com frequência. Com a compressão, o arquivo compactado não ocupa tamanhos elevados nos dispositivos de armazenamento. 1 Discentes do curso Bel. em Ciência da Computação UNIVEM - Marilia. 2 Docente dos cursos de Análise e Desenvolvimento de Sistemas da FATEC Garça e também docente do curso de Bel. em Ciência da Computação UNIVEM - Marilia
2 1. REVISÃO BIBLIOGRÁFICA 1.1 COMPRESSÃO DE DADOS Todos os dados computacionais como texto, músicas, imagens e vídeos são compostos por uma série de bits, sendo bit a menor unidade de armazenamento, que podem ser representados por bytes, que é o conjunto de oito bits. Com o intuito de uma unidade de armazenamento ocupar o menor espaço possível, comprimir dados, ou seja, reduzir o tamanho das informações, esse procedimento tornou-se necessário. Atualmente, existem vários métodos de compressão, alguns deles utilizados de forma genérica, para vários tipos de dados, e outros de forma especifica. Muitos desses métodos utilizam o conceito de substituição de informação, pois substituem uma quantidade de informação por uma de tamanho menor. Dessa forma, o dado comprimido ocupa menos espaço de armazenamento e, consequentemente, menos tempo para ser lido do disco ou ser transmitido por um meio de comunicação. Porém existem suas desvantagens, que até o momento são inevitáveis, sobretudo em relação ao processamento: é custoso codificar e decodificar. Como exemplo desses métodos, podemos citar o de Huffman. 1.2 MÉTODO DE HUFFMAN David Albert Huffman, em 1952, desenvolveu um método de compressão sem perdas, resultado de uma pesquisa de doutorado, cujo nome do artigo é A Method for the Construction of Minimum-Redundancy Codes. Sua descoberta hoje é utilizada para comprimir dados bit a bit como textos e imagens. Para comprimir imagens é necessário representar seus pixels (Picture Element, menor elemento de imagem ao qual é possível atribuir-se uma cor) com um número binário. Nesse caso utiliza-se a quantização que estabelece o nível de frequência de uso de cada pixel e, por intermédio desse processo, é possível declarar um código para cada nível. Tendo-se esse código é possível utilizar o método de Huffman para fazer a compressão e descompressão. Para compressão de texto pode ser utilizado também o conceito de substituição de palavras por bits. Isso pode resultar em uma compressão maior na maioria dos casos. Se analisarmos o caractere a que em um texto pode representar uma palavra, o caractere por si só tem o tamanho de oito bits. Mas segundo o método de Huffman, que atribui códigos binários de tamanhos que variam de acordo com a frequência da palavra no texto, as de maiores frequências têm códigos binários menores e as de menores frequências têm códigos binários maiores: se a tiver uma freqüência menor, no pior caso pode ter tamanho maior que um byte, por outro lado, se a maior palavra da língua portuguesa como pneumoultramicroscopicossilicovulcanoconiótico (registrada no Dicionário Houaiss e reconhecida em 2001), que contém 46 caracteres, ou seja, 46 bits,
3 aparecer em um texto várias vezes existe grande probabilidade de reduzir seu tamanho e, no melhor caso, ser representada por um bit. Huffman, em seu método, propôs produzir uma árvore de codificação que minimiza o tamanho do texto. As figuras ilustram um exemplo de construção dessa árvore, para isso a frase No meio do caminho tinha uma pedra tinha uma pedra no meio do caminho, foi utilizada como exemplo. 1º passo: As palavras são ordenadas em ordem crescente de frequência (Figura 1). Figura 1 1º passo da construção da árvore. 2º passo: As duas palavras de menor frequência devem formar uma nova sub-árvore (Figura 2). Figura 2-2º passo da construção da árvore. 3º passo: Os nós são agrupados em pares (Figura 3). Figura 3-3º passo da construção da árvore. 4º passo: Cada novo nó terá associado a ele uma nós palavra (Figura 4). Figura 4-4º passo da construção da árvore.
4
5 Após a construção da árvore é possível determinar o código binário para cada palavra, para isso é necessário percorrer as arestas da árvore até a palavra que deseja obter a codificação e os valores atribuídos a cada aresta, sendo eles 0 e 1, formando o código binário. A tabela 1 mostra o resultado desse processo. Tabela 1 Palavras e seus respectivos códigos binários. Palavra Código NO MEIO DO CAMINHO TINHA 110 UMA 10 PEDRA 0 O texto codificado é representando da seguinte forma: A decodificação pode ser feita de duas formas: a primeira é utilizar a tabela que contém os códigos referentes a cada palavra e fazer a substituição; a segunda
6 forma é utilizar a árvore onde os bits de entrada do arquivo comprimido são usados para selecionar as arestas e, consequentemente, encontrar a palavra. Tanto a primeira quanto a segunda forma geram um custo computacional expressivo, porém ainda há vantagens de comprimir o texto, se for feito a razão de compressão que é o tamanho do texto comprimido dividido pelo tamanho do texto original: 52 bits /552 bits, mostram que o arquivo comprimido foi reduzido para o tamanho de 9% do tamanho original. 2. METODOLOGIA Para a implementação do algoritmo foi escolhida a linguagem Java. Java é uma linguagem de programação orientada a objeto e desenvolvida na década de 90 por uma equipe de programadores, chefiada por James Gosling, na empresa Sun Microsystems. Em 1999, com o surgimento das plataformas Java 2 Enterprise Edition (J2EE) e a Java 2 Mobile Edition (J2ME), Java passou a ser utilizada na web, em desktop, servidores, mainframes, jogos, aplicações móveis e até em chips de identificação, atualmente, por consequência de sua intensa aplicabilidade, é uma das linguagens mais usadas, servindo praticamente para qualquer tipo de aplicação. Java executa em diferentes ambientes por trabalhar com uma máquina virtual nomeada Java Virtual Machine (JVM), que traduz o código bytecode em instruções específicas de cada sistema. Em relação ao bytecode, este é o estágio intermediário entre o código-fonte e a aplicação final, sendo ele transparente ao desenvolvedor. Portanto não se faz necessário entender como ocorre essa tradução para cada sistema, pois a máquina virtual é responsável por essa função, o que torna viável utilizar Java; afinal essa linguagem facilita o trabalho do desenvolvedor por não ter a necessidade de alterar o código da aplicação para diferentes ambientes. A linguagem Java possibilita a criação de componentes separados por função, criando componentes mais simples e utiliza o conceito de herança, que são fatores importantes para o reuso do código, facilitando também o trabalho do desenvolvedor. Outro motivo da escolha da linguagem é por ter ambientes de desenvolvimento gratuitos (IDE), tal como NetBeans, que é uma IDE para Java, e a mesma foi utilizada para implementação do algoritmo de compressão de dados. Além disso, vários fabricantes fornecem ferramentas, servidores de aplicação, bibliotecas e existem diversos tipos de frameworks para resolver um mesmo problema, o que proporciona maior liberdade de escolha de framework que mais se adapta ao projeto.
7 3. PROJETO Projetar uma árvore com n palavras é vago, pois poderiam ter diversas representações. Pensando nisto é que este projeto propõe um novo padrão na construção da árvore de codificação de Huffman. A construção da árvore é dividida em 4 etapas. Para exemplificar as etapas usaremos como exemplo o seguinte texto: 1ª Etapa: Depois de algum tempo você aprende a diferença, a diferença entre dar a mão acorrentar uma alma você aprende que amar não significa apoiar - se. que companhia nem sempre significa segurança ou proximidade. Como foi proposto por Huffman, deve-se separar o texto por palavras e verificar a frequência das palavras. Em seguida ordenar as palavras das de menores frequências para as de maiores, como na tabela 2. Tabela 2 Palavras e suas frequências em ordem crescente. Etapa: Ordem Palavra Freq. Ordem Palavra Freq. 0 Depois 1 16! 1 1 de 1 17 companhia 1 2 algum 1 18 nem 1 3 tempo 1 19 sempre 1 4, 1 20 segurança 1 5 entre 1 21 ou 1 6 dar 1 22 proximidade 2 7 mão 1 23 você 2 8 acorrentar 1 24 aprende 2 9 uma 1 25 diferença 2 10 alma 1 26 e 2 11 amar 1 27 que 2 12 não 1 28 significa 2 13 apoiar a 3 15 se 1 O nível mais baixo da árvore deve ser composto por pares. 2ª Para determinar a quantidade de palavras nesse nível, usa-se a seguinte equação:
8 Onde p é a quantidade de palavras no nível mais baixo e n é o número total de palavras. Se p for um valor impar acrescenta-se 1.Em seguida é necessário associar cada par a um nó. O texto contém 31 palavras, portanto no nível mais baixo tem-se 15 palavras, como o valor é impar passa a ser 16 palavras e, consequentemente, 8 pares (Figura 5). Figura 5 Palavras no nível mais baixo agrupadas em pares. 3ª Etapa: Nesta etapa estes pares gerados serão associados a um novo nó. O novo nó conterá o par na sua sub-árvore à esquerda e uma palavra em sua sub-árvore à direita. Esses novos nós deverão ser associados entre si de par em par também, criando outros nós (Figura 6). Figura 6 Nós e suas sub-árvores. A 3ª etapa irá se repetir enquanto houver nós para serem associados em pares e palavras a serem inseridas na árvore. 4ª Etapa: Se a quantidade de palavras inseridas até o final da 3ª etapa for diferente do total de palavras, insere-se o restante acima da raiz. r = n ti Onde ti é o total de palavras inseridas e r é a quantidade de palavras que serão inseridas acima da raiz (Figura 7).
9 Figura 7 Árvore Final.
10 Após criar a árvore é possível determinar um código binário para cada palavra e mediante esse código é feita a descompressão. Tabela 3 Palavras e seus respectivos códigos binários. Palavra Código Palavra Código Depois ! De companhia Algum nem Tempo sempre , segurança Entre ou Dar proximidade Mão você acorrentar aprende Uma diferença Alma e Amar que Não significa 011 Apoiar a 1 Se O texto codificado é representando da seguinte forma: RESULTADOS E CONCLUSÕES Analisando a tabela gerada pelo exemplo do projeto, um arquivo binário será gerado com as codificações descritas. Assim, é possível notar que as palavras menos frequentes foram codificadas em 7 bits e, no pior caso (um único caractere - possui 1 byte) economizou 1 bit. Em contrapartida, a maior palavra do texto proximidade, que possui 10 bytes, foi comprimida em 2 bits, indicando um grande redução do seu tamanho. O arquivo original tem 209 bytes, no entanto, após aplicar o algoritmo proposto nesse projeto, ele ficou com 28,625 bytes. Ao fazer a razão de compressão: 28,625 bytes / 209 bytes, temos que o arquivo comprimido foi reduzido para o tamanho de 13% do tamanho original.
11 Para pequenos arquivos de texto é possível perceber que este padrão proposto tem uma taxa de compressão alta, porém para textos muito grandes essa taxa não é efetiva. Fica como proposta, para trabalho futuro, a análise e testes para arquivos maiores e o desenvolvimento de um padrão de árvore que se adapte à essa realidade. REFERÊNCIAS BIBLIOGRÁFICAS ZIVIANI, N. Projeto de Algoritmos com implementações em Java e C++. São Paulo: Cengage Learning, TENENBAUM, A. M. et al. Estruturas de Dados usando C, Makron Books, 1995.
ESTRUTURAS DE DADOS II
ESTRUTURAS DE DADOS II Msc. Daniele Carvalho Oliveira Doutoranda em Ciência da Computação - UFU Mestre em Ciência da Computação UFU Bacharel em Ciência da Computação - UFJF Conteúdo Programático 1. Introdução
Linguagem de Programação JAVA. Professora Michelle Nery Nomeclaturas
Linguagem de Programação JAVA Professora Michelle Nery Nomeclaturas Conteúdo Programático Nomeclaturas JDK JRE JEE JSE JME JVM Toolkits Swing AWT/SWT JDBC EJB JNI JSP Conteúdo Programático Nomenclatures
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel A linguagem JAVA A linguagem Java O inicio: A Sun Microsystems, em 1991, deu inicio ao Green Project chefiado por James Gosling. Projeto que apostava
Tecnologia Java. Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br
Tecnologia Java Daniel Destro do Carmo Softech Network Informática daniel@danieldestro.com.br Origem da Tecnologia Java Projeto inicial: Oak (liderado por James Gosling) Lançada em 1995 (Java) Tecnologia
PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA*
PROGRAMAÇÃO ORIENTADA A OBJETOS EM JAVA* Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR Fev/2014 *Adaptado de PACHECO, R C S & RIEKE, R N INE UFSC Disponível em: http://wwwstelaufscbr/~pacheco/dsoo/htm/downloadshtm
Java & OpenJDK. Thiago S. Gonzaga. Sun Campus Ambassador thiago.gonzaga@sun.com
Java & OpenJDK Thiago S. Gonzaga Sun Campus Ambassador thiago.gonzaga@sun.com Tópicos Sobre a Sun Microsystems Algumas tecnologias da Sun Linguagem de Programação Ciclo de Desenvolvimento O que é Java?
Introdução a Linguagem
Introdução a Linguagem Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 03 Introdução a Linguagem Java 1 Conteúdo Máquina Virtual (JVM) Histórico de Java Case Sensitive Tipos Primitivos Tipo String
A Linguagem Algorítmica Estrutura de Repetição. Ex. 2
Estrutura de Repetição. Ex. 2 A ESTRUTURA Enquanto faça{} É MELHOR UTILIZADA PARA SITUAÇÕES ONDE O TESTE DE CONDIÇÃO (V OU F) PRECISA SER VERIFICADO NO INÍCIO DA ESTRUTURA DE REPETIÇÃO.
Adriano Mauro Cansian 2
Números binários i e Linguagens g de Programação André Proto Adriano Mauro Cansian UNESP - São José do Rio Preto http://adriano.acmesecurity.org/lc (Linguagem Computacional) Neste tópico veremos: A representação
Algoritmos e Linguagem de Programação de Computadores I
Algoritmos e Linguagem de Programação de Computadores I Ricardo José Cabeça de Souza www.ricardojcsouza.com.br OBJETIVOS Apresentar conceitos básicos de algoritmos e sua importância na elaboração de soluções
Algoritmos para compressão de URLs
Algoritmos para compressão de URLs Ronan Loschi Rodrigues Ferreira, Fabrício Benevenuto PPGCC - Programa de Pós-Graduação em Ciência da Computação UFOP - Universidade Federal de Ouro Preto Ouro Preto,
Estrutura de Dados. Ricardo José Cabeça de Souza www.ricardojcsouza.com.br ricardo.souza@ifpa.edu.br. Parte 1
Estrutura de Dados Ricardo José Cabeça de Souza www.ricardojcsouza.com.br Parte 1 MODELO DE UM COMPUTADOR CPU Central Processing Unit MODELO DE UM COMPUTADOR O canal de comunicação (conhecido como BUS)
Programação de Computadores
Programação de Computadores Curso Engenharia Civil Modalidade Superior Professora Michelle Nery Agenda Introdução a Programação Algoritmos VS Programa 2 Algoritmos Um algoritmo pode ser definido como uma
Programação de Computadores
Aula 01 Introdução Departamento de Computação Universidade Federal de Ouro Preto 2011.1 1 Processamento de dados 2 Organização de Computadores 3 Sistemas de Numeração Processamento de dados Processamento
Colorindo com Números Representação de Imagens
Atividade 2 Colorindo com Números Representação de Imagens Sumário Os computadores armazenam desenhos, fotografias e outras imagens usando apenas números. A atividade seguinte demonstra como eles podem
Linguagem de Programação JAVA
Linguagem de Programação JAVA Curso Técnico em Informática Modalida Integrado Instituto Federal do Sul de Minas, Câmpus Pouso Alegre Professora: Michelle Nery Agenda JAVA Histórico Aplicações Pós e Contras
MC-102 Aula 01. Instituto de Computação Unicamp
MC-102 Aula 01 Introdução à Programação de Computadores Instituto de Computação Unicamp 2015 Roteiro 1 Por que aprender a programar? 2 Hardware e Software 3 Organização de um ambiente computacional 4 Algoritmos
ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE
ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 1 OBJETIVOS 1. Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?
Que tipo de arranjo de computadores e processamento computacional traria o maior benefício para a organização?
Universidade Federal do Vale do São Francisco Curso de Administração Tecnologia e Sistemas de Informação - 08 Prof. Jorge Cavalcanti jorge.cavalcanti@univasf.edu.br www.univasf.edu.br/~jorge.cavalcanti
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES
LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o funcionamento do computador Apresentar a função da memória e dos dispositivos
Softwares de Sistemas e de Aplicação
Fundamentos dos Sistemas de Informação Softwares de Sistemas e de Aplicação Profª. Esp. Milena Resende - milenaresende@fimes.edu.br Visão Geral de Software O que é um software? Qual a função do software?
Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16
Informática Prof. Macêdo Firmino Representação da Informação Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16 Introdução Estamos acostumados a pensar nos computadores como mecanismos complexos,
for Information Interchange.
6 Memória: 6.1 Representação de Memória: Toda a informação com a qual um sistema computacional trabalha está, em algum nível, armazenada em um sistema de memória, guardando os dados em caráter temporário
Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)
1 UNIVERSIDADE DO CONTESTADO / UnC CAMPUS CONCÓRDIA/SC CURSO DE SISTEMAS DE INFORMAÇÃO Fundamentos em Informática (Sistemas de Numeração e Representação de Dados) (Apostila da disciplina elaborada pelo
PROGRAMAÇÃO PARA SERVIDOR INTRODUÇÃO EM SISTEMAS WEB. Prof. Dr. Daniel Caetano 2012-1
PROGRAMAÇÃO PARA SERVIDOR EM SISTEMAS WEB INTRODUÇÃO Prof. Dr. Daniel Caetano 2012-1 Visão Geral 1 2 3 4 Apresentação Programação Servidor? O que é Java? Grupos de Trabalho Apresentação Quem é o professor?
Introdução à Lógica de Programação
Introdução à Lógica de Programação Sistemas Numéricos As informações inseridas em um computador são traduzidos em dados, ou seja, em sinais que podem ser manipulados pelo computador. O computador trabalha
Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII
A ocorrência tamanho ASCII codificação de Huffman é um A Codificação método de compactação de Huffman caracteres (American e a variável codificação dos usado símbolos Standard para por cada muitas no Code
Programação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel Ambiente de Desenvolvimento Ambiente Para desenvolver aplicativos utilizando a linguagem JAVA precisamos preparar nosso ambiente realizando a
FBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
Aula teórica 3. Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java. Preparado por eng.
Aula teórica 3 Tema 3.Computadores e linguagens Linguagens de Programação Compilação e linkagem LP Java Preparado por eng.tatiana Kovalenko Linguagens de Programação Para escrever programas é necessário
AULA 02. 1. Uma linguagem de programação orientada a objetos
AULA 02 TECNOLOGIA JAVA O nome "Java" é usado para referir-se a 1. Uma linguagem de programação orientada a objetos 2. Uma coleção de APIs (classes, componentes, frameworks) para o desenvolvimento de aplicações
PROGRAMAÇÃO JAVA. Parte 1
PROGRAMAÇÃO JAVA Parte 1 O que é um programa? Um algoritmo (sequência de operações elementares - instruções) convertido para uma linguagem que possa ser executada por um computador Programa = Algoritmos
PARANÁ GOVERNO DO ESTADO
PARANÁ GOVERNO DO ESTADO COLÉGIO ESTADUAL DE PARANAVAÍ ENSINO FUNDAMENTAL, MÉDIO, NORMAL E PROFISSIONAL CURSO TÉCNICO EM INFORMÁTICA DISCIPLINA: INTERNET E PROGRAMAÇÃO WEB 1º MÓDULO SUBSEQUENTE MECANISMOS
Linguagens de. Aula 02. Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br
Linguagens de Programação III Aula 02 Profa Cristiane Koehler cristiane.koehler@canoas.ifrs.edu.br Linguagens de Programação Técnica de comunicação padronizada para enviar instruções a um computador. Assim
ENIAC. Introdução aos Computadores e à Programação (Noções Básicas)
ENIAC Introdução aos Computadores e à ção (Noções Básicas) Introdução aos Computadores e à ção (Noções Básicas) 1 Introdução aos Computadores e à ção (Noções Básicas) 2 O transistor foi inventado em 1947
Introdução aos Computadores e Programação
Introdução aos Computadores e Programação ISCTEM Agosto 2015 Docente: eng a Tatiana Kovalenko Assistente: dr. Joaquim Macuacua Site: www.icp-isctem.weebly.com Email: icp.isctem@gmail.com AULA TEÓRICA 1
Scalable Vector Graphics. Kadu Neves Rafael Rocha
Scalable Vector Graphics Kadu Neves Rafael Rocha Roteiro Introdução Vantagens do Uso do SVG Perfis SVG A especificaçào JSR-226 Exemplos Introdução Scalable Vector Graphics é um padrão aberto para descrever
J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS
J2ME PLATAFORMA DE DESENVOLVIMENTO JAVA PARA DISPOSITIVOS MÓVEIS Ana Paula Carrion 1, Késsia Rita da Costa Marchi 1, Jaime Willian Dias 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil anapaulacarrion@hotmail.com,
Universidade da Beira Interior Cursos: Engenharia Informática, Matemática /Informática e Ensino da Informática
Programação Orientada a Objectos - 28/29; P. Prata, P. Fazendeiro 2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que um programa em JAVA deve poder ser executado em qualquer tipo de computador
ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE
6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações e transações empresariais?
Representação de Informação -- Texto -- Representação de Informação. Representação de Caracteres
Representação de Informação -- Texto -- Sistemas Informáticos I, 2004/2005 (c) Paulo Marques SLIDES 5 Representação de Informação Como é que se representa texto? Como é que se representam imagens? Como
Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari amanda@fcav.unesp.br
Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari amanda@fcav.unesp.br São representações dos números de uma forma consistente. Apresenta uma grande quantidade de números úteis, dando a cada número
Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1
Laudon & Laudon Essentials of MIS, 5th Edition. Pg. 6.1 6 OBJETIVOS OBJETIVOS ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall Qual é a capacidade de processamento e armazenagem
Web site. Objetivos gerais. Introdução. http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados. Profa. Patrícia Dockhorn Costa
Web site http://www.inf.ufes.br/~pdcosta/ensino/2009-1-estruturas-de-dados Estruturas de Dados Aula 1: Introdução e conceitos básicos Profa. Patrícia Dockhorn Costa Email: pdcosta@inf.ufes.br 01/03/2010
Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2
Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro V. 2009-2 Aula 3 Virtualização de Sistemas 1. Conceito Virtualização pode ser definida
Virtualização. O conceito de VIRTUALIZAÇÃO
Virtualização A virtualização está presente tanto no desktop de um entusiasta pelo assunto quanto no ambiente de TI de uma infinidade de empresas das mais variadas áreas. Não se trata de "moda" ou mero
Você pode dizer isso de novo! Compressão de Texto
Atividade 3 Você pode dizer isso de novo! Compressão de Texto Sumário Desde que os computadores possuíam apenas uma quantidade limitada de espaço para armazenar informações, estes precisavam armazená-las
REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO
REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO Profs. M.Sc. Lucio M. Duarte e Ph.D. Avelino Zorzo 1 Faculdade de Informática - PUCRS 1 REPRESENTAÇÃO DE DADOS Acredita-se que a criação de números veio com
INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF
INTRODUÇÃO E CONFIGURAÇÃO DO PRIMEFACES MOBILE EM APLICAÇÕES JSF Guilherme Macedo, Jaime Willian Dias Universidade Paranaense (Unipar) Paranavaí PR Brasil guilhermemacedo28@gmail.com, jaime@unipar.br Resumo.
UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES
UMA BREVE INTRODUÇÃO AO ESTUDO E IMPLEMENTAÇÃO DE COMPILADORES 1 BRANCO; Guido Aparecido Junior, 2 TAMAE, Rodrigo Yoshio 1-Discente do Curso Sistemas de Informação FAEG/Garça 2-Docente do Curso Sistemas
Linguagem de Programação Introdução a Linguagem Java
Linguagem de Programação Introdução a Linguagem Java Rafael Silva Guimarães Instituto Federal do Espírito Santo Campus Cachoeiro de Itapemirim Definição A linguagem Java foi desenvolvida pela Sun Microsystems,
ARQUITETURA DE COMPUTADORES. Rogério Spindula Rosa
ARQUITETURA DE COMPUTADORES 1 Rogério Spindula Rosa 2 EXECUÇÃO DE PROGRAMAS PROGRAMA 3 4 INTRODUÇÃO Hoje é raro escrever um programa diretamente em linguagem de computador em virtude da enorme dificuldade
Compressão com perdas
Compressão com perdas Codificação por transformadas e o padrão JPEG Anderson L Menezes Leonardo G Tampelini Maxiwell S Garcia Introdução Um método é dito com perdas (lossy data) quando a informação obtida
Aula 01. - Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios. Algoritmo e Programação. Prof. Fábio Nelson.
- Bibliografia - Definições - Operadores - Criação de um algoritmo - Exercícios Aula 01 Slide 1 BIBLIOGRAFIA SCHILDT H. C Completo e Total, Makron Books. SP, 1997. Curso de linguagem C da UFMG. ZIVIANI,
Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da
Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a
Sistemas Numéricos bit / Byte BIT BYTE. Prof. Celso Candido ADS / REDES / ENGENHARIA
BIT BYTE 1 BIT / BYTE Toda informação introduzida em um computador precisa ser entendida pela máquina para que possa ser corretamente interpretada e processada. O computador armazena e movimenta as informações
Algoritmos e Programação I
Algoritmos e Programação I Introdução a Computação Prof. Fernando Maia da Mota mota.fernandomaia@gmail.com CPCX/UFMS Fernando Maia da Mota 1 Computadores são dispositivos que só sabem fazer um tipo de
CURSO DE PROGRAMAÇÃO EM JAVA
CURSO DE PROGRAMAÇÃO EM JAVA Introdução para Iniciantes Prof. M.Sc. Daniel Calife Índice 1 - A programação e a Linguagem Java. 1.1 1.2 1.3 1.4 Linguagens de Programação Java JDK IDE 2 - Criando o primeiro
Hashing Letícia Rodrigues Bueno
Hashing Letícia Rodrigues Bueno UFABC hash: Hashing (Tabelas de Dispersão): Introdução hash: Hashing (Tabelas de Dispersão): Introdução Hashing (Tabelas de Dispersão): Introdução hash: 1. fazer picadinho
ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE
Capítulo 6 ADMINISTRAÇÃO DOS RECURSOS DE HARDWARE E SOFTWARE 6.1 2003 by Prentice Hall OBJETIVOS Qual é a capacidade de processamento e armazenagem que sua organização precisa para administrar suas informações
Circuitos Digitais. Conteúdo. Sistema de Numeração e Códigos :: Conversões de Binário para Decimal SISTEMA DE NUMERAÇÃO E CÓDIGOS
Ciência da Computação Sistemas de Numeração e Conversões Prof. Sergio Ribeiro Material adaptado das aulas do Prof. José Maria da UFPI Conteúdo Conversões de binário para decimal. Conversões de decimal
Orientação a Objetos com Java
Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Aula 01: Começando com Java Objetivos: Compreender o que é Java, OO e suas vantagens; Entender os procedimentos para criação
UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C#
UMA ABORDAGEM COMPARATIVA ENTRE AS LINGUAGENS DE PROGRAMAÇÃO JAVA E C# Robson Bartelli¹, Wyllian Fressatti¹. ¹Universidade Paranaense (Unipar) Paranavaí PR Brasil robson_lpbartelli@yahoo.com.br,wyllian@unipar.br
Tecnologia e Sistemas de Informações Administração dos Recursos de Hardware e Software
Universidade Federal do Vale do São Francisco Tecnologia e Sistemas de Informações Administração dos Recursos de Hardware e Software Prof. Ricardo Argenton Ramos Aula 9 O que é Hardware e Software? Hardware
Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano
Programação Servidor para Sistemas Web 1 Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano Objetivo: Apresentar a teoria por trás dos padrões na construção de aplicações Web. INTRODUÇÃO Nas aulas anteriores
Visão Geral da Plataforma Java. Robinson Castilho - JUGMS castilho@bacarin.com.br http://www.jugms.com.br
Visão Geral da Plataforma Java Robinson Castilho - JUGMS castilho@bacarin.com.br http://www.jugms.com.br Agenda Apresentação Motivação para a palestra História do Java A máquina virtual Java (JVM) Java
Tópicos sobre Teoria da informação e codificação de fonte
Tópicos sobre Teoria da informação e codificação de fonte Processamento Digital de Sinal II Artur Ferreira e Paulo Marques ( Dezembro 2003 ) Tópicos a abordar 1. Teoria da informação Informação própria
MEMÓRIA. A memória do computador pode ser dividida em duas categorias:
Aula 11 Arquitetura de Computadores - 20/10/2008 Universidade do Contestado UnC/Mafra Sistemas de Informação Prof. Carlos Guerber MEMÓRIA Memória é um termo genérico usado para designar as partes do computador
Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza
Strings (Compressão) Estrutura de Dados II Jairo Francisco de Souza Compressão de Dados Objetivos Reduzir espaço de armazenagem Reduzir tempo de transmissão Muito importante Informação (e dados) tende
Estudo comparativo entre tecnologias Java: Applet e JWS.
Estudo comparativo entre tecnologias Java: Applet e JWS. Clara Aben-Athar B. Fernandes¹, Carlos Alberto P. Araújo¹ 1 Centro Universitário Luterano de Santarém Comunidade Evangélica Luterana (CEULS/ULBRA)
Nenhum dado é perdido durante o processo de compressão. Preserva todas as informações que permitirão a reconstrução exata da imagem. Reversível.
Compressão sem Perda Explora a redundância entre pixels na codificação. Nenhum dado é perdido durante o processo de compressão. Preserva todas as informações que permitirão a reconstrução exata da imagem.
Java Como Programar, 8/E
Capítulo 2 Introdução aos aplicativos Java Java Como Programar, 8/E (C) 2010 Pearson Education, Inc. Todos os 2.1 Introdução Programação de aplicativo Java. Utilize as ferramentas do JDK para compilar
Website para dispositivos Móveis. O futuro na palma de sua mão!
Website para dispositivos Móveis O futuro na palma de sua mão! Sites Mobile A Internet está sendo cada vez mais acessada através de telefones móveis e, como resultado, sites estão recebendo uma boa quantidade
Princípios de TI - Computadores. Sistema Operacional. CECOMP Colegiado de Engenharia da Computação. Prof. Fábio Nelson. Slide 1
Sistema Operacional Slide 1 Sistema Operacional Um conjunto de programas que se situa entre os softwares aplicativos e o hardware: Gerencia os recursos do computador (CPU, dispositivos periféricos). Estabelece
1 - Processamento de dados
Conceitos básicos sobre organização de computadores 2 1 - Processamento de dados O que é processamento? O que é dado? Dado é informação? Processamento é a manipulação das informações coletadas (dados).
LISTA DE EXERCÍCIOS. 1. Binário: Bit: Menor unidade de dados; dígito binário (0,1) Byte: Grupo de bits que representa um único caractere
1. Binário: LISTA DE EXERCÍCIOS Bit: Menor unidade de dados; dígito binário (0,1) Byte: Grupo de bits que representa um único caractere Campo: Grupo de palavras ou um número completo Registro: Grupo de
Admistração de Redes de Computadores (ARC)
Admistração de Redes de Computadores (ARC) Instituto Federal de Educação, Ciência e Tecnologia de Santa Catarina - Campus São José Prof. Glauco Cardozo glauco.cardozo@ifsc.edu.br RAID é a sigla para Redundant
Algoritmos e Programação _ Departamento de Informática
5 TIPOS DE DADOS Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. De um modo geral estas informações podem ser classificadas em dois tipos:
Informática Aplicada a Radiologia
Informática Aplicada a Radiologia Apostila: Imagem Digital parte I Prof. Rubens Freire Rosa Imagem na forma digital A representação de Imagens na forma digital nos permite capturar, armazenar e processar
Codificação da informação. Execução do programa. Codificação binária. Representação de inteiros positivos. Representação binária
Execução do a calcula-se determinada solução (output) para determinado problema (input) usando um a que é executado no dados do problema (informação de entrada) a solução (informação resultante) Codificação
11/3/2009. Software. Sistemas de Informação. Software. Software. A Construção de um programa de computador. A Construção de um programa de computador
Sistemas de Informação Prof. Anderson D. Moura Um programa de computador é composto por uma seqüência de instruções, que é interpretada e executada por um processador ou por uma máquina virtual. Em um
Introdução à Tecnologia Web HTML HyperText Markup Language XHTML extensible HyperText Markup Language Formatos de Imagens
IntroduçãoàTecnologiaWeb HTML HyperTextMarkupLanguage XHTML extensiblehypertextmarkuplanguage FormatosdeImagens ProfªMSc.ElizabeteMunzlinger ProfªMSc.ElizabeteMunzlinger FormatosdeImagens Índice 1 FORMATOS
Projetos. Universidade Federal do Espírito Santo - UFES. Mestrado em Informática 2004/1. O Projeto. 1. Introdução. 2.
Pg. 1 Universidade Federal do Espírito Santo - UFES Mestrado em Informática 2004/1 Projetos O Projeto O projeto tem um peso maior na sua nota final pois exigirá de você a utilização de diversas informações
Fabio Bento fbento@ifes.edu.br
Fabio Bento fbento@ifes.edu.br Eletrônica Digital Sistemas de Numeração e Códigos 1. Conversões de Binário para Decimal 2. Conversões de Decimal para Binário 3. Sistema de Numeração Hexadecimal 4. Código
DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC
DESENVOLVENDO APLICAÇÕES UTILIZANDO JAVASERVER FACES E MVC Felipe Moreira Decol Claro 1, Késsia Rita da Costa Marchi 1 1 Universidade Paranaense (Unipar) Paranavaí PR Brasil felipe4258@hotmail.com, kessia@unipar.br
B. Piropo. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo
B. Piropo Computadores usam internamente o sistema binário. O sistema binário adota apenas dois algarismos com os quais pode representar qualquer número. Portanto: Computadores só podem trabalhar com números.
2 Editoração Eletrônica
8 2 Editoração Eletrônica A década de 80 foi um marco na história da computação. Foi quando a maioria dos esforços dos desenvolvedores, tanto de equipamentos, quanto de programas, foram direcionados para
Programação Orientada a Objetos
Programação Orientada a Objetos Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução ao Paradigma OO
Segue-se o estudo da forma como os computadores armazenam e acedem às informações contidas na sua memória.
4. Variáveis Para a execução de qualquer tipo de programa o computador necessita de ter guardados os diferentes tipos de dados, já estudados. Esses dados estão guardados na sua memória. Segue-se o estudo
LÓGICA DE PROGRAMAÇÃO
Todos direitos reservados. Proibida a reprodução, mesmo parcial, por qualquer processo mecânico, eletrônico, reprográfico, etc., sem a autorização, por escrito, do(s) autor(es) e da editora. LÓGICA DE
REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade
REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade O conteúdo deste documento é baseado no livro Princípios Básicos de Arquitetura e Organização
O conjunto é composto por duas seções: o App Inventor Designer e o App Inventor Blocks Editor, cada uma com uma função específica.
Google App Inventor: o criador de apps para Android para quem não sabe programar Por Alexandre Guiss Fonte: www.tecmundo.com.br/11458-google-app-inventor-o-criador-de-apps-para-android-para-quem-naosabe-programar.htm
SISTEMAS DE UNIDADES DO COMPUTADOR
SISTEMAS DE UNIDADES DO COMPUTADOR Sistemas de unidades do computador Unidade de Armazenamento e informação Unidade de Frequência Unidade de Transmissão Unidade de velocidade de transmissão Unidade de
Algoritmos e Programação Aula 01 Introdução a Computação
Algoritmos e Programação Aula 01 Introdução a Computação Felipe S. L. G. Duarte Felipelageduarte+fatece@gmail.com Baseado no material do Prof. Luis Otavio Alvares e do Prof. Dr. Rodrigo Fernandes de Mello
Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de
Escola Secundária c/3º CEB José Macedo Fragateiro Curso Profissional de Nível Secundário Componente Técnica Disciplina de Sistemas Digitais e Arquitectura de Computadores 29/21 Módulo 1: Sistemas de Numeração
Sumário. 5COP096 Teoria da Computação Aula 8 Pesquisa em Memória Primária
5COP096 Teoria da Computação Aula 8 Prof. Dr. Sylvio Barbon Junior Sylvio Barbon Jr barbon@uel.br 1 Sumário 1) Introdução à Pesquisa em Memória Primária 2) Pesquisa Sequencial 3) Pesquisa Binária 4) Árvore
Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari
Profa. Dra. Amanda Liz Pacífico Manfrim Perticarrari http://www.youtube.com/watch?v=slhvnhh9iw0&feature=fvwrel São representações dos números de uma forma consistente. Apresenta uma grande quantidade de
Unidade IV ADMINISTRAÇÃO DE BANCO DE DADOS. Software livre se refere à liberdade dos usuários com relação ao software, mais precisamente:
ADMINISTRAÇÃO DE BANCO DE DADOS Unidade IV DEFINIR A MELHOR SOLUÇÃO DE BANCO DE DADOS PARA AS NECESSIDADES DA EMPRESA.1 O uso das tecnologias.1.1 O software livre 1 A tecnologia de banco de dados, assim