Variáveis
2014/2 – Programação Básica
de Computadores (INF 09325)
Freddy Brasileiro
www.inf.ufes.br/~fbrasileiro
[email protected]
Programa / Bibliografia
2.
Programação estruturada em pseudocódigo
1. Variáveis: sistemas de numeração,
armazenamento e utilidade
 W.
L. C. Saliba. Técnicas de Programação: Uma
Abordagem Estruturada. Pearson / Makron
Books, 1993;

Capítulo 4 – Variáveis
2
Introdução
 Computadores
 Necessidade
 Abstração
manipulam informações
de armazená-las
de variáveis
3
Sistemas de Numeração

Diferentes sistemas de numeração

Decimal


Octal



De 0 à 9 e de A à F
Binário


De 0 à 7
Hexadecimal


De 0 à 9
0e1
Normalmente, utilizamos decimal
Computadores utilizam binário
4
Sistemas de Numeração
Decimal
Octal
Hexadecimal
Binário
0
0
0
0000
1
1
1
0001
2
2
2
0010
3
3
3
0011
4
4
4
0100
5
5
5
0101
6
6
6
0110
7
7
7
0111
8
10
8
1000
9
11
9
1001
10
12
A
1010
11
13
B
1011
12
14
C
1100
13
15
D
1101
14
16
E
1110
15
17
F
1111
5
Arquitetura da Memória
2014/2 - PBC
 Cada



19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3

2

23
“2014/2 - PBC”
1
que mapeia endereços às informações
0
 Tabela
23
informação é um byte (8 bits)
Bit = binary bit (0 ou 1)
0000 00002 = 010
1111 11112 = 25510
1 bit
0
0
1
1
0
1
0
1
1 byte
6
Armazenamento de Dados
 Cada
tipo de dado possui uma quantidade de
memória necessária para armazenamento
 Depende



dos tipos de
Dado
Máquina
Linguagem de Programação
 Preocupação
não-necessárias em
pseudocódigos
7
Armazenamento de Inteiros
 7510
= 0100 10112
 -5310 = 1100 10112

1 byte: 255 possibilidades (-127 à 127)
 43510

= 0000 0001 1011 00112
2 bytes: 65.535 possibilidades (-32767 à 32767)
 Conjunto



dos inteiros é infinito
Representação inviável
2 bytes é razoável
Maior precisão
 Inteiros
longos costumam utilizar 4 bytes
 Definição de um novo tipo
8
Armazenamento de Reais
 1,2510

= 1.012
Separação entre mantissa e expoente (m=be)
 Conjunto


infinito
4 bytes é razoável
8 bytes para representações mais precisas
9
Armazenamento de Literais
 Computador
só armazena números
 Conjunto de caracteres < 256 (1 byte)


Associação entre caracteres e números
Tabela ASCII
 Padrão


Unicode
4 bytes (4.294.967.296 caracteres diferentes)
Acentos, alfabetos orientais, etc.
 Armazenamento:

Conjunto contíguo de bytes
Tamanho do conjunto
depende do tamanho
do literal
Endereço
Informação
0
15 (“O”)
1
8 (“I”)
10
Tabela ASCII
11
Armazenamento de Booleanos
 Um
único bit seria necessário
 Um byte inteiro é utilizado

Simplificação da arquitetura
12
Conceito de Variáveis
 Necessidade
de acessar informações
 Para salvar informações



Indicamos posição inicial
Convertemos pra binário
Armazenamos com um comprimento
 Precisamos

fazer o inverso
Ilegível e dificuldade de trabalhar
13
Conceito de Variáveis
 Nomenclatura

Variável

de variáveis
Começa por letra
Único símbolo especial permitido é um
underline (“_”)
 Nomes
que façam sentido
Salário
OK!
1Ano
Não começou por letra
Ano1
OK!
A CASA
Contém o caractere espaço
SALARIO/HORA
Contém o caractere “/”
SALARIO_HORA
OK!
_DESCONTO
Não começou por letra
14
Variáveis em Pseudocódigo

Definição obrigatória

Não-necessário em algumas linguagens
 Sintaxe
VAR
<nome_da_variável> : <tipo_da_variável>
<lista_de_variáveis> : <tipo_das_variáveis>

Listas


Separação por vírgulas
Literais

Definição do tamanho
 Exemplos
VAR
NOME, SOBRENOME
IDADE
SALÁRIO
TEM_FILHOS
:
:
:
:
literal[10]
inteiro
real
lógico
15
Mapeamento em Memória
 Tradução
de variáveis para baixo nível
Nome Simbólico
Posição Inicial
Tipo de Dado
0
Literal[10]
SOBRENOME
10
Literal[10]
IDADE
20
Inteiro
SALÁRIO
22
Real
TEM_FILHOS
26
Lógico
NOME
SOBRENOME
IDADE
SALÁRIO
TEM_FIL
HOS
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
NOME
16
Palavras reservadas

Variáveis devem ter nomes diferentes das palavras
reservadas
Algoritmo Média
Var N1, N2, Média : real
Início
Leia N1, N2
Média <- (N1 + N2) / 2
Se Média > 7 Então
Escreva "Aprovado"
Senão
Escreva "Reprovado"
Fim_se
Fim.
17
Exercício 1
 [Saliba,
1992, p. 26] Na lista seguinte, assinale
com V os nomes de variáveis válidos e com I os
inválidos.
( ) abc
( ) 3abc
()a
( ) 123a
( ) _a
( ) acd1
()_
( ) Aa
()1
( ) A123
( ) _1
( ) A0123
( ) a123
( ) _a123
( ) b312
( ) AB CDE
( ) etc...
( ) guarda-chuva
18
Exercício 1 - Resolução
(V) abc
(I) 3abc
(V) a
(I) 123a
(I) _a
(V) acd1
(I) _
(V) Aa
(I) 1
(V) A123
(I) _1
(V) A0123
(V) a123
(I) _a123
(V) b312
(I) AB CDE
(I) etc...
(I) guarda-chuva
19
Exercício 2

Declare, em pseudocódigo, variáveis para os dados
descritos a seguir. Utilize nomes e tipos de dados
adequados. Assuma que todas elas pertencem ao
mesmo algoritmo chamado ExercícioDois e que o
corpo deste algoritmo é vazio.







Nome completo de uma pessoa;
Salário de um funcionário;
Sigla de unidade federativa (estado) do Brasil;
Indicação se um determinado aluno da UFES é ou não
especial;
Carga horária de uma disciplina;
Distância entre dois planetas;
Número de funcionários de uma empresa de médio
porte.
20
Exercício 2 - Resolução
Algorítmo ExercícioDois
VAR nome_completo : literal[50]
salário : real
sigla_estado : literal[2]
aluno_especial : lógico
carga_horária : inteiro
distância : real
num_funcionarios : inteiro
Início
Fim.
21
Exercício 3
 [Saliba,
1992, p. 15, adaptado] Supondo que as
variáveis NOTA, NOME, NMAT (e.g. 2007100251),
DT_NASC e SX sejam utilizadas para armazenar
a nota do aluno, o nome do aluno, o número
da matrícula e o sexo, declare-as
corretamente, associando o tipo adequado ao
dado que será armazenado.
22
Exercício 3 - Resolvido
Algorítmo Dados_Aluno
VAR NOME : literal[50]
NOTA : real
NMAT : literal[10]
DT_NASC : literal[10]
SX : literal[1]
Início
Fim.
23
Download

Variáveis