Introdução à Programação - DI PUC-Rio

Propaganda
INF1004 e INF1005: Programação 1
Introdução à
Programação
Tópicos Principais
• Modelo de um Computador
• Um computador hipotético
• Ciclo de Desenvolvimento
Modelo de um
Computador
Modelo de um
Computador
A Bus é o canal que
transfere informação entre
os componentes do
computador
Modelo de um
Computador
“Cérebro” do
computador
Modelo de um
Computador
Executa instruções armazenadas
na memória principal
Modelo de um
Computador
Informação é perdida quando o
computador é desligado
Modelo de um
Computador
Informação é mantida mesmo
quando o computador é desligado
Modelo de um
Computador
Para executar um programa, ele precisa ser
copiado da memória secundária para a principal
Modelo de um
Computador
Possibilitam o usuário fornecer e
receber informações do computador
Um computador
hipotético
• A memória armazena números.
• Cada posição na memória possui um
endereço. Os endereços começam com 0.
Logo os endereços 0, 1, 2 são os
endereços das primeiras 3 posições.
• Existe uma memória chamada
registrador, que registra o resultado de
uma operação.
Instruções do
computador
• read pos: lê um número do teclado e
armazena na posição de memória pos
• write pos: escreve na tela o número
armazenado na posição de memória pos
• storeconst num pos: grava na posição
pos o número num
Instruções do
computador
•
•
•
•
add pos1 pos2: soma os números armazenados
em pos1 e pos2 e armazena o resultado no
registrador.
sub pos1 pos2: calcula pos1 - pos2 e armazena
o resultado no registrador.
mul pos1 pos2: multiplica os números em pos1
e pos2 e armazena o resultado no registrador.
div pos1 pos2: divide os números em pos1 e
pos2 e armazena o resultado no registrador.
Instruções do
computador
• store pos: armazena o número no
registrador na posição de memória pos
Executando programas
• Programas nesse computador são
sequências das instruções mostradas
Programa soma 2.5
• Nós queremos implementar um programa
que lê do teclado um valor, soma 2 a ele e
mostra na tela o resultado
Programa soma 2.5
read 0
storeconst 2.5 1
add 0 1
store 2
write 2
Programa soma 2.5
O programa abaixo também
resolve o problema
read 0
storeconst 2.5 1
add 0 1
store 0
write 0
Programa soma 2.5
O programa abaixo resolve
o problema?
read 0
storeconst 2.5 1
add 0 1
store 0
write 2
Armazenamento de
números na memória
• No nosso computador, cada posição de
memória possui 8 subseções e cada
subseção é capaz de armazenar um número
de 0 a 9.
Armazenamento de
números na memória
• O número zero é representado assim:
Armazenamento de
números na memória
• Somos capazes de armazenar 108 valores
distintos em uma posição de memória.
• O maior valor inteiro positivo seria:
Armazenamento de
números na memória
• Para armazenar números negativos, nós
podemos usar uma convenção. A primeira
subseção terá o valor 1 para números
negativos e 0 para números positivos.
• Logo o número -457 é representado pela
memória abaixo:
Armazenamento de
números na memória
• Para armazenar números fracionários,
podemos usar as 4 subseções após o sinal
para o número inteiro, e as 3 seguintes
para a parte fracionária.
• Abaixo está representado o número -257.4
Armazenamento de
números na memória
•
•
O formato que nós usaremos em nossos
exemplos usa notação científica para armazenar
números fracionários. O número -257.4 em
notação científica fica -0.2574 x 103. As 5
primeiras subseções armazenam o número e as
3 seguintes armazenam a potência. Ambas as
partes possuem uma subseção destinada ao
sinal (1 = negativo, 0 = positivo).
Abaixo temos o número -0.2574 x 103:
Armazenando
Programas
• Para o nosso computador hipotético
executar um programa, ele precisa estar
armazenado na memória.
• Como nossa memória só armazena
números, precisamos definir um número
para cada instrução.
•
•
•
•
•
•
•
•
Números para cada
Instrução
read = 0
write = 1
storeconst = 2
add = 3
sub = 4
mul = 5
div = 6
store = 7
Um programa em
memória
read 0
storeconst 2.5 1
add 0 1
store 2
write 2
Um programa em
memória
read 0
storeconst 2.5 1
add 0 1
store 2
write 2
Um programa em
memória
read 0
storeconst 2.5 1
add 0 1
store 2
write 2
•
•
Ciclo de
Desenvolvimento
Escolha da linguagem depende da aplicação que
será desenvolvida
No nosso caso vamos trabalhar com C:
-
Base para Programação II
Interoperabilidade entre as engenharias
Eficiência, facilidade de uso
Base para qualquer outra linguagem (as mais
sofisticadas)
•
•
•
Ciclo de
Desenvolvimento
Um programa em C deve respeitar a sintaxe da
linguagem.
O computador não é capaz de executar instruções
em C.
Para executar um programa em C devemos convertêlo para linguagem de máquina (0s e 1s).
•
•
Essa conversão chama-se compilação.
O programa que faz a conversão chama-se
compilador.
Ciclo de
Desenvolvimento
Ciclo de
Desenvolvimento
Extensão
.C
Ciclo de
Desenvolvimento
Extensão
.C
Converte C
para Código
de Máquina
Ciclo de
Desenvolvimento
Extensão
.C
Converte C
para Código
de Máquina
Extensão
.exe
Referências
• Waldemar Celes e Roberto Ierusalimschy,
Apostila de Programação (Disponível no
site da disciplina)
• Capítulo 1 - Introdução à Programação
Download