Unicode no mundo real

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

Download "Unicode no mundo real"

Transcrição

1 Unicode no mundo real Normalização do conteúdo na WEB Cláudio Valente SAPO 13 de Novembro de 2007

2 Conteúdos 1 Introdução 2 Encodings mais comuns Relações 3 Unicode 4 Exemplos de codificações 5 Utilização prática Problemas 6 Código exemplificativo Convenções Encoding ambíguo em pedidos Vários encodings no mesmo documento 7 Conclusões Objecções ao Unicode Resumo

3 Conceitos Fundamentais Humanos comunicam com símbolos (letras e ideográficos) Computadores não têm a noção de símbolo, apenas números Para processar texto num computador é necessário transformar caracteres em números Um encoding consiste na atribuição de um número a cada caracter pertencente a um conjunto

4 Conceitos Fundamentais Humanos comunicam com símbolos (letras e ideográficos) Computadores não têm a noção de símbolo, apenas números Para processar texto num computador é necessário transformar caracteres em números Um encoding consiste na atribuição de um número a cada caracter pertencente a um conjunto

5 ASCII O encoding mais conhecido e usado na prática é o ASCII (American Standard Code for Information Interchange) Caracteres não acentuados da Europa Ocidental e do Norte Associa a cada caracter um número entre 0 e 127 Cada caracter ASCII pode ser representado por um byte Na realidade apenas são necessários 7 bits Exemplo, o caracter A é representado pelo número = =

6 ASCII O encoding mais conhecido e usado na prática é o ASCII (American Standard Code for Information Interchange) Caracteres não acentuados da Europa Ocidental e do Norte Associa a cada caracter um número entre 0 e 127 Cada caracter ASCII pode ser representado por um byte Na realidade apenas são necessários 7 bits Exemplo, o caracter A é representado pelo número = =

7 Encodings utilizados em Português Língua Portuguesa utiliza caracteres acentuados ASCII é insuficiente Os encodings mais utilizados em Português são: ISO (latin-1) ISO Windows-1252 UTF-8 UTF-16

8 Encodings utilizados em Português Língua Portuguesa utiliza caracteres acentuados ASCII é insuficiente Os encodings mais utilizados em Português são: ISO (latin-1) ISO Windows-1252 UTF-8 UTF-16

9 Relações entre Encodings ASCII

10 Relações entre Encodings ASCII àáãç ISO Extensão mínima com caracteres acentuados das ĺınguas latinas

11 Relações entre Encodings e ISO ASCII àáãç ISO e Windows-1252 O símbolo e não faz parte do latin-1 e para o incluir foram criadas várias extensões incompatíveis

12 Relações entre Encodings e ISO ASCII àáãç tudo(?) ISO Unicode e UTF-( ) Windows-1252 O Unicode é suposto conter todos os caracteres considerados em ĺınguas usadas actualmente bem como muitas já mortas.

13 O que é o Unicode Representa conteúdo escrito em (quase) qualquer sistema humano que exista A cada caracter (grifo) associa um valor numérico Define formas de processar dados tais como: Classes de caracteres (alfa-numéricos, pontuação, símbolos) Comparações entre caracteres (ordenação alfabética) Direccionalidade do texto

14 O que é o Unicode Representa conteúdo escrito em (quase) qualquer sistema humano que exista A cada caracter (grifo) associa um valor numérico Define formas de processar dados tais como: Classes de caracteres (alfa-numéricos, pontuação, símbolos) Comparações entre caracteres (ordenação alfabética) Direccionalidade do texto

15 Características técnicas do Unicode Define aproximadamente caracteres É uma extensão do latin-1. Todos os caracteres portugueses têm a mesma representação em unicode Não é possível continuar a representar cada caracter por um byte É necessário fazer corresponder caracteres unicode a uma sequência de bytes UTF-32 UTF-16 UTF-8 UTF-7

16 Características técnicas do Unicode Define aproximadamente caracteres É uma extensão do latin-1. Todos os caracteres portugueses têm a mesma representação em unicode Não é possível continuar a representar cada caracter por um byte É necessário fazer corresponder caracteres unicode a uma sequência de bytes UTF-32 UTF-16 UTF-8 UTF-7

17 Características técnicas do Unicode Define aproximadamente caracteres É uma extensão do latin-1. Todos os caracteres portugueses têm a mesma representação em unicode Não é possível continuar a representar cada caracter por um byte É necessário fazer corresponder caracteres unicode a uma sequência de bytes UTF-32 UTF-16 UTF-8 UTF-7

18 UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequência de caracteres unicode uma sequência de bytes Vantagens Conteúdo ASCII fica inalterado Independente de ordenação de bytes (little-endian vs big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necessários vários bytes por caracter Não é 7bit safe O acesso aleatório a um caracter não é possível

19 UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequência de caracteres unicode uma sequência de bytes Vantagens Conteúdo ASCII fica inalterado Independente de ordenação de bytes (little-endian vs big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necessários vários bytes por caracter Não é 7bit safe O acesso aleatório a um caracter não é possível

20 UTF-8 UTF = Unicode Transformation Format Faz corresponder a uma sequência de caracteres unicode uma sequência de bytes Vantagens Conteúdo ASCII fica inalterado Independente de ordenação de bytes (little-endian vs big-endian) Codifica todos os caracteres Unicode Desvantagens Podem ser necessários vários bytes por caracter Não é 7bit safe O acesso aleatório a um caracter não é possível

21 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ASCII não suporta acentos nem e

22 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO suporta acentos, mas não o e

23 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO suporta acentos, mas não o e

24 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC ISO e Windows-1252 suportam e de forma incompatível

25 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC O Unicode é extensão do ISO

26 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC UTF-8 necessita de um número variável de bytes

27 Exemplos de codificações alfabeto latino com diacríticos e e A Ã Ç e ASCII A N.D. N.D. N.D. ISO A [C3] [C7] N.D. ISO A [C3] [C7] [A4] Windows-1252 A [C3] [C7] [80] UTF-8 A [C3][83] [C3][87] [E2][82][AC] UTF-16LE A[00] [C3][00] [C7][00] [AC][20] UTF-7 A +AMM- +AMc- +IKw- Unicode U+41 U+C3 U+C7 U+20AC UTF-16 e UTF-32 podem ser Little Endian ou Big Endian

28 Exemplos de codificações símbolos comuns 1 2 œ... ASCII N.D. N.D. N.D. N.D. ISO [BD] N.D. N.D. N.D. ISO N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 ISO não é estritamente uma extensão de ISO

29 Exemplos de codificações símbolos comuns 1 2 œ... ASCII N.D. N.D. N.D. N.D. ISO [BD] N.D. N.D. N.D. ISO N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 smart quotes e reticências definidas no Windows-1252 mas não no ISO (5)

30 Exemplos de codificações símbolos comuns 1 2 œ... ASCII N.D. N.D. N.D. N.D. ISO [BD] N.D. N.D. N.D. ISO N.D. [BD] N.D. N.D. Windows-1252 [BD] [9C] [93] [85] UTF-8 [C2][BD] [C5][93] [E2][80][9C] [E2][80][A6] UTF-16LE [BD][00] S[01] [1C][20] [26][20] UTF-7 +AL0- +AVM- +IBw- +ICY- Unicode U+BD U+153 U+201C U+2026 Unicode codifica todos os caracteres (para efeitos práticos)

31 HTML Identificar o conteúdo da página como estando codificado em UTF-8 nos cabeçalhos de HTTP. Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> Forms. O encoding deve ser especificado sendo o da página por omissão <form accept-charset="utf-8">... </form>

32 HTML Identificar o conteúdo da página como estando codificado em UTF-8 nos cabeçalhos de HTTP. Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> Forms. O encoding deve ser especificado sendo o da página por omissão <form accept-charset="utf-8">... </form>

33 HTML Identificar o conteúdo da página como estando codificado em UTF-8 nos cabeçalhos de HTTP. Content-Type: text/html; charset=utf-8 Identificar no documento. <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> Forms. O encoding deve ser especificado sendo o da página por omissão <form accept-charset="utf-8">... </form>

34 Parâmetros em Unicode Quando um pedido GET ou POST é efectuado, os parâmetros devem ser transformados (uri escape). Infelizmente o conteúdo associado aos bytes não é transmitido no pedido obrigando a: Forçar um determinado encoding (parâmetro accept-charset no form) Utilizar argumentos heurísticos Assumir que está em UTF-8 Caso não seja um conjunto de caracteres válido assumir latin-1 ou melhor Windows-1252 Começa a ser comum enviar caracteres fora do ASCII como %uxxxx onde os quatro X representam o código unicode em hexadecimal

35 Parâmetros em Unicode Quando um pedido GET ou POST é efectuado, os parâmetros devem ser transformados (uri escape). Infelizmente o conteúdo associado aos bytes não é transmitido no pedido obrigando a: Forçar um determinado encoding (parâmetro accept-charset no form) Utilizar argumentos heurísticos Assumir que está em UTF-8 Caso não seja um conjunto de caracteres válido assumir latin-1 ou melhor Windows-1252 Começa a ser comum enviar caracteres fora do ASCII como %uxxxx onde os quatro X representam o código unicode em hexadecimal

36 Parâmetros em Unicode Quando um pedido GET ou POST é efectuado, os parâmetros devem ser transformados (uri escape). Infelizmente o conteúdo associado aos bytes não é transmitido no pedido obrigando a: Forçar um determinado encoding (parâmetro accept-charset no form) Utilizar argumentos heurísticos Assumir que está em UTF-8 Caso não seja um conjunto de caracteres válido assumir latin-1 ou melhor Windows-1252 Começa a ser comum enviar caracteres fora do ASCII como %uxxxx onde os quatro X representam o código unicode em hexadecimal

37 Erros comuns Páginas sem qualquer informação de encoding Conteúdo latin-1 misturado com UTF-8 GET iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position Conteúdo UTF-8 em páginas latin-1. Página que se identifica como estando em latin-1 mas que contém por exemplo Clà udio (deveria ser Cláudio).

38 Erros comuns Páginas sem qualquer informação de encoding Conteúdo latin-1 misturado com UTF-8 GET iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position Conteúdo UTF-8 em páginas latin-1. Página que se identifica como estando em latin-1 mas que contém por exemplo Clà udio (deveria ser Cláudio).

39 Erros comuns Páginas sem qualquer informação de encoding Conteúdo latin-1 misturado com UTF-8 GET iconv -f utf-8 -t utf-8 >/dev/null iconv: illegal input sequence at position Conteúdo UTF-8 em páginas latin-1. Página que se identifica como estando em latin-1 mas que contém por exemplo Clà udio (deveria ser Cláudio).

40 Código mínimo Uma string usual é apenas um conjunto de bytes > s= Cl \ x e 1 u d i o Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( Cl \ x e 1 u d i o, l a t i n 1 ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( Cl \ xc3 \ xa1udio, utf 8 ) Ou dizer logo que se trata duma string unicode > u3 = u Cl \ u00e1udio u1, u2 e u3 representam a mesma sequência de grifos. > p r i n t u1==u2 and u2==u3 True

41 Código mínimo Uma string usual é apenas um conjunto de bytes > s= Cl \ x e 1 u d i o Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( Cl \ x e 1 u d i o, l a t i n 1 ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( Cl \ xc3 \ xa1udio, utf 8 ) Ou dizer logo que se trata duma string unicode > u3 = u Cl \ u00e1udio u1, u2 e u3 representam a mesma sequência de grifos. > p r i n t u1==u2 and u2==u3 True

42 Código mínimo Uma string usual é apenas um conjunto de bytes > s= Cl \ x e 1 u d i o Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( Cl \ x e 1 u d i o, l a t i n 1 ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( Cl \ xc3 \ xa1udio, utf 8 ) Ou dizer logo que se trata duma string unicode > u3 = u Cl \ u00e1udio u1, u2 e u3 representam a mesma sequência de grifos. > p r i n t u1==u2 and u2==u3 True

43 Código mínimo Uma string usual é apenas um conjunto de bytes > s= Cl \ x e 1 u d i o Para interpretarmos como caracteres temos de especificar o encoding > u1 = u n i c o d e ( Cl \ x e 1 u d i o, l a t i n 1 ) Mas podemos fazer de forma equivalente > u2 = u n i c o d e ( Cl \ xc3 \ xa1udio, utf 8 ) Ou dizer logo que se trata duma string unicode > u3 = u Cl \ u00e1udio u1, u2 e u3 representam a mesma sequência de grifos. > p r i n t u1==u2 and u2==u3 True

44 Argumentos em encoding ambíguo Supor que nome contém o valor de um argumento de um pedido GET depois de url decoded. Só sabemos uma sequência de bytes mas o utilizador realmente pretendeu introduzir o nome Cláudio. > nome1 = Cl \ x e 1 u d i o > nome2 = Cl \ xc3 \ xa1udio Como detectar heuristicamente o que o utilizador pretende?

45 Argumentos em encoding ambíguo Supor que nome contém o valor de um argumento de um pedido GET depois de url decoded. Só sabemos uma sequência de bytes mas o utilizador realmente pretendeu introduzir o nome Cláudio. > nome1 = Cl \ x e 1 u d i o > nome2 = Cl \ xc3 \ xa1udio Como detectar heuristicamente o que o utilizador pretende?

46 Resolução Definir a função: def c l e a n a r g s ( s ) : t r y : return u n i c o d e ( s, utf 8 ) except UnicodeDecodeError : return u n i c o d e ( s, windows 1252 ) O resultado destas função em ambas alternativas tem como resultado uma string unicode que representa realmente o nome pretendido. > c l e a n a r g s ( nome1 ) u Cl \ x e 1 u d i o > c l e a n a r g s ( nome2 ) u Cl \ x e 1 u d i o

47 Resolução Definir a função: def c l e a n a r g s ( s ) : t r y : return u n i c o d e ( s, utf 8 ) except UnicodeDecodeError : return u n i c o d e ( s, windows 1252 ) O resultado destas função em ambas alternativas tem como resultado uma string unicode que representa realmente o nome pretendido. > c l e a n a r g s ( nome1 ) u Cl \ x e 1 u d i o > c l e a n a r g s ( nome2 ) u Cl \ x e 1 u d i o

48 Como tratar conteúdo com texto em vários encodings Bastantes páginas na Web em Português têm conteúdo identificado como estando em UTF-8, mas contendo caracteres representados em windows-1252 Outras identificam-se como estando em latin-1 ou windows-1252 mas contêm palavras codificadas em UTF-8 Uma solução de compromisso consiste em: Assumir que todo o conteúdo está em UTF-8 Quando um dado conjunto de bytes não corresponder a UTF-8 válido assumir que esses bytes representam caracteres em windows-1252 ou latin-1

49 Como tratar conteúdo com texto em vários encodings Bastantes páginas na Web em Português têm conteúdo identificado como estando em UTF-8, mas contendo caracteres representados em windows-1252 Outras identificam-se como estando em latin-1 ou windows-1252 mas contêm palavras codificadas em UTF-8 Uma solução de compromisso consiste em: Assumir que todo o conteúdo está em UTF-8 Quando um dado conjunto de bytes não corresponder a UTF-8 válido assumir que esses bytes representam caracteres em windows-1252 ou latin-1

50 Implementação import codecs def h a n d l e e r r o r s ( ex ) : s = ex. o b j e c t [ ex. s t a r t ] r e t = u n i c o d e ( s, windows 1252 ) return ( r e t, ex. s t a r t +1) codecs. r e g i s t e r e r r o r ( c l e a n, h a n d l e e r r o r s ) Utilizar da seguinte forma: > i n p u t = Cl \ x e 1 u d i o Cl \ xc3 \ xa1udio > u n i c o d e ( input, utf 8, c l e a n ) u Cl \ x e 1 u d i o Cl \ x e 1 u d i o > p r i n t u n i c o d e ( input, utf 8, c l e a n ) Cláudio Cláudio

51 Implementação import codecs def h a n d l e e r r o r s ( ex ) : s = ex. o b j e c t [ ex. s t a r t ] r e t = u n i c o d e ( s, windows 1252 ) return ( r e t, ex. s t a r t +1) codecs. r e g i s t e r e r r o r ( c l e a n, h a n d l e e r r o r s ) Utilizar da seguinte forma: > i n p u t = Cl \ x e 1 u d i o Cl \ xc3 \ xa1udio > u n i c o d e ( input, utf 8, c l e a n ) u Cl \ x e 1 u d i o Cl \ x e 1 u d i o > p r i n t u n i c o d e ( input, utf 8, c l e a n ) Cláudio Cláudio

52 Isto é complicar sem necessidade Basta trabalhar com bytes sempre em UTF-8 Esta abordagem não funciona. Como já vimos nome2 representa o nome Cláudio em UTF-8. Imaginemos que pretendemos imprimir este nome em maiúsculas. > nome2. upper ( ) Cl \ xc3 \ xa1udio > p r i n t nome2. upper ( ) CLáUDIO Não é o resultado pretendido. > c l e a n a r g s ( nome2 ). upper ( ) u CL\xc1UDIO > p r i n t c l e a n a r g s ( nome2 ). upper ( ) CLÁUDIO

53 Isto é complicar sem necessidade Basta trabalhar com bytes sempre em UTF-8 Esta abordagem não funciona. Como já vimos nome2 representa o nome Cláudio em UTF-8. Imaginemos que pretendemos imprimir este nome em maiúsculas. > nome2. upper ( ) Cl \ xc3 \ xa1udio > p r i n t nome2. upper ( ) CLáUDIO Não é o resultado pretendido. > c l e a n a r g s ( nome2 ). upper ( ) u CL\xc1UDIO > p r i n t c l e a n a r g s ( nome2 ). upper ( ) CLÁUDIO

54 Resumo sequências de bytes não determinam caracteres univocamente sempre que possível trabalhar com strings unicode e especificar o encoding de bytes em páginas WEB a WEB está progressivamente a migrar para UTF-8 durante a transição é publicado diverso tipo de conteúdo com erros o problema de interpretar o que se pretende transmitir vs o que é realmente transmitido necessita de abordagens heurísticas

55 Referências Consórcio Unicode Joel on Software Informação mínima que todo o programador deve saber Characters and encodings jkorpela/chars/index.html

56 Apêndice Python Suporta Unicode out of the box Tipos distintos para strings unicode e arrays de bytes (str, unicode) Assume encodings por omissão e converte bytes para strings unicode Suporte bem integrado com a maior parte dos módulos

57 Apêndice Perl Suporta Unicode out of the box (Encode, perluni) Utiliza o mesmo tipo para arrays de bytes e strings unicode Distinção feita implicitamente (bit marca strings unicode) Suporte no motor de regular expressions Abordagem impĺıcita resulta em comportamentos com nuances por vezes pouco óbvias

58 Apêndice JAVA e C# Suporta Unicode out of the box Tipos distintos para strings unicode e arrays de bytes Integração total com todos os módulos

59 Apêndice PHP5 Não suporta unicode de forma integrada Não existem strings unicode, apenas bytes É possível utilizar extensões (iconv, mbstring) Todo o processamento é feito obrigatoriamente utilizando bytes, tipicamente UTF-8 Biblioteca insuficiente para processar strings multibyte

60 Apêndice PHP6 Promete: Integrar Unicode Tipos distintos para strings unicode e arrays de bytes binary string (default encoding) unicode Permitir desligar suporte unicode (INI) Integrar unicode na maior parte das funções built-in

2008 2009 2 o semestre

2008 2009 2 o semestre Computadores e Programação Helmut Wolters 4/3/2009 p. 1/12 Computadores e Programação 2008 2009 2 o semestre Aula 4/3/2009 Helmut Wolters Computadores e Programação Helmut Wolters 4/3/2009 p. 2/12 Representação

Leia mais

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

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

Leia mais

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano 2012-1

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano 2012-1 ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE Prof. Dr. Daniel Caetano 2012-1 Objetivos Compreender o que é notação em ponto flutuante Compreender a

Leia mais

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções)

Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução. (procedimentos e funções) Aulas anteriores... Formulação adequada do problema Identificação das variáveis de entrada; resultados/variáveis de saída e método ou solução Definição do algoritmo Método de decomposição hierárquica utilizando

Leia mais

No princípio havia a tabela

No princípio havia a tabela PROGRAMAÇÃO Cheryl lee - www.sxc.hu Organização de conjuntos de caracteres com Perl Sopa de letrinhas Quando caracteres estranhos aparecem no código ou nos dados de um programa, os programadores Perl precisam

Leia mais

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

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

Leia mais

Fabio Bento fbento@ifes.edu.br

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

Leia mais

SCC-210 Algoritmos Avançados

SCC-210 Algoritmos Avançados SCC-210 Algoritmos Avançados Capítulo 3 Strings João Luís G. Rosa Strings & Códigos de Caracteres Caracteres são representados por códigos. Códigos de caracteres: Mapeamento símbolo (em um dado alfabeto)

Leia mais

Introdução à Lógica de Programação

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

Leia mais

Fundamentos em Informática (Sistemas de Numeração e Representação de Dados)

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

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos

Leia mais

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )...

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )... Caracteres Conceitos Tipo de dados simples (char), cujo valor é a codificação numérica de um caracter; Caracteres literais são representados por aspas simples, como em A e a ; Variáveis do tipo char podem

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer?

Aula 2 Variáveis. Precisamos armazenar os tipos de dados da aula anterior (inteiros, reais, literais e lógicos) em memória. Como fazer? Aula 2 Variáveis 1. Introdução Computadores precisam manipular informações. Por conseguinte, precisam armazená-las em sua memória. Para isso, usamos a abstração de variáveis. 2. Sistemas de numeração Explicar

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Introdução à Informática

Introdução à Informática Introdução à Informática Sistemas Numéricos e Armazenamento de dados Escola Superior de Tecnologia e Gestão Instituto Politécnico de Bragança Outubro de 2006 Sistema de base dez O sistema de numeração

Leia mais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM Conceitos Básicos 1-1 BITs e BYTEs Bit = BInary digit = vale sempre 0 ou elemento básico de informação Byte = 8 bits processados em paralelo (ao mesmo tempo) Word = n bytes (depende do processador em questão)

Leia mais

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados

Informática Aplicada à Química. Sistemas de Numeração Representação de Dados Informática Aplicada à Química Sistemas de Numeração Representação de Dados Representando Dados Bit Byte Palavra Bit (b) Abreviação de binary digit (dígito binário). Dois valores possíveis: e 1. Nunca

Leia mais

Codificação da informação. Execução do programa. Codificação binária. Representação de inteiros positivos. Representação binária

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

Leia mais

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos

Internet e protocolos web. A Internet é uma rede descentralizada de recursos computacionais. Topologia tem de fornecer caminhos alternativos Internet e protocolos web A Internet é uma rede descentralizada de recursos computacionais Tolerante a falhas (no single point of failure) Topologia tem de fornecer caminhos alternativos entre 2 computadores

Leia mais

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 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

Leia mais

PROGRAMADOR JAVA. Aula 0 20 semanas. Instrutor : Léo Billi Email : leo.billi@gmail.com

PROGRAMADOR JAVA. Aula 0 20 semanas. Instrutor : Léo Billi Email : leo.billi@gmail.com Aula 0 20 semanas Instrutor : Léo Billi Email : leo.billi@gmail.com Bem-vindos Para que não sabe, quer dizer iniciantes. Noobs Informática A arte de processar dados A História A História A arte de processar

Leia mais

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA. Representação de Dados Tipos de dados: Caracteres (letras, números n e símbolos). s Lógicos. Inteiros. Ponto flutuante: Notações decimais: BCD. A declaração de uma variável vel define o seu tipo. O tipo

Leia mais

Binário e Hexadecimal. Como contam os computadores

Binário e Hexadecimal. Como contam os computadores Binário e Hexadecimal Como contam os computadores Bit Unidade básica de medida dos computadores é o bit (binary digit), intoduzida por Claude Shannon, na sua obra Teoria Matemática da Computação, de 1948.

Leia mais

08 de Outubro de 2014. Send It. Codificação de SMS

08 de Outubro de 2014. Send It. Codificação de SMS 08 de Outubro de 2014 Send It Codificação de SMS Índice 1. Versões... 4 2. Conteúdo da mensagem... 5 3. Pagamento em função do texto da mensagem... 6 4. Caracteres padrão (1 carácter de comprimento)...

Leia mais

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos

Sistema de Numeração e Códigos. CPCX UFMS Prof. Renato F. dos Santos Sistema de Numeração e Códigos CPCX UFMS Prof. Renato F. dos Santos 2.4 Código BCD (Binary-coded decimal) Quando um número decimal é representado pelo seu número binário equivalente, dizemos que é uma

Leia mais

Capítulo 9: Codificação. Prof.: Roberto Franciscatto

Capítulo 9: Codificação. Prof.: Roberto Franciscatto Capítulo 9: Codificação Prof.: Roberto Franciscatto Conceituação Um computador só pode identificar a informação através de sua capacidade de distinguir entre dois estados; Algo está imantado num sentido

Leia mais

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for

1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através da codificação ASCII (American Standard Code for FICHA DE TRABALHO Nº 1 MÓDULO: EQUIPAMENTOS ACTIVOS DE REDES DATA: / 03 / 2010 FORMADOR: EDUARDO SEQUEIRA FICHA LABORATORIAL 1. Os caracteres (p.ex: a, A, 8,!, +, etc) são representados no computador através

Leia mais

Sistemas de Numeração

Sistemas de Numeração Sistemas de Numeração Um numeral é um símbolo ou grupo de símbolos que representa um número em um determinado instante da evolução do homem. Tem-se que, numa determinada escrita ou época, os numerais diferenciaram-se

Leia mais

Algoritmos e Estruturas de Dados I (DCC/003) 2013/2. Introdução à Programação de Computadores. Aula - Tópico 1

Algoritmos e Estruturas de Dados I (DCC/003) 2013/2. Introdução à Programação de Computadores. Aula - Tópico 1 Algoritmos e Estruturas de Dados I (DCC/003) 2013/2 Introdução à Programação de Computadores Aula - Tópico 1 1 Por que usar um computador? Como conversar com um computador? 0101001001010100101011 0010100110101011111010

Leia mais

Redes de Computadores

Redes de Computadores Redes de Computadores Curso de Eng. Informática Curso de Eng. de Electrónica e Computadores Aula Prática Bit stuffing, CRC e IP 1 Introdução 1.1 Framing O nível de ligação de dados utiliza o serviço fornecido

Leia mais

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados.

Capítulo 2. Numéricos e Códigos. 2011 Pearson Prentice Hall. Todos os direitos reservados. Capítulo 2 Sistemas Numéricos e Códigos slide 1 Os temas apresentados nesse capítulo são: Conversão entre sistemas numéricos. Decimal, binário, hexadecimal. Contagem hexadecimal. Representação de números

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes Codificação Principais códigos utilizados Computadores e Equipamentos de Comunicações Digitais trabalham com representação e códigos. A codificação binária de sinais é largamente utilizada em Sistemas

Leia mais

Adriano Mauro Cansian 2

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

Leia mais

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara Carga Horária: 60h Representação da Informação Um dispositivo eletrônico, armazena e movimenta as informações internamente

Leia mais

Introdução à Computação

Introdução à Computação Introdução à Computação Licenciatura em Computação Prof. Adriano Avelar Site: www.adrianoavelar.com Email: eam.avelar@gmail.com Representação da informação Ao final deste capítulo você deverá ser capaz

Leia mais

Organização de Computadores 1

Organização de Computadores 1 Organização de Computadores 1 5 CONJUNTO DE INSTRUÇÕES Prof. Luiz Gustavo A. Martins Introdução O que é um conjunto de instruções? Coleção completa das instruções que a CPU é capaz de executar (entende).

Leia mais

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura.

O protocolo MODBUS define também o tipo diálogo entre os equipamentos, define por exemplo quem pode enviar dados e em que altura. Universidade de Aveiro Departamento de Engenharia Mecânica Informática Industrial 2010/2011 5 PROTOCOLO DE COMUNICAÇÃO MODBUS 5.1 Protocolo de comunicação MODBUS Este protocolo foi proposto em 1979 pela

Leia mais

Módulo 1 Introdução às Redes

Módulo 1 Introdução às Redes CCNA 1 Conceitos Básicos de Redes Módulo 1 Introdução às Redes Ligação à Internet Ligação à Internet Uma ligação à Internet pode ser dividida em: ligação física; ligação lógica; aplicação. Ligação física

Leia mais

SISTEMAS DIGITAIS SISTEMAS DE NUMERAÇÃO E CÓDIGOS

SISTEMAS DIGITAIS SISTEMAS DE NUMERAÇÃO E CÓDIGOS SISTEMAS DE NUMERAÇÃO E CÓDIGOS SISTEMAS DE NUMERAÇÃO E CÓDIGOS - 2 SUMÁRIO: SISTEMAS DE NUMERAÇÃO DEFINIÇÃO DE SISTEMA DE NUMERAÇÃO EQUIVALENTE DECIMAL OPERAÇÕES ARITMÉTICAS BÁSICAS MUDANÇA DE SISTEMA

Leia mais

Programação de Computadores

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

Leia mais

Unidade 5: Sistemas de Representação

Unidade 5: Sistemas de Representação Arquitetura e Organização de Computadores Atualização: 9/8/ Unidade 5: Sistemas de Representação Números de Ponto Flutuante IEEE 754/8 e Caracteres ASCII Prof. Daniel Caetano Objetivo: Compreender a representação

Leia mais

Figure 2 - Nós folhas de uma árvore binária representando caracteres ASCII

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

Leia mais

Programação para Internet Flávio de Oliveira Silva, M.Sc.

Programação para Internet Flávio de Oliveira Silva, M.Sc. INTERNET Grande conjunto de redes de computadores interligadas pelo mundo. Começou como uma rede interligando Universidades no E.U.A A partir de 1993 a Internet começou a ser explorada comercialmente.

Leia mais

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00 Fundamentos da Programação 32 A. Conceito Variáveis contém dados: VIII. VARIÁVEIS de entrada que o computador precisa manipular; de saída que o computador precisa imprimir; e temporários, utilizados de

Leia mais

Genericamente qualquer sistema de numeração pode ser caracterizado por:

Genericamente qualquer sistema de numeração pode ser caracterizado por: SISTEMAS NUMÉRICOS 1 Genericamente qualquer sistema de numeração pode ser caracterizado por: Sistema de Base N - Possui N dígitos e o maior é (N-1) - Qualquer número maior que (N-1) pode ser expresso como

Leia mais

Hashing. Estruturas de Dados. Motivação

Hashing. Estruturas de Dados. Motivação Estruturas de Dados Hashing Prof. Ricardo J. G. B. Campello Parte deste material é baseado em adaptações e extensões de slides disponíveis em http://ww3.datastructures.net (Goodrich & Tamassia). Motivação

Leia mais

Aula 7. Codificadores e Decodificadores. SEL 0414 - Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Aula 7. Codificadores e Decodificadores. SEL 0414 - Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira Aula 7 Codificadores e Decodificadores SEL 44 - Sistemas Digitais Prof. Dr. Marcelo Andrade da Costa Vieira Códigos/Decodificadores CÓDIGOS: l Conjunto organizado de sinais em que a informação é transformada

Leia mais

Informática. Prof. Macêdo Firmino. Macêdo Firmino (IFRN) Informática Setembro de 2011 1 / 16

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,

Leia mais

O protocolo HTTP. O que é o protocolo HTTP?

O protocolo HTTP. O que é o protocolo HTTP? O protocolo HTTP Você aprenderá: O que é e como funciona o protocolo HTTP. Quais são as partes de um pedido HTTP. Quais são as partes de um a resposta HTTP. IIS - HTTP 1 O que é o protocolo HTTP? Hyper

Leia mais

PRIMEIRO BIMESTRE MATERIAL PARA ESTUDO. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA.

PRIMEIRO BIMESTRE MATERIAL PARA ESTUDO. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA. Universidade Tuiuti do Paraná Faculdade de Ciências Exatas Introdução a Computação - CSTA Sistema Binário MATERIAL PARA ESTUDO PRIMEIRO BIMESTRE Para o leigo um computador, a primeira vista, pode parecer

Leia mais

Python: Funções. Claudio Esperança

Python: Funções. Claudio Esperança Python: Funções Claudio Esperança Abstração É uma técnica de programação que nos permite pensar num problema em diversos níveis A idéia é que quando estamos pensando num problema macroscopicamente, não

Leia mais

Introdução à linguagem Python. Slides extras

Introdução à linguagem Python. Slides extras Introdução à linguagem Python Slides extras 1 Linguagem de uso geral Internet: YouTube, Globo.com, Bitly, Mozilla... Computação gráfica: Disney, ILM, AutoDesk... Desktop: Dropbox, BitTorrent, OpenOffice...

Leia mais

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo:

Para testar seu primeiro código utilizando PHP, abra um editor de texto (bloco de notas no Windows) e digite o código abaixo: Disciplina: Tópicos Especiais em TI PHP Este material foi produzido com base nos livros e documentos citados abaixo, que possuem direitos autorais sobre o conteúdo. Favor adquiri-los para dar continuidade

Leia mais

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com

SISTEMAS DIGITAIS Prof. Ricardo Rodrigues Barcelar http://www.ricardobarcelar.com - Aula 8 - Antes de começar o estudo sobre decodificadores, o que é bastante semelhante ao que já vimos anteriormente é necessário relembrarmos alguns conceitos sobre códigos binários. 1. Códigos Binários

Leia mais

Arquitetura de Computadores Universidade Guarulhos Prof. Erwin A. Uhlmann

Arquitetura de Computadores Universidade Guarulhos Prof. Erwin A. Uhlmann Arquitetura de Computadores Universidade Guarulhos Prof. Erwin A. Uhlmann Guarulhos PLANEJAMENTO EMENTA: Sistemas numéricos. Aritmética binária. Memórias, unidades centrais de processamento, entrada e

Leia mais

Andrique Amorim www.andrix.com.br professor@andrix.com.br INTRODUÇÃO A INFORMÁTICA

Andrique Amorim www.andrix.com.br professor@andrix.com.br INTRODUÇÃO A INFORMÁTICA Andrique Amorim www.andrix.com.br professor@andrix.com.br INTRODUÇÃO A INFORMÁTICA INTRODUÇÃO A INFORMÁTICA Andrique Amorim EMENTA Arquitetura básica de um computador; Sistemas Operacionais; Redes de Computadores;

Leia mais

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros

Aula 04. Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Aula 04 Código BCD, Códigos Alfa-numéricos e Sistemas de Detecção de Erros Prof. Otávio Gomes otavio.gomes@ifmg.edu.br sites.google.com/a/ifmg.edu.br/otavio-gomes/ 1 Bytes A maioria dos microcomputadores

Leia mais

REPRESENTAÇÃO DE DADOS E SISTEMAS DE NUMERAÇÃO

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

Leia mais

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira

Algoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem

Leia mais

Bem-vindo ao XML. Apostila de XML

Bem-vindo ao XML. Apostila de XML Bem-vindo ao XML Bem-vindo a Extensible Markup Language, XML, a linguagem para tratamento de dados em uma forma compacta, fácil de gerenciar sem mencionar o mais poderoso avanço visto na Internet nos últimos

Leia mais

Refinando a Formatação de Saída

Refinando a Formatação de Saída Capítulo 7: Entrada e saída Existem várias maneiras de apresentar a saída de um programa; os dados podem ser exibidos ou impressos em forma legível para seres humanos, ou escritos em arquivos para uso

Leia mais

Características do PHP. Começando a programar

Características do PHP. Começando a programar PHP Introdução Olá pessoal. Desculpe o atraso na publicação da aula. Pude perceber pelas respostas (poucas) ao fórum que a realização da atividade do módulo I foi relativamente tranquila. Assistam ao vídeo

Leia mais

Algoritmos e Programação Aula 01 Introdução a Computação

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

Leia mais

FCA - EDITORA DE INFORMÁTICA I

FCA - EDITORA DE INFORMÁTICA I 1 O PHP e a World Wide Web... XXXIII 1.1 Introdução... XXXIII 1.2 Breve apresentação do PHP... 1 1.3 Acesso a documentos na web... 1 1.4 HTML estático versus HTML dinâmico... 2 1.5 PHP, o que é?... 4 1.6

Leia mais

Strings. COM10615-Tópicos Especiais em Programação I edmar.kampke@ufes.br 2014-II

Strings. COM10615-Tópicos Especiais em Programação I edmar.kampke@ufes.br 2014-II Strings COM10615-Tópicos Especiais em Programação I edmar.kampke@ufes.br Introdução Uma estrutura de dados fundamental Crescente Importância Aplicações: Busca do Google Genoma Humano 2 Caracteres Codificação

Leia mais

centena dezena unidade 10 2 10 1 10 0 275 2 7 5 200 + 70 + 5 275

centena dezena unidade 10 2 10 1 10 0 275 2 7 5 200 + 70 + 5 275 A. Sistemas de Numeração. Para se entender a linguagem do computador (o Código de Máquina), é necessário conhecer um pouco da teoria dos números. Não é uma tarefa tão difícil quanto pode parecer. Sabendo-se

Leia mais

Introdução à Linguagem

Introdução à Linguagem Introdução à Linguagem Curso de Nivelamento do PPGMNE Janeiro / 2011 Juliano J. Scremin jjscremin@jjscremin.t5.com.br Um pouco de história Um pouco de história: Nascimento do Python Um pouco de história:

Leia mais

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária

Curso: Técnico de Informática Disciplina: Redes de Computadores. 1- Apresentação Binária 1- Apresentação Binária Os computadores funcionam e armazenam dados mediante a utilização de chaves eletrônicas que são LIGADAS ou DESLIGADAS. Os computadores só entendem e utilizam dados existentes neste

Leia mais

1 - Processamento de dados

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).

Leia mais

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala

Programação para a Internet. Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala Programação para a Internet Prof. M.Sc. Sílvio Bacalá Jr sbacala@gmail.com www.facom.ufu.br/~bacala A plataforma WEB Baseada em HTTP (RFC 2068) Protocolo simples de transferência de arquivos Sem estado

Leia mais

Unidade 1 - Objectivos das Tecnologias Informáticas

Unidade 1 - Objectivos das Tecnologias Informáticas Unidade 1 - Objectivos das Tecnologias Informáticas Reconhecer conceitos básicosb Utilizar os conceitos básicos, b aplicando-os os a problemas concretos Compreender a evolução desses conceitos Conhecer

Leia mais

Fundamentos de Microinformática. Ricardo José Cabeça de Souza 2010 Fundamentos 3

Fundamentos de Microinformática. Ricardo José Cabeça de Souza 2010 Fundamentos 3 Fundamentos de Microinformática Ricardo José Cabeça de Souza 2010 Fundamentos 3 Outros Componentes Porta Paralela Porta Serial Porta PS/2 (Personal System 2) Porta USB (Universal Serial Bus) Porta S-Vídeo

Leia mais

Conceitos de extensões Joomla!

Conceitos de extensões Joomla! capítulo 1 Conceitos de extensões Joomla! Entendendo o que é extensão Extensão pode ser entendida como uma pequena aplicação desenvolvida com regras de construção estabelecidas pelo ambiente Joomla!. É

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Paradigmas de Programação

Paradigmas de Programação Paradigmas de Programação Tipos de Dados Aula 5 Prof.: Edilberto M. Silva http://www.edilms.eti.br Prof. Edilberto Silva / edilms.eti.br Tipos de Dados Sistema de tipos Tipos de Dados e Domínios Métodos

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação. A Linguagem C

Universidade Federal de Uberlândia Faculdade de Computação. A Linguagem C Universidade Federal de Uberlândia Faculdade de Computação A Linguagem C Prof. Renato Pimentel 1 Programação Quando queremos criar ou desenvolver um software para realizar determinado tipo de processamento

Leia mais

FCA - EDITORA DE INFORMÁTICA I

FCA - EDITORA DE INFORMÁTICA I 1 O PHP e a World Wide Web... 1 1.1 Introdução... 1 1.2 Breve apresentação do PHP... 1 1.3 Acesso a documentos na web... 2 1.4 HTML estático versus HTML dinâmico... 3 1.5 PHP, o que é?... 6 1.6 O PHP e

Leia mais

B. Piropo. Arquitetura, Organização e Hardware de Computadores - Prof. B. Piropo

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.

Leia mais

Representação de Dados

Representação de Dados Representação de Dados Propriedades Domínio - Valores que um tipo de dado pode assumir; Gama de variação - N.º de valores que um dado pode assumir; Precisão Distância entre dois valores consecutivos Operações

Leia mais

Projeto e Desenvolvimento de Algoritmos

Projeto e Desenvolvimento de Algoritmos Projeto e Desenvolvimento de Algoritmos Variáveis Adriano Cruz e Jonas Knopman Índice Objetivos Introdução Modelo de Memória Armazenamento de Dados Numéricos Dados Inteiros Dados Reais Armazenamento de

Leia mais

CODIFICADORES / DECODIFICADORES

CODIFICADORES / DECODIFICADORES CODIFICADORES / DECODIFICADORES Uma grande parte dos sistemas digitais trabalha com os níveis lógicos (bits) representando informações que são codificadas em bits. Exemplo: computador trabalha com informações

Leia mais

Representação de Dados (inteiros não negativos)

Representação de Dados (inteiros não negativos) Representação de Dados (inteiros não negativos) 1 Memória Armazena instruções e dados durante a execução de um programa A memória principal pode ser vista como um array de bytes, cada um com seu endereço

Leia mais

Representação de Informação -- Texto -- Representação de Informação. Representação de Caracteres

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

Leia mais

PHP: Cookies e Sessões

PHP: Cookies e Sessões PHP: Cookies e Sessões Programação de Servidores Marx Gomes Van der Linden Protocolo HTTP O protocolo HTTP não tem conceito de sessões. Modelo simples de Requisição e Resposta. http://marx.vanderlinden.com.br/

Leia mais

Programa da disciplina, i metodologia de ensino, avaliações e bibliografia básica. Objetivos da Disciplina

Programa da disciplina, i metodologia de ensino, avaliações e bibliografia básica. Objetivos da Disciplina Circuitos Digitais Cap. 1 Prof. José Maria P. de Menezes Jr. Circuitos Digitais Tópicos Digitais I- Engenharia Elétrica -UFPI Programa da disciplina, i metodologia de ensino, avaliações e bibliografia

Leia mais

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web

Programação Web com PHP. Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Programação Web com PHP Prof. Wylliams Barbosa Santos wylliamss@gmail.com Optativa IV Projetos de Sistemas Web Agenda O que é PHP? O que da pra fazer com PHP? Como a web funciona? Onde, quando e por que

Leia mais

1 O PHP E A WORLD WIDE WEB

1 O PHP E A WORLD WIDE WEB 1 O PHP E A WORLD WIDE WEB... 1 1.1 Introdução... 1 1.2 Breve apresentação do PHP... 2 1.3 Acesso a documentos na Web... 2 1.4 HTML estático versus HTML dinâmico... 3 1.5 PHP o que é?... 5 1.6 O PHP e

Leia mais

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt

Programação para Internet I. 2. O protocolo HTTP. Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Programação para Internet I 2. O protocolo HTTP Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Protocolos Conjunto de regras que define o modo como aplicações informáticas comunicam entre si. Permite

Leia mais

Eletrônica Digital para Instrumentação. Herman Lima Jr. hlima@cbpf.br

Eletrônica Digital para Instrumentação. Herman Lima Jr. hlima@cbpf.br G03 Eletrônica Digital para Instrumentação Prof: hlima@cbpf.br Centro Brasileiro de Pesquisas Físicas Ministério da Ciência, Tecnologia e Inovação (MCTI) Organização do curso Introdução à eletrônica digital

Leia mais

Unidades de medida Prof a. Sediane Carmem Lunardi Hernandes

Unidades de medida Prof a. Sediane Carmem Lunardi Hernandes Unidades de medida Prof a. Sediane Carmem Lunardi Hernandes 1 1. A informação no computador Computador só entende 0s e 1s, ou seja, cada sinal elétrico que o computador processa é chamado de BIT - BInary

Leia mais

Programação de Computadores

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

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

Aula 01 Introdução à Informática. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br

Aula 01 Introdução à Informática. Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br Aula 01 Introdução à Informática Prof. Bruno Gomes bruno.gomes@ifrn.edu.br www.profbrunogomes.com.br Agenda da Aula Introdução à Informática; Dados x Informação; O Computador (Hardware); Unidades de medida.

Leia mais

Conceitos Básicos de C

Conceitos Básicos de C Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,

Leia mais

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00

www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 www.f2b.com.br 18/04/2006 Micropagamento F2b Web Services Web rev 00 Controle de Revisões Micropagamento F2b Web Services/Web 18/04/2006 Revisão Data Descrição 00 17/04/2006 Emissão inicial. www.f2b.com.br

Leia mais

Introdução à Programação 2006/07. Computadores e Programação

Introdução à Programação 2006/07. Computadores e Programação Introdução à Programação 2006/07 Computadores e Programação Objectivos da Aula Noção de computador. Organização Interna de um Computador Noção de Sistema Operativo. Representação digital de informação

Leia mais