Computação e Programação
1ª Aula de Problemas
2008-2009
Instituto Superior Técnico,
Dep. de Engenharia Mecânica - Sistemas
O Visual C++
‰Para Casa (se possível antes da aula!):
Veja o video e o screencast que se encontra na página
do Fénix da disciplina, na secção Aulas de Problemas.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
2
As bases decimal, binária e hexadecimal
O sistema decimal é um sistema de numeração de posicional que
utiliza a base dez, ou seja os seguintes dez algarismos:
{0,1,2,3,4,5,6,7,8,9}.
O sistema é posicional porque, da direita para a esquerda, cada algarismo
representa o número de unidades, dezenas, centenas, etc.
NOTA: A numeração romana não é um sistema de numeração posicional !
O sistema binário é um sistema de numeração posicional em que todas
as quantidades se representam utilizando como base o número dois,
utilizando como dígitos o zero (0) e o um (1).
O sistema hexadecimal é um sistema de numeração posicional que
representa os números em base 16, logo utiliza 16 símbolos:
{ 0, 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , A , B , C , D, E , F }
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
3
As bases decimal, binária e hexadecimal
Os computadores digitais trabalham internamente com dois níveis de
tensão (e.g. 0 / 5 Volts), pelo que o seu sistema de numeração natural é
o sistema binário.
A electrónica digital e a computação em geral, está baseada no sistema
binário, o qual permite representar por circuitos electrónicos digitais
(portas lógicas) os números, caractéres, realizar operações lógicas e
aritméticas.
Os programas de computadores são codificados sob forma binária e
armazenados nesse formato na memória volátil, nos discos rigídos, etc.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
4
As bases decimal, binária e hexadecimal
base decimal
3
2
1
0
5842
=
5
×
10
+
8
×
10
+
4
×
10
+
2
×
10
(
)10
base binária
conversão
base decimal
3
2
1
0
1001
=
1
×
2
+
0
×
2
+
0
×
2
+
1
×
2
= ( 9 )10
( )2
base hexadecimal
conversão
base decimal
( 4FA1)16 = 4 ×163 + 15 ×162 + 10 ×161 + 1×160 = ( 20385)10
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
5
As bases decimal, binária e hexadecimal
Conversão de um decimal inteiro num binário
(187 )10 = ( ? )2
dividendo divisor quociente resto
187
93
2
2
93
46
1
1
46
2
23
0
23
11
2
2
11
5
1
1
5
2
2
2
2
1
1
0
1
2
0
1
Bit menos significativo
Bit mais significativo
(187)10 =(10111011)2 =1×27 +0×26 +1×25 +1×24 +1×24 +0×23 +1×21 +1×20
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
6
As bases decimal, binária e hexadecimal
Conversão de um decimal inteiro num hexadecimal
dividendo divisor quociente
(1984 )10 = ( ? )16
resto
1984
16
124
0
124
16
7
12 ⇒C
7
16
0
7
Dígito menos significativo
Dígito mais significativo
(1984)10 = ( 7C0)16 = 7×162 +12×161 + 0×160
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
7
As bases decimal, binária e hexadecimal
Conversão de um hexadecimal num binário
Notar que cada dígito na base hexadecimal
pode ser convertido em 4 dígitos na base
binária (nota: 24=16)
( D )16 → (13)10 → (1101)2
( 5)16 → ( 5)10 → ( 0101)2
( A )16 → (10 )10 → (1010 )2
( F )16 → (15)10 → (1111)2
( D5AF )16 = ( ? )2
Nibble mais significativo
Nibble menos significativo
Byte mais sign. Byte menos sign.
( D5AF)16 = (1101 0101 1010 1111)2 =13×163 +5×162 +10×161 +15×160
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
8
As bases decimal, binária e hexadecimal
Conversão de um binário num hexadecimal
( 0110 1110 )2 = ( ? )16
Notar que cada 4 dígitos na base binária podem ser convertidos
num dígito na base hexadecimal (nota: 24=16).
Caso o número binário não possua um número de dígitos múltiplo
de 4, deve-se adicionar zeros à esquerda até que tal aconteça.
( 0110 )2 → ( 6 )10 → ( 6 )16
(1110 )2 → (14 )10 → ( E )16
Nibble mais significativo
Nibble menos significativo
( 0110 1110)2 = ( 6E)16 = 6×16 +14×16 = (110)10
1
Miguel Pedro Silva
Computação e Programação 2008 / 2009
0
Problemas
9
Aritmética binária
( 0110 )2 + ( 0011)2 = ( ? )2
Adição
0110
+ 0011
----------1001 ← soma
0110 ← transporte ("e vai um")
( 6 )10 + ( 3)10 = ( 9 )10
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
10
Aritmética binária
Subtracção
(101)2 − ( 011)2 = ( ? )2
101
- 011
----------010 ← subtracçao
010 ← transporte ("e vai um")
( 5)10 − ( 3)10 = ( 2 )10
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
11
Aritmética binária
Multiplicação e Divisão
A multiplicação e a divisão binária são semelhantes às mesmas
operações na base decimal.
Faça, em casa, os seguintes exercícios:
( 010111)2 × (11)2 = ( ? )2 = ( ? )16 = ( ? )10
( 010110 )2 ÷ (10 )2 = ( ? )2 = ( ? )16 = ( ? )10
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
12
A algebra de Boole
A algebra de Boole é uma estrutura algébrica, i.e., é uma colecção de
elementos e operações que obedecem a um conjunto de axiomas e
propriedades.
Em particular a algebra Booleana é um conjunto composto por:
•duas operações binárias: (a conjunção e disjunção, também
denominadas por E e OU, ou por . e +),
•uma operação unária (a negação, também representada por ~, ou por
um traço horizontal sobre uma expressão lógica),
•e dois elementos (o 0 e o 1, também denominados por FALSO e
VERDADE, ou F e V),
tal que para todos os elementos pertencentes ao conjunto os seguintes
axiomas e propriedades se verifiquem:
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
13
A algebra de Boole
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
14
Tabelas de verdade e portas lógicas
X=~A
Miguel Pedro Silva
X=~(A.B)
X=~(A+B)
X=A.B
Computação e Programação 2008 / 2009
X=A+B
Problemas
15
Tabelas de verdade e portas lógicas
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
16
Tabelas de verdade e portas lógicas
OU-EXCLUSIVO
ou
X= A ⊕ B
X
X
XOR
A⊕B
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
17
Tabelas de verdade e portas lógicas
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
18
Tabelas de verdade e portas lógicas
Para casa:
Determine a
saída do
circuito da
alinea b)
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
19
Um chip com 4 portas NAND
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
20
Um circuito multiplexer com 8 entradas
Para casa:
Construa a
tabela de
verdade
relativa ao
circuito e
determine o
objectivo do
circuito.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
21
Um circuito decoder 3-8
Para casa:
Construa a
tabela de
verdade
relativa ao
circuito e
determine o
objectivo do
circuito.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
22
Circuito comparador de 4 bits
Para casa:
Construa a
tabela de
verdade
relativa ao
circuito e
determine o
objectivo do
circuito.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
23
Circuito de um meio-somador
Para casa:
Preencha a tabela de verdade relativa
ao circuito.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
24
Circuito de um somador completo
Para casa:
Preencha a tabela de verdade relativa
ao circuito.
Miguel Pedro Silva
Computação e Programação 2008 / 2009
Problemas
25
Download

Enunciado da 1ª aula de problemas