Anda di halaman 1dari 6

Programao Imperativa Aula 3

Sumrio

Sistemas de numerao Codificao de informao Unidades de informao: bits, bytes, kilobytes, megabytes, ... lgebra de Boole

Sistemas de numerao
O sistema de numerao que ns usamos o sistema decimal. Este sistema chamase decimal (ou de base 10) porque utiliza 10 smbolos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9. Com estes 10 smbolos somos capazes de construir nmeros tais como 747. O nmero 747 tem uma sequncia de 3 smbolos (ou algarismos), dois dos quais repetidos (dois setes). No entanto, o primeiro 7 tem um valor diferente do segundo 7. O primeiro vale 700 (7 centenas) mas o segundo j s vale 7 (7 unidades).
747 = 700 + 40 + 7 = 7*102 + 4*101 + 7*100

Resumindo, os algarismos tem um valor diferente consoante a sua posio. No sistema decimal, o peso dos algarismos so potncias de 10. Todos ns aprendemos isto na escola primria e nada disto novidade. Estamos to habituados a lidar com nmeros que acabamos por manipul-los muitas vezes por intuio. Agora imaginen o seguinte. Faz de conta que na escola primria vos tinham ensinado apenas os algarismos 0,1,2. Como que poderamos escrever os outros nmeros utilizando apenas estes trs smbolos?

http://intranet.deei.fct.ualg.pt/PI_flobo

Antes de o fazer vamos voltar outra vez ao sistema decimal e ver como que contamos os nmeros.
0 1 2 3 4 5 6 7 8 9 10 11 12 . . . 19 20 21 . . . 99 100 101 . . .

Como s temos 10 smbolos, quando um algarismo chega a 9, temos de fazer "0 e vai um..." Se na escola primria s nos tivessem ensinado 3 smbolos (0,1,2) seria a mesma coisa: quando o algarismo chegasse a 2 teramos de fazer "0 e vai um..."
0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 . . .

http://intranet.deei.fct.ualg.pt/PI_flobo

O conceito exactamente o mesmo que existe no sistema decimal. Por exemplo, o nmero 121 na base trs tem 3 smbolos mas o primeiro 1 tem um valor diferente do segundo 1. Com um sistema de base 3, o peso dos algarismos so potncias de 3.
121 = 1*32 + 2*31 + 1*30

isto , o nmero 121 na base 3 corresponde ao nmero 9+6+1=16 na base 10. As pessoas usam o sistema decimal mas podiam utilizar outro sistema qualquer. Alis, antes de se ter inventado os sistemas de numerao, o ser humano usava um sistema de numerao com um s smbolo (contava as coisas com pauzinhos). Os computadores utilizam o sistema de numerao binrio (tem apenas dois smbolos: 0 e 1). De seguida apresenta-se os nmeros de 0 a 20 na base 10, base 3, base 2 e na base 1.
base 10 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 . . . base 3 0 1 2 10 11 12 20 21 22 100 101 102 110 111 112 120 121 122 200 201 202 . . . base 2 0 1 10 11 100 101 110 111 1000 1001 1010 1011 1100 1101 1110 1111 10000 10001 10010 10011 10100 . . . base 1 (pauzinhos) | || ||| |||| ||||| |||||| ||||||| |||||||| ||||||||| |||||||||| ||||||||||| |||||||||||| ||||||||||||| |||||||||||||| ||||||||||||||| |||||||||||||||| ||||||||||||||||| |||||||||||||||||| ||||||||||||||||||| |||||||||||||||||||| . . .

http://intranet.deei.fct.ualg.pt/PI_flobo

Codificao de informao
Num computador, a informao sempre armazenada como uma sequncia de dgitos binrios. Como tal, toda a informao tem de ser codificada de alguma maneira numa sequncia de zeros e uns. Para os nmeros no negativos j vimos como que isso pode ser feito, mas tambm se pode fazer a mesma coisa para os nmeros negativos, nmeros reais, caracteres, imagens, e som. Por exemplo, os caracteres ('a','b','c', ...,'A','B','C,...,'+','-','?',...) costumam ser representados internamente nos computadores usando o cdigo ASCII (American Standard Code for Information Interchange). Cada caracter codificado usando 8 dgitos binrios. De seguida, apresenta-se o cdigo de alguns caracteres:
caracter -------. . . # $ % & ' ( ) * + , . / 0 1 2 3 . . . A B C . . . a b c . . . cdigo decimal ------. . . 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 . . . 65 66 67 . . . 97 98 99 . . . cdigo binrio --------. . . 00100011 00100100 00100101 00100110 00100111 00101000 00101001 00101010 00101011 00101100 00101101 00101110 00101111 00110000 00110001 00110010 00110011 . . . 01000001 01000010 01000011 . . . 01100001 01100010 01100011 . . .

O importante a reter que com uma sequncia de N dgitos binrios podemos representar 2 elevado a N coisas diferentes. Assim, com 8 dgitos binrios podemos representar 28=256 caracteres diferentes.

http://intranet.deei.fct.ualg.pt/PI_flobo

Unidades de informao: bits, bytes, kilobytes, megabytes, ...


Tal como existem unidades para medir pesos (miligrama, grama, kilograma,...) e distncias (milmetro, centmetro, decmetro, metro, ...), tambm existem unidades para medir informao (bit, byte, kilobyte, megabyte, gigabyte, terabyte, ...). Um bit a unidade de informao correspondente a um nico dgito binrio. Um byte so 8 bits. Um kilobyte so 210 = 1024 bytes. Um megabyte so 220 bytes (aproximadamente 1 milho de bytes). Um gigabyte so 230 bytes (aproximadamente 1 bilio de bytes). Um terabyte so 240 bytes (aproximadamente 1 trilio de bytes). Para simplificar, costume designar kilobyte por Kbyte ou simplesmente KB. O mesmo se passa para megabyte (MB) e gigabyte (GB) Para terem uma ordem de grandeza, uma disquete pode armazenar 1,4 MB e um disco de um computador que as pessoas tipicamente compram para ter em casa pode armazenar cerca de 6 GB. De agora em diante j no necessitam de ficar assustados quando ouvirem algum a falar sobre bits e bytes em conversas de caf.

lgebra de Boole
A programao de computadores requer um domnio completo de operadores lgicos: conjuno (e), disjuno (ou), negao (no). Os operandos so valores lgicos (verdadeiro ou falso). Representando 1 como verdadeiro e 0 como falso, podemos obter as seguintes tabelas de verdade para as funes e, ou e no (em ingls: and, or, not).
x --1 1 0 0 y --1 0 1 0 x e y ------1 0 0 0 | | | | | | | | x --1 1 0 0 y --1 0 1 0 x ou y -------1 1 1 0 | | | | | | | | x --1 0 no x ------0 1

Estas trs funes lgicas tambm so chamadas de funes booleanas (George Boole foi um cientista que inventou uma lgebra, chamada lgebra booleana, que tem como base estas trs funes). Com estas 3 funes podemos construir funes mais complexas. Exemplo:
f(x,y) = x e (no y)

http://intranet.deei.fct.ualg.pt/PI_flobo

A respectiva tabela de verdade :


x --1 1 0 0 y --1 0 1 0 no y ------0 1 0 1 x e (no y) ----------0 1 0 0

O que esta tabela de verdade indica que (x e (no y)) s verdade se x for verdade e y for falso. Reparem que x e y so proposies (coisas que podem ter o valor verdadeiro ou falso). Por exemplo, se
x --> o Joo gosta da Maria y --> a Ana gosta do Pedro

ento
no y --> a Ana no gosta do Pedro x e (no y) --> o Joo gosta da Maria e a Ana no gosta do Pedro

http://intranet.deei.fct.ualg.pt/PI_flobo

Anda mungkin juga menyukai