Commit b919fff4 authored by Eduardo de Santana Medeiros Alexandre's avatar Eduardo de Santana Medeiros Alexandre
Browse files

Represetando texto

parent 97264942
== Representação da informação
Texto aqui aqui.
////
Ementa:
A ideia é apresentar o conceito de bit/byte e suas possibilidades de
representação de informação em um computador.
////
Você provavelmente já ouviu alguém falar que os computadores trabalham
internamente apenas com *0* e *1* (zero e um). Tudo o que você assiste,
escuta ou cria no computador, é processado internamente através de
sequências de zeros e uns. O computador ao ler estas sequências, consegue
interpreta-las e então apresenta as informações contidas nelas.
Na próxima seção iremos aprender o significado de *bit* e *byte*.
=== Conceito de bit e byte
Um *bit* ou dígito binário ('binary digit'), é a unidade básica que os
computadores e sistemas digitais utilizam para trabalhar, ele pode assumir
apenas dois valores *0* ou *1*. Um *byte* é uma sequência de 8 'bits'.
Fisicamente um bit pode ser representado de várias formas: através de dois
valores de voltagem aplicado num fio, ou diferentes direções de magnetização
em uma fita magnética, entre outras. O importante é que seja possível
identificar dois estados diferentes.
Na próxima seção iremos estudar o que podemos representar através dos bits.
[[possibilidades_de_representacao]]
=== Possibilidades de representação
Como um bit só pode assumir dois valores (*0* ou *1*), é possível
representar exatamente dois estados distintos. Na <<representacoes_de_bit>> nós
temos exemplos de como podemos associar significados aos valores do bit.
Em um sistema com trava eletrônica,
o valor *0* poderia indicar que a porta estava fechada, enquanto
*1* indicaria que a porta aberta. Em um sistema que registra o estado civil,
*0* poderia representar 'Solteiro', enquanto *1* seria 'Casado'.
[[representacoes_de_bit]]
.Representações com um bit.
[width="100%",options="header", frame="topbot", cols="1,3,3,3,7,6"]
|======================================
| Bit | Lâmpada| Porta | Sexo | Detector de movimento | Estado civil
| *0* |Desligada | Fechada | Masculino | Sem movimento | Solteiro
| *1* | Ligada| Aberta | Feminino | Com movimente | Casado
|======================================
Para representar mais de dois valores distintos nós precisamos de uma sequência
de bits maior. Na <<estado_civil_estendido>> nós temos exemplos de
representações utilizando sequências com *2* bits, obtendo *4* possibilidades.
Nesta caso, o estado civil 'Casado' é representado pela sequência *01*.
[[estado_civil_estendido]]
.Representações com dois bits.
[width="80%",options="header", frame="topbot", cols="^2,^2,^1"]
|======================================
| Sequencia de Bits | Lâmpada| Estado civil
| *00* | Desligada | Solteiro
| *01* | Ligada com intensidade *baixa* | Casado
| *10* | Ligada com intensidade *média* | Divorciado
| *11* | Ligada com intensidade *alta* | Viúvo
|======================================
[NOTE]
=================================
Observe que o número de possibilidades diferentes que podemos representar
depende do tamanho da sequência de bits que estamos utilizando,
mais precisamente 2^tamanho^.
[width="80%", frame="none", grid="none", cols="1,1,1,4"]
|=================================
| 2^1^ = 2 | 2^2^ = 4 | 2^3^ = 8 | 2^4^ = 16
| 2^5^ = 32 | 2^6^ = 64 | 2^7^ = 128 | 2^8^ = 256 possibilidades (um byte)
|=================================
=================================
[IMPORTANT]
========================================================================
*O byte é a menor unidade de armazenamento utilizada pelos
computadores*. Isto quer dizer que nós nunca conseguiremos
salvar um único bit, no mínimo uma sequência contendo 8 bits.
========================================================================
// Adicionar referência explicando o porquê do armazenamento mínimo de 8 bits?
Nas seções seguintes, você perceberá a importância do byte na representação
de diversas mídias.
==== Texto ====
Nesta seção nós iremos aprender como o computador representa texto. Nós já vimos
(<<possibilidades_de_representacao>>) que tudo no computador é tratado como
bits. Para representar os caracteres de um texto é necessário apenas fazer uma
tabela, com o caractere e a sequência binária correspondente.
O ASCII é o padrão de representação de caracteres mais conhecido.
Em <<tabela_ascii>> é apresentado um extrato da tabela ASCII,
onde cada caractere possui sua representação em bits.
[[tabela_ascii]]
.Extrato da tabela ASCII
[width="100%", frame="none", grid="all", cols="^1,^2,^1,^2,^1,^2,^1,^2,^1,^2", options="header"]
|=================================
| Letra | Byte | Letra | Byte | Letra | Byte | Letra | Byte | Núm | Byte
| a | 01100001 | A | 01000001 | n | 01101110 | N | 01001110 | 0 | 00110000
| b | 01100010 | B | 01000010 | o | 01101111 | O | 01001111 | 1 | 00110001
| c | 01100011 | C | 01000011 | p | 01110000 | P | 01010000 | 2 | 00110010
| d | 01100100 | D | 01000100 | q | 01110001 | Q | 01010001 | 3 | 00110011
| e | 01100101 | E | 01000101 | r | 01110010 | R | 01010010 | 4 | 00110100
| f | 01100110 | F | 01100110 | s | 01110011 | S | 01010011 | 5 | 00110101
| g | 01100111 | G | 01100111 | t | 01110100 | T | 01010100 | 6 | 00110110
| h | 01101000 | H | 01101000 | u | 01110101 | U | 01010101 | 7 | 00110111
| i | 01101001 | I | 01101001 | v | 01110110 | V | 01010110 | 8 | 00111000
| j | 01101010 | J | 01101010 | w | 01110111 | W | 01010111 | 9 | 00111001
| k | 01101011 | K | 01101011 | x | 01111000 | X | 01011000 | |
| l | 01101100 | L | 01001100 | y | 01111001 | Y | 01011001 | |
| m | 01101101 | M | 01001101 | z | 01111010 | Z | 01011010 | |
|=================================
IMPORTANT: O termo *codificar* significa traduzir um conteúdo para a sua
representação binária.
Talvez você tenha percebido a ausência dos 'caracteres especiais', como o 'ç' e
'æ', além dos caracteres acentuados como 'à' e 'é'. Isto porque o padrão ASCII
foi criado para 'codificar' as mensagens escritas no idioma inglês, que não
possuem tais caracteres. Por esta razão, existem vários outros sistemas de
codificação para melhor representar as mensagens do idioma que se deseja
utilizar, alguns exemplos são: *Unicode*, *UTF-8* e *ISO 8859-1* (padrão
latino-americano).
TIP: Faça um teste! Abra um editor de texto como o 'bloco de notas', 'gedit'
ou 'kate' (não use o 'Word'). Digite `abc' no documento em branco e salve-o.
Em seguida, verifique o tamanho do arquivo. Você perceberá que a unidade
de tamanho de arquivo é byte.
Agora vamos aprender como imagens podem ser representadas através de bits.
==== Imagem ====
texto.
// Tons de cinza.
==== Música ====
texto.
=== Representação através da escrita
.Representação através da escrita.
image::images/dado-representacao.png[scaledwidth="50%"]
image::images/01.png[scaledwidth="50%"]
=== Representação numérica
texto.
=== Representação binária
Texto aqui aqui.
=== Representação de formas geométricas
Texto aqui aqui.
//TODO
Em matemática estamos habituados a representar 'formas' através
de suas propriedades. Abaixo termos 'uma' representação de 5 formas:
a) forma=quadrado, lado=3, posição x=0,y=0
b) forma=circulo, raio=3, posição x=10,y=20
c) forma=retangulo, base=40, altura=30, posição x=100,y=300
d) forma=reta pontos={(0,0), (1,1)}
e) forma=segmento-de-reta pontos={(0,0), (1,1)}
=== Representando utilizando apenas letras e dígitos
Agora vamos representar, novamente, as mesmas formas, mas com a limitação
de utilizar apenas letras ou números. Uma representação poderia ser:
a) quadradolado3x0y0
b) circuloraio3x10y20
c) retangulobase40altura30x100y300
d) retap1x0p1y0p2x1p2y1
e) segmentoderetap1x0p1y0p2x1p2y1
Mostrar por exemplo que para representar desenhos bastaria algo do tipo:
NOTE: Percebam que a restrição é utilizar apenas letras ou números, não podemos
mais utilizar espaço, vírgulas ou simbolos. Alguém poderia escrever uma
representação diferente em que a letra 's' representaria o espaço,
'v' a vírgula e 'i' o igual, isto também formaria uma representação válida.
forma=quadrado, lado=3, posição x=0,y=0
=== Minimizando o tamanho da representação
forma=circulo, raio=3, posição x=10,y=20
Imaginermos agora que, além das restrições anteriores, teremos que representar
as formas utilizando *menos caracteres*. Com esta nova restrição, nossa
representação poderia ser:
forma=retangulo, base=40, altura=30, posição x=100,y=300
a) q3x0y0
b) c3x10y20
c) g40a30x100y300
d) rx0y0x1y1
e) sx0y0x1y1
Em a) 'q' representa um quadrado. O lado é especificado pelo primeiro número
após a letra 'q', neste caso lado=3. Os números seguidos após x e y se referem
a posição do quadado.
Em b) 'c' representa um círculo. O raio é especificado pelo primeiro número
após a letra 'c', neste caso 'raio=3'. Os números seguidos após x e y se referem
a posição do círculo.
Em c) 'g' representa a forma retângulo. A base é especificado pelo primeiro
número após a letra 'g', neste caso 'base=40'. A letra 'a', após a base deve
ser reguida do número que representa a altura, 'altura=30'. Os números seguidos
após x e y se referem a posição do retângulo.
Em d) 'r' representa uma reta. E 'x0y0' e 'x1y1' representam os pontos
{(0,0), (1,1)}.
Em d) 's' representa um segmento de reta. E 'x0y0' e 'x1y1' representam
os pontos {(0,0), (1,1)}.
TIP: Tenta representar outras formas utilizando estas mesmas restrições.
=== Representando utilizando apenas números
x.
=== Representação de imagens vetoriais
Texto aqui aqui.
......@@ -53,16 +270,19 @@ image::images/jogo-damas.png[]
B.B.B.B.
.B.B.B.B
B.B.B.B.
........
........
.P.P.P.P
B...B.B.
...B....
..P.P...
...P...P
P.P.P.P.
.P.P.P.P
...............................................................................
=== Display digital
texto.
=== Representação de fotografias
......@@ -104,3 +324,10 @@ Instrumento e voz.
// - utilizando as letras e números
// - através de um vetor com as peças
// - um carácter, pois são necessários apenas 64x3 bits
////
De que outras formas você poderia representar as peças no tabuleiro?
Como você poderia representar as peças no tabuleiro utilizando bits?
////
......@@ -8,13 +8,13 @@ Gilberto Farias
:ascii-ids:
include::prefacio.txt[]
include::prefacio.asc[]
// Partes
// Nome da Parte
// =================
include::capitulos/historia-do-computador.txt[]
include::capitulos/representacao-da-informacao.txt[]
include::capitulos/historia-do-computador.asc[]
include::capitulos/representacao-da-informacao.asc[]
......
all : pdf
pdf: indice-remissivo.txt livro.txt prefacio.txt capitulos/*.txt
:sys ~/ambiente/asciidoc-8.6.8/a2x.py -v -f pdf -a docinfo1 --dblatex-opts "-P insert.xref.page.number=yes" livro.txt
pdf: indice-remissivo.asc livro.asc prefacio.asc capitulos/*.asc
:sys ~/ambiente/asciidoc-8.6.8/a2x.py -v -f pdf --icons -a docinfo1 --dblatex-opts "-P insert.xref.page.number=yes" livro.asc
:sys rm -v -f *.png
:sys grep -n -E "TODO|FIXME" -r capitulos/ --color
spell: capitulos/*.txt
:sys hunspell -D -p hunspell_pt_BR capitulos/*.txt
pdf2: indice-remissivo.asc livro.asc prefacio.asc capitulos/*.asc
:sys ~/ambiente/asciidoc-8.6.8/a2x.py -v -f pdf -a docinfo1 --dblatex-opts "-P insert.xref.page.number=yes" --xsltproc-opts "--param geometry.options 'a4paper,inner=2.2in'" livro.asc
:sys rm -v -f *.png
:sys grep -n -E "TODO|FIXME" -r capitulos/ --color
spell: capitulos/*.asc
:sys hunspell -D -p hunspell_pt_BR capitulos/*.asc
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment