L
ÓGICA
DE
P
ROGRAMAÇÃO
Unidade 01 –
Lógica de Programação
e Computadores
Daniel Caetano
Revisado e adaptado por: Raphael Gomide
Objetivos
• Conhecer intuitivamente o conceito de lógica • Entender o papel da lógica e da
programação na Engenharia • Entender o funcionamento básico de um computador
Quais tipos de problemas
envolvem Lógica?
Problemas que Envolvem Lógica
• Observe a figura abaixo e resolva o problema
?
Problemas que Envolvem Lógica
• Observe a figura abaixo e resolva o problema
30°
Problemas que Envolvem Lógica
• Observe a figura abaixo e resolva o problema
?
Problemas que Envolvem Lógica
• Viagem de 300km
• Quanto falta andar para chegar ao meio da distância restante?
Problemas que Envolvem Lógica
• São 20 horas e 25 minutos.
Problemas que Envolvem Lógica
Problemas que Envolvem Lógica
• 18 é divisível por 6? • 26 é divisível por 6?
Problemas que Envolvem Lógica
• Quantos números divisíveis por 13 há entre 1 e 100?
• Quantos são divisíveis por 11 e 13 simultaneamente?
Problemas que Envolvem Lógica
• Quantos números divisíveis por 13 há entre 1 e 100?
• Quantos são divisíveis por 11 e 13 simultaneamente?
Problemas que Envolvem Lógica
• Quantos alunos passaram? • Critério?
Nome Nota
ABC da Silva D 6,2
Monomo Nomonon 4,9
Um Dois Três de Oliveira Quatro 5,3
Fulano da Silva 2,9
Beltrano dos Santos 8,9
Sicrano da Mata 7,2
Pro
ica
• Qu • Cr Nome Nota Abc da Silva D 6,2 Monomo Nomonon 4,9Um Dois Três de Oliveira Quatro 5,3
Fulano da Silva 2,9
Beltrano dos Santos 8,9
Sicrano da Mata 7,2
R
ELAÇÃO
DOS
E
NGENHEIROS
Engenheiros e Computadores
• Criadores dos Computadores: Engenheiros • Problemas a resolver: de Engenharia
• Primeiros usuários: Engenheiros
• Naturalmente, existe uma correlação entre:
“lógica do computador” x
O
RGANIZAÇÃO
DOS
Entendendo o Computador
• Como funciona um computador?
Entrada CPU Saída
Entendendo o Computador
• CPU: Coordena todo o funcionamento do
computador e realiza cálculos numéricos • Unidade de Entrada: Recebe dados
(números) externos para processamento
• Unidade de Memória: Armazena dados
(números) para uso posterior
• Unidade de Saída: Exibe informação (números)
para o usuário, após o cálculo/processamento
Dispositivos de Entrada e Saída
Dispositivos de Entrada
• Leitura: converter informações externas
(usualmente fornecidas pelo usuário) em números para o computador
Dispositivos de Entrada e Saída
Dispositivos de saída
• Escrita: converter números fornecidos pelo
F
UNCIONAMENTO
Funcionamento da CPU
Entrada CPU Saída
Funcionamento da CPU
• A CPU tem duas partes principais:
- Unidade de Controle: coordena a execução - Unidade Lógica Aritmética: realiza os cálculos
• A UC é quem acessa a memória RAM
- Analogia: usuário de uma calculadora
• A ULA é quem faz cálculos
F
UNCIONAMENTO
DA
Memória
• Cada gaveta é chamada
posição de memória
• Cada gaveta possui um número que a identifica, chamado endereço de memória
• Em cada uma das gavetas, podemos guardar um
A Memória Principal
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
• Armazenemos o valor 255 na posição de
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
• Armazenemos o valor 255 na posição de
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
255
• Armazenemos o valor 255 na posição de
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
255
• Agora, armazenemos o valor 7 na posição de
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
255
• Agora, armazenemos o valor 7 na posição de
A Memória Principal
• Quando queremos guardar um número na memória, temos dizer em qual posição de memória ele deve ser armazenado, usando
para isso o endereço de memória
Endereço 0 1 2 3 4 5 6 7
255 7
• Agora, armazenemos o valor 7 na posição de
A Memória Principal
• Tomemos, agora, uma memória cheia
Endereço 0 1 2 3 4 5 6 7
A Memória Principal
• Tomemos, agora, uma memória cheia
Endereço 0 1 2 3 4 5 6 7
10 57 0 255 100 7 10 2
• Qual é o valor na posição de memória cujo endereço é 7?
A Memória Principal
• Tomemos, agora, uma memória cheia
Endereço 0 1 2 3 4 5 6 7
10 57 0 255 100 7 10 2
• Qual é o valor na posição de memória cujo endereço é 7?
A Memória Principal
• Tomemos, agora, uma memória cheia
Endereço 0 1 2 3 4 5 6 7
10 57 0 255 100 7 10 2
• Qual é o valor na posição de memória cujo endereço é 7?
C
OMO
OS
N
ÚMEROS
SÃO
A
RMAZENADOS
: A L
INGUAGEM
DO
C
OMPUTADOR
O Que o Computador Entende?
• Já vimos que o computador entende apenas números.
• Mas será que ele entende os nossos números? • O computador usa o dialeto “binário”:
Ex: 0101001010111b • Mas o que isso significa?
Humanos x Processadores
• Humanos aprendem a contar com os dedos; • Como temos DEZ dedos nas mãos, usamos
naturalmente os números DECIMAIS
• Isso significa que cada dígito do número será
“ocupado” com um de 10 símbolos diferentes: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
Representação decimal
• Considere o número decimal: 65.432
• Esse número também pode ser representado da seguinte forma:
65.432 = 2x100 + 3x101 + 4x102 + 5x103 + 6x104 65.432 = 2 + 30 + 400 + 5.000 + 60.000
65.432 = 65.432
• O mesmo princípio se aplica aos números binários, com a diferença de que são utilizados apenas 2
C
ONVERTENDO
DE
B
INÁRIO
Representação binária
• Considere o número binário: 10010011b
• Para convertê-lo para a base decimal,
faça o seguinte, calculando da direita para a esquerda: 10010011 = 1x20 + 1x21 + 0x22 + 0x23 + 1x24 + 0x25 + 0x26 + 1x27 10010011 = 1 + 2 + 0 + 0 + 16 + 0 + 0 + 128 10010011 = 147
C
ONVERTENDO
DE
D
ECIMAL
PARA
R
EPRESENTAÇÃO
Conversão de Decimal para Binário
Regra: divide-se o número por 2,
sucessivamente, armazenando-se
os “restos”, até
que o número se torne 1. Em
seguida, monte o
número binário a partir do último
resultado (1) e os “restos”, na
Provando 19 = 10011b
• Soma-se os números com base 2, da direita para a esquerda
19 = 1x2
0+ 1x2
1+ 0x2
2+ 0x2
3+ 1x2
419 = 1 + 2 + 0 + 0 + 16
19 = 19
C
OMO
G
UARDAR
O
UTROS
Outros Dados na Memória
• Só números binários... 0101001010111b • Seu significado depende da interpretação!
- Números inteiros
- Números fracionários - Letras
- Imagens - Etc.
Representação de Caracteres
• Letras: Padrões de codificação
- ASCII - UTF