Professional Documents
Culture Documents
Programao 2009/2010
Engenharia Electrotcnica e de Computadores Engenharia Mecnica Engenharia de Energias
Programao 2009/2010
10/12/2009
Computador
Definio geral
Mquina ou conjunto de dispositivos mecnicos, electrnicos e electromecnicos, capazes de processar informao.
Dados de entrada
Dados de sada
Computador
Input (Input data) (Output data) Output
Programao
utad 2009/2010
Computador
O processamento de toda a informao num sistema informtico feito na base digital ou binria; esta base de representao numrica constituda por dois smbolos apenas: 0 (zero) e 1 (um). Em termos elctricos, geralmente o 0 representado por um nvel de tenso baixo e o 1 por um nvel de tenso alto. Todos os dispositivos ou circuitos digitais se regem por esta regra, desde o processador memria, discos, etc.. A unidade mnima de representao designada por BIT (BInary digiT) e pode representar 2 estados distintos (sim/no; ligado desligado; verdadeiro/falso). Neste contexto, um bit possui o valor 0 ou 1.
Programao
utad 2009/2010
10/12/2009
Computador
1 bit 1 dgito binrio (0 ou 1) 1 byte 8 bits 1 KB (kilobyte) 1024 bytes 1 MB (megabyte) 1024 KB 1 GB (gigabyte) 1024 MB 1 TB (terabyte) 1024 GB
bit o termo (binary digit) foi sugerido em 1949 por John Tukey, um pioneiro dos computadores. Segundo Tukey era melhor que as Alternativas bigit ou binit. byte o termo foi criado por Werner Buchholz em 1956 durante o desenho do computador IBM Strech. Inicialmente era um grupo de 1 a 6 bits, mas logo evoluiu para um grupo de 8 bits. A palavra uma mutao de bite (binary term), para no confundir com bit.
Programao
utad 2009/2010
Sistemas de Numerao
O computador - representao binria (base 2). O homem sistema de numerao decimal (base 10).
Programao
utad 2009/2010
10/12/2009
Sistemas de Numerao
Numa base b de um sistema de numerao, define-se o conjunto de b smbolos para representar cada valor. base 10 composta base 2 composta base 5 composta base 16 composta base b composta 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 0, 1 0, 1, 2, 3, 4 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F 0, 1, ..........., (b -1)
Programao
utad 2009/2010
Sistemas de Numerao
A representao de um nmero na prpria base sempre 10, uma vez que uma base b s composta por smbolos de 0 a b-1. 2 na base 2 5 na base 5 10 na base 10 16 na base 16 = 10 = 10 = 10 = 10
Utilizando um conjunto de n dgitos numa dada base b, podemos ter bn valores diferentes que vo desde 0 a bn-1. Base 10 com 3 dgitos Base 2 com 8 dgitos Base 3 com 4 dgitos 0 999 (1000 valores) 0 255 (256 valores) 0 80 (81 valores)
Programao
utad 2009/2010
10/12/2009
Sistemas de Numerao
Bases 2 5 00000 00001 00010 00011 00100 00101 00110 00111 01000 01001 01010 01011 01100 01101 01110 01111 10000 8 0 1 2 3 4 10 11 12 13 14 20 21 22 23 24 30 31 10 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 16 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 0 1 2 3 4 5 6 7 8 9 A B C D E F 10
Programao
utad 2009/2010
Sistemas de Numerao
Na representao de um nmero numa dada base, os dgitos possuem valor posicional que define o seu peso.
Nb = dn-1 * bn-1 + dn-2 * bn-2 + + d1 * b1 + d0 * b0 + d-1 * b-1 + d-2 * b-2 + + d-p+1 * b-p+1 + d-p * b-p
EX: N10 = 1998,35 = 1*103 + 9*102 + 9*101 + 8*100 + 3*10-1 + 5*10-2
Programao
10
utad 2009/2010
10/12/2009
Sistemas de Numerao
Converso de uma base b para uma base b. b b Nb = dn-1 dn-2 d1 d0 , d-1 d-2 d-p Nb' = dn-1 * bn-1 + dn-2 * bn-2 + + d1 * b1 + d0 * b0 + d-1 * b-1 + d-2 * b-2 + + d-p+1 * b-p+1 + d-p * b-p N2 = 110,11 N10 N10 = 1*22 + 1*21 + 0*20 + 1*2-1 + 1*2-2 = 6,75 N4 = 132 N5 N5 = 1*42 + 3*41 + 2*40 = 110
Programao
11
utad 2009/2010
Sistemas de Numerao
Converso de uma base b para a base 10. b 10 Nb = dn-1 dn-2 d1 d0 , d-1 d-2 d-p N10 = dn-1 * bn-1 + dn-2 * bn-2 + + d1 * b1 + d0 * b0 + d-1 * b-1 + d-2 * b-2 + + d-p+1 * b-p+1 + d-p * b-p N2 = 1010,011 N10 N10 = 1*23 + 0*22 + 1*21 + 0*20 + 0*2-1 + 1*2-2 + 1*2-3 = 10,375 N16 = ABC N10 2 + 11*161 + 12*160 = 2784 N10 = 10*16
Programao
12
utad 2009/2010
10/12/2009
Sistemas de Numerao
Converso da base 10 para uma base b. 10 b
Parte inteira: Divide-se o nmero e os sucessivos quocientes pela base b, guardando o resto de cada diviso. A representao do nmero na nova base dada pelo ltimo quociente e pela sequncia invertida dos restos. Exemplo: N10 = 10,375 N2 = 1010,??? N2 10 |2 0 5 |2 1 2 |2 0 1 |2 1 0
Programao
13
utad 2009/2010
Sistemas de Numerao
Converso da base 10 para uma base b. 10 b
Parte fraccionria: Multiplica-se sucessivamente a parte fraccionria, e as partes fraccionrias resultantes, pela nova base at que a parte fraccionria seja nula ou se tenha obtido uma preciso conveniente. Os sucessivos dgitos inteiros assim obtidos formam a representao da parte fraccionria na nova base. Exemplo: N10 = 10,375 N2 = 1010,011 N2 0,375*2 = 0,75 0,75*2 0,5*2 = 1,5 = 1,0
Programao
14
utad 2009/2010
10/12/2009
Sistemas de Numerao
Capacidade de numerao. Aproximao.
A converso da parte fraccionria muitas vezes infinita. Critrio: Admitindo para um nmero fraccionrio na base b um erro igual ao peso da posio menos significativa do nmero nessa base, bp, deve verificar-se para a posio menos significativa da representao da nova base, um erro b'p bp ou seja, p' p ln(b)/ln(b') para que se mantenha a aproximao. Exemplo: N10 = 0,468 N2 = 0,0111011111 (com a mesma aproximao) p = 10
Programao
15
utad 2009/2010
Sistemas de Numerao
Concluso
Podemos utilizar a base 10 como intermediria para converter um nmero de uma base b para uma base b e assim utilizar unicamente a aritmtica da base 10.
10
Programao
16
utad 2009/2010
10/12/2009
Sistemas de Numerao
Converso directa entre as bases 2, 8 e 16
Converso de binrio para octal/hexadecimal. Decompe-se o nmero a partir da virgula, nos dois sentidos, em grupos de trs/quatro dgitos, completando-se com zeros esquerda e direita quando necessrio. Substitui-se cada um dos grupos assim formados pelo respectivo smbolo octal/hexadecimal. Converso de octal/hexadecimal para binrio. Substitui-se cada algarismo octal/hexadecimal pela respectiva representao binria em trs/quatro dgitos. N2 N2 N8 N16 note-se que 23 = 8 note-se que 24 = 16
Programao
17
utad 2009/2010
Sistemas de Numerao
Converso de binrio para octal/hexadecimal
Exemplo:
N2 = 11010010,1111
N8 = 322,74
Programao
18
utad 2009/2010
10/12/2009
Sistemas de Numerao
Converso de octal/hexadecimal para binrio
Exemplo:
N8 = 322,74
N2 = 11010010,1111
Programao
19
utad 2009/2010
Sistemas de Numerao
Concluso: Nmeros inteiros
100110(2) = 1*25 + 0*24 + 0*23 + 1*22 + 1*21 + 0*20 = 32 + 4 + 2 = 38(10) Qual o maior nmero inteiro que, neste caso, seria possvel representar? E como representar nmeros inteiros negativos?
Programao
20
utad 2009/2010
10
10/12/2009
Sistemas de Numerao
Concluso: Nmeros inteiros
A representao dos nmeros inteiros exacta As operaes aritmticas no induzem em erro, excepto no caso de transbordo (overflow) A grandeza da palavra (n de bits) determina o intervalo dos nmeros inteiros representveis num dado computador.
Exemplo: [-32768 , 32767] para um computador de 16 bits
Programao
21
utad 2009/2010
Sistemas de Numerao
Concluso: Nmeros reais
101,11 (2) = 1*22 + 0*21 + 1*20 + 1*2-1 + 1*2-2 = 4 + 1 + 0,5 + 0,25 = 5,75(10) Representao em vrgula flutuante -234000000 = -234 x 106 = -2,34 x 108 +0,00025 = +25 x 10-5 = 0,25 x 10-3 SM x BE 0,1 < M < 1
expoente
(8 bits) (23 bits)
mantissa
Programao
22
utad 2009/2010
11
10/12/2009
Sistemas de Numerao
Concluso: Nmeros reais
A representao dos nmeros reais no exacta. O n de bits reservados para a mantissa determina o grau de preciso. A grandeza dos nmeros reais limitada. O n de bits do expoente
determina a grandeza mxima.
A variao dos nmeros reais representados no contnua. A densidade de valores representados decresce exponencialmente com a grandeza dos nmeros. Representao discreta e limitada do conjunto dos nmeros reais.
Programao
23
utad 2009/2010
Dados alfanumricos
BCD (6 bits) - 64 ASCII (7 bits)) - 128 EBCDIC (8 bits) - 256 ASCII (8 bits) - 256
American Standard Code for Information Interchange
Programao
24
utad 2009/2010
12
10/12/2009
Operadores lgicos
E (conjuno) OU (disjuno) ! (negao)
Precedncia: ! E OU
Negao (Not) Op. Res. V F F V
E lgico
Op1 (And) Res Op2 . V V V
Ou lgico
Op1 (Or) Res Op2 . V V V
V F F
F V F
F F F
V F F
F V F
V V F
Programao
25
utad 2009/2010
Operadores lgicos
Exemplo: x = 10; y=20; z=10
E lgico
Op1 (And) Res Op2 . V V V
Ou lgico
Op1 (Or) Res Op2 . V V V
V F F
F V F
F F F
V F F
F V F
V V F
Programao
26
utad 2009/2010
13
10/12/2009
Operadores relacionais
Comparam valores devolvendo um valor booleano (Verdade ou Falso)
Exemplos: x = 10; y=20; z=10
Condio x <= y x == y x != z
Programao
27
utad 2009/2010
14