04 - Feg/Unesp

Propaganda
4 – Variáveis
Unesp – Campus de Guaratinguetá
Curso de Programação Computadores
Prof. Aníbal Tavares
Profa. Cassilda Ribeiro
Ministrado por: Prof. André Amarante
Composição do Hardware
MEMÓRIA
UNIDADES
FUNCIONAIS
BÁSICAS
MEMÓRIA AUXILIAR
MEMÓRIA PRINCIPAL
UNIDADE DE
ENTRADA
UNIDADE DE CONTROLE
UNIDADE DE
SAÍDA
UNIDADE LÓGICA E
ARITMÉTICA
CPU
Variáveis
2
A Memória do Computador
A
memória do computador é dividida em
unidades pequenas (células) e de mesmo
tamanho, chamadas PALAVRAS. Cada
PALAVRA tem um único endereço
Os
endereços são permanentes (vêm da
fábrica) e não podem ser modificados pelo
programador
Variáveis
3
A Memória do Computador
Memória de Tamanho “n”
Capacidade da memória
X
Espaço “endereçável”
Endereço
00 Palavra 1
01 Palavra 2
02 Palavra 3
03 Palavra 4
...
...
n
Palavra n-1
Variáveis
4
A Memória do Computador
A PALAVRA (célula) é formada por um grupo de 2, 4, 6
e até 8 BYTES (depende do modelo de computador).
Exemplo: Palavra de 4 bytes, indica que se está usando
uma célula cujo tamanho é de 4 bytes
PALAVRA
endereço
endereço
PALAVRA
byte
byte
byte
byte
byte
byte
byte
byte
00
01
02
03
04
05
06
07
00
04
Variáveis
5
A Memória do Computador
BYTE (binary term) : Unidade básica da informação.
O byte é composto por 8 BITS
BIT (binary digit) - dígitos binários
BYTE
bit
bit
bit
bit
bit
Variáveis
bit
bit
bit
6
Representação da
Informação
Os
computadores armazenam as informações e
fazem todo seu tratamento baseado em fenômenos
sobre sistemas biestáveis
Os
símbolos básicos usados para representar os
dois estágios são o 0 e o 1 (dígitos binários)
BYTE
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
bit
0 ou 1
COMO FAZER PARA REPRESENTAR UM NÚMERO
BINÁRIO?
Variáveis
7
A MEMÓRIA DO COMPUTADOR
Sistema de numeração binária
É um sistema de numeração posicional (o valor de
um dígito é dado pela sua posição no número)
No sistema decimal, o número 2562 tem a seguinte
interpretação:
2 x 1000 (103) = 2000
5 x 100 (102) = 500
6 x 10 (101) = 60
2 x 1 (100) =
2
Variáveis
8
A MEMÓRIA DO COMPUTADOR
No sistema binário de numeração a base é
2.
Assim o valor do número 110101 é:
1 x 25 + 1 x 24 + 0 x 23 + 1 x 22 + 0 x 21 +1 x 20
= 32 + 16 + 0 + 4 + 0 + 1
= 53
Costuma-se representar um número na base binária
por (110101)2 e na base decimal por (2562)10 ou
simplesmente 2562.
Variáveis
9
A MEMÓRIA DO COMPUTADOR
Correspondências entre as bases 2, 8, 10 e 16
Base 10 (decimal)
Base 2 (binária)
Base 8 (octal)
Base 16 (hexadecimal)
0
0
0
0
1
1
1
1
2
10
2
2
3
11
3
3
4
100
4
4
5
101
5
5
6
110
6
6
7
111
7
7
8
1000
10
8
9
1001
11
9
10
1010
12
A
11
1011
13
B
12
1100
14
C
13
1101
15
D
14
1110
16
E
15
1111
17
F
Variáveis
10
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números nas bases 2,
8 e 16 para a base 10
(101101)2 = 1x25 + 0x24 + 1x23 + 1x22 + 0x21 + 1x20 =
32 + 0 + 8 + 4 + 0 + 1 = (45)10
(27)8 = 2x81 + 7x80 = 16 + 7 = 23
(4F5C)16 = 4x163 + 15x162 + 5x161 12x160 = 4x4096 +
15x256 + 5x16 + 12 = 16384 + 3840 + 80 + 12 = 20316
Variáveis
11
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números nas bases 2,
8 e 16 para a base 10
binária para decimal
octal para
decimal
hexadecimal
para decimal
Variáveis
12
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números na base 10
para as bases 2, 8 e 16
dividendo divisor
45
1
resto
2
22
2
quociente
0
11
1
45 = (101101)2
Variáveis
2
5
1
2
2
0
2
1
1
2
0
13
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números na base 10
para as bases 2, 8 e 16
dividendo divisor
123 2
61
1
resto
2
quociente
1
30 2
0 15
1
123 = (1111011)2
Variáveis
2
7
1
2
3
1
2
1
1
2
0
14
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números na base 10
para as bases 2, 8 e 16
decimal para
binária
Variáveis
15
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números na base 10
para as bases 2, 8 e 16
decimal para
octal
Variáveis
16
A MEMÓRIA DO COMPUTADOR
Conversão Inteira de Números na base 10
para as bases 2, 8 e 16
decimal para
hexadecimal
Variáveis
17
A MEMÓRIA DO COMPUTADOR
Conversão Real de Números na base 2 para
a base 10
(10.101)2 = 1x21 + 0x20 + 1x2-1 + 0x2-2 +
1x2-3 = 2 + 0,5 + 0,25 + 0,125 = (2,875)10
(0.01101)2 = 0x20 + 0x2-1 + 1x2-2 + 1x2-3 +
0x2-4 + 1x2-5 = 0,25 + 0,125 + 0,03125 =
(0,40625)10
Variáveis
18
A MEMÓRIA DO COMPUTADOR
Conversão Real de Números na base 10
para a base 2 45,1875
Representação finita na base 10
parte inteira
0,1875 x 2 = 0,375
dividendo divisor
45
1
resto
2
22
0,375 x 2 = 0,75
2
quociente
0
parte decimal (fracionária)
11
1
2
5
1
0,75 x 2 = 1,5
2
2
0
0,5 x 2 = 1,0
2
1
1
2
0
45,1875 = (101101.0011)2
Representação finita na base 2
Variáveis
19
A MEMÓRIA DO COMPUTADOR
Conversão Real de Números na base 10
parte decimal (fracionária)
para a base 2 15,65
parte inteira
Representação finita na base 10
0,65 x 2 = 1,3
0,3 x 2 = 0,6
15 = (1111)2
0,6 x 2 = 1,2
0,2 x 2 = 0,4
0,4 x 2 = 0,8
0,8 x 2 = 1,6
Representação infinita na base 2
0,6 x 2 = 1,2
Dízima periódica
15,65 = (1111.1010011)2
Variáveis
...
20
A MEMÓRIA DO COMPUTADOR
Conversão Real de Números na base 10
parte decimal (fracionária)
para a base 2 0,1
Representação finita na base 10
0,1 x 2 = 0,2
0,2 x 2 = 0,4
0,4 x 2 = 0,8
0,8 x 2 = 1,6
0,6 x 2 = 1,2
0,2 x 2 = 0,4
Representação infinita na base 2
Dízima periódica
0,1 = (0.0001100110011...)2
Variáveis
...
21
A MEMÓRIA DO COMPUTADOR
REPRESENTAÇÃO DE NÚMEROS INTEIROS
(PONTO FIXO)
Dados numéricos ponto fixo são números inteiros, isto é, sem parte
fracionária.
Os dados NUMÉRICOS INTEIROS POSITIVOS são sempre
representados com o sinal (convencionado que bit mais significativo 0 =
sinal positivo) e em seguida o valor do dado em binário.
Porém, devido à complexidade dos algoritmos para os computadores
operarem com NÚMEROS NEGATIVOS quando se usa a
representação em sinal e magnitude, são comumente adotadas outras
formas que facilitam e tornam mais eficiente a manipulação de
operações aritméticas em computadores: as representações em
complemento.
Vamos analisar cada uma dessas representações.
Variáveis
22
A MEMÓRIA DO COMPUTADOR
REPRESENTAÇÃO EM SINAL E MAGNITUDE
A magnitude (isto é, o valor absoluto, que independe de sinal) de um
número é representada em binário. O sinal é representado por um bit (o
bit mais significativo, isto é, o bit mais à esquerda na representação).
Por convenção, o bit de sinal 0 (zero) significa que o número é positivo
e o bit 1 representa número negativo.
Variáveis
23
A MEMÓRIA DO COMPUTADOR
REPRESENTAÇÃO EM SINAL E MAGNITUDE
O valor dos bits usados para representar a magnitude independe do
sinal, isto é, sendo o número positivo ou negativo, a representação
binária da magnitude será a mesma, o que varia é apenas o bit de sinal.
Ex.:
0011 = +3
1011 = -3
(011 equivale ao valor absoluto 3)
Variáveis
24
A MEMÓRIA DO COMPUTADOR
REPRESENTAÇÃO EM SINAL E MAGNITUDE
FAIXA DE REPRESENTAÇÃO
A representação na base b em sinal e magnitude com n
bits (incluindo o bit de sinal) possui bn representações e
permite representar bn -1 valores, de vez que há duas
representações para o zero.
A faixa de representação de uma representação na base
2 em sinal e magnitude com n bits (incluindo o bit de sinal)
possui 2n representações, representando os valores entre
- ( 2n-1-1) e + ( 2n-1-1).
O maior valor inteiro positivo será então + ( 2n-1-1) e o
menor valor inteiro negativo será - ( 2n-1-1).
Variáveis
25
A MEMÓRIA DO COMPUTADOR
REPRESENTAÇÃO EM SINAL E MAGNITUDE
A representação em sinal e magnitude apresenta
uma grande desvantagem: ela exige um grande
número de testes para se realizar uma simples
soma de dois números inteiros, o que resulta em
baixa eficiência (execução lenta). Um outro ponto
negativo é termos duas representações para o
zero.
Para resolver o problema da soma utiliza-se a
representação em COMPLEMENTO A BASE 1 e
para resolver o problema das duas representações
para o zero utiliza-se a representação em
COMPLEMENTO A BASEVariáveis
2.
26
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
4.1 - Variáveis
 Como visto anteriormente, o computador possui uma
área de armazenamento conhecida como memória.
 A memória do computador pode ser entendida como uma
seqüência finita de células, que num dado momento,
guardam algum tipo de informação, como por exemplo
um número, uma letra, uma palavra, uma frase etc, não
importa, basta saber que lá sempre existe alguma
informação.
 O computador  precisa saber onde, na memória, o dado
está localizado.
Variáveis
27
Unesp-Campus de Guaratinguetá
4.1 – Variáveis

Fisicamente, cada célula, ou cada posição de
memória, possui um endereço, ou seja, um número,
que indica onde cada informação está localizada.

Este número é representado através da notação
hexadecimal, tendo o tamanho de quatro, ou mais
bytes.
A seguir é mostrado um exemplo:
Exemplo 1.
3000:B712
“Joao”
Endereço físico
3000:0004
‘H’
Informação
2000:12EC
12345
Variáveis
28
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
O endereço MAC é formado por um conjunto de 6
bytes separados por dois pontos (“:”) ou hífen (“-”),
sendo cada byte representado por dois algarismos
na forma hexadecimal, como por exemplo:
"00:19:B9:FB:E2:58".
Cada
algarismo
em
hexadecimal corresponde a uma palavra binária de
quatro bits, desta forma, os 12 algarismos que
formam o endereço totalizam 48 bits.
Variáveis
29
Unesp-Campus de Guaratinguetá
4.1 – Variáveis

O endereçamento das posições de memória através de números
hexadecimais é perfeitamente compreendido pela máquina, mas
para nós humanos esta tarefa é complicada.

As linguagens de computador permitem que, ao invés de
trabalhar diretamente com os números hexadecimais, sejam
dados nomes diferentes a cada posição de memória (a cada
célula).

Tais nomes são de livre escolha do usuário, mas seguem
algumas regras.

Os usuários ficaram livres dos endereços físicos (números
hexadecimais) e passaram a trabalhar com endereços lógicos
(nomes dados pelos próprios usuários para cada posição de
memória).
Variáveis
30
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
Então o Exemplo 1 anterior, pode ser alterado para:
nome
“Joao”
Endereço lógico
letra
‘M’
Informação
numero
12345

Assim, podemos dizer que os endereços lógicos são como
células, que num dado instante guardam algum tipo de
informação.

Observe que o conteúdo destas células não é algo fixo,
permanente. Na verdade, uma célula pode conter diversas
informações, isto é, uma informação diferente a cada
momento
Variáveis
31
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
Então, sempre que for necessário, pode-se alterar o conteúdo
armazenado em cada caixa.
A figura do Exemplo 1, mostrado a seguir, ilustra esse fato.
nome
“Maria”
Endereço lógico
letra
‘F’
Informação
numero
54321

No exemplo 1 a célula (Endereço Lógico) rotulada de nome num
primeiro momento continha a informação “Joao”, mas agora ela
contém a informação “Maria”. O mesmo acontece com as
células numero e letra, que antes continham respectivamente as
informações 12345 e ‘M’, e agora contém as informações 54321
e ‘F’.
Variáveis
32
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
 Então a informação armazenada em cada célula (endereço
lógico) pode variar. Isto é, podem ocorrer alterações em seu
conteúdo.
 Tendo este conceito em mente, a partir de agora iremos
chamar, as células ou endereços lógicos, de VARIÁVEIS.
 Desta forma podemos dizer que uma VARIÁVEL é uma
posição de memória, representada por um nome simbólico
(atribuído pelo usuário), a qual contém, num dado instante, uma
informação.
 Então, uma variável é qualquer quantidade que possa mudar
de valor em diferentes estágios, dentro de um programa. O uso
de variáveis permite a especificação de uma fórmula geral de
cálculo.
Variáveis
33
Unesp-Campus de Guaratinguetá
4.1 – Variáveis
Vejamos então, um outro exemplo.
Exemplo 2: Seja um triângulo com os seguintes lados: A, B, C.
Do Teorema de Pitágoras temos: A2 = B2 + C2
Para cada conjunto de valores atribuídos a B e C
teremos um valor de A, ou seja:
Caso
A
B
C
1
5
4
3
2
3
13
10
5
6
12
8
Observe então que neste exemplo temos 3 variáveis. A variável A, a variável B
e a variável C. E quando fazemos B=4 e C=3, teremos A=5
Variáveis
34
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
4.1.1 - Nomes de Variáveis
Para que as variáveis possam ser identificadas no programa,
elas necessitam ter um nome. Este nome deve ser significativo
tais como: hipotenusa, lado1 e lado2.
OBS: Na fórmula do exemplo 2, foi dado o nome de A para a
hipotenusa, B para o lado 1 e de C para o lado 2 (catetos) do
triângulo retângulo. Contudo, esses nomes não são
suficientemente significativos para se usar num programa de
computador, ao passo que se for usado o nome hipotenusa, por
exemplo, imediatamente sabe-se que se trata da dimensão de
um triângulo retângulo.
 Regras para dar nomes as variáveis
As regras para dar nomes as variáveis podem variar ligeiramente
dependendo da linguagem de programação ou do sistema de
computador em utilização.
Variáveis
35
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
O nome de uma variável pode ser constituído por letras
do alfabeto (minúsculas ou maiúsculas), dígitos (0 até 9)
e ainda pelo caractere underscore (_);
O primeiro caractere do nome da variável NÃO pode ser
um dígito. Terá que ser uma letra ou o caractere
underscore. No entanto, é desaconselhável a utilização
deste último como primeira letra identificadora de uma
variável;
NÃO é permitido o uso de espaços em branco ou de
qualquer outro caractere (#, %, &, !, -, @, *), que não seja
letra ou dígito, na composição do nome da variável;
Maiúsculas e minúsculas representam caracteres
diferentes (case sensitive), logo variáveis distintas;
Variáveis
36
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
Uma variável NÃO pode ter por nome uma palavra reservada da
própria linguagem C. Assim, não podemos ter uma variável com alguma
palavra-chave de C. A tabela a seguir mostra todas as palavras-chave
da linguagem C.
Categoria
Palavras-chave
Tipos de dados
char, int, float, double, void
Modificadores de tipo
long, short, signed, unsigned
Modificadores de tipo de acesso
const, volatile
Classes de armazenamento
auto, extern, static, register
Tipos definidos pelo usuário
struct, enum, union, typedef
Comandos condicionais
if, else, switch, case, default
Comandos de laços
while, for, do
Comandos de desvio
break, goto, return, continue
Operador
sizeof
DICA: quando for utilizar algum nome para uma variável procure utilizar um nome em
português já que as palavras reservadas da linguagem C estão em inglês!
Variáveis
37
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
NÃO é aconselhável a utilização de caracteres
acentuados (ã, õ, á, é, etc.) no nome das variáveis, pois a
grande maioria dos compiladores não os aceita como
caracteres admissíveis;
Os nomes das variáveis podem ser tão longos quanto
quisermos, no entanto, o compilador só vai considerar os
primeiros 32 caracteres;
O caractere underscore (_) é habitualmente utilizado
para fazer a separação entre palavras que representam
uma única variável. Ex: Num_Cliente, Id_Fatura,
Vou_Continuar, etc.
Variáveis
38
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
Exemplos de nomes
válidos
Exemplos de nomes não válidos
3cubo  começa com número
Lado1
A3
Caixa_preta
Xmetro
X+Y  o “+” não vale pois confunde
com o sinal
Caixa preta  não é permitido caractere
branco
OBS: A Linguagem C é CASE-SENSITIVA, isto é, ela faz
diferença entre letras maiúscula e minúscula.
Então em C, Lado1 ≠ lado1 ≠ LADO1
Em C, existem cinco tipos básicos de variáveis:
char, int, float, double e void.
OBS: em C NÃO existe nenhum tipo específico de dados para armazenar
valores lógicos.
Variáveis
39
Unesp-Campus de Guaratinguetá
4.1.1 - Nomes de Variáveis
Nome variável
Correto ou
Incorreto?
Idade
Correto
a1b2c3
Correto
1a2b3c
Incorreto
Primeiro caractere é um dígito
nome do cliente
Incorreto
Utilizou-se espaços em branco
Num_Cliente
Correto
auto
Incorreto
Utilizou-se uma palavra reservada
Simnão
Correto
Mas, não aconselhável
vinte%
Incorreto
Utilizou-se caractere inadmissível
continuar?
Incorreto
Utilizou-se caractere inadmissível
_alfa
Correto
Mas, não aconselhável
Num, NUM
Correto
Por quê?
Variáveis
Será aconselhável ???
40
Unesp-Campus de Guaratinguetá
4.1.2 - Tipos de Variáveis
4.1.2 Tipos de Variáveis
Considere a fórmula matemática para o cálculo do volume de uma
esfera:
4 3
V  R
3
Pode-se dizer que esta fórmula contém basicamente duas
coisas:
1) Valores que podem ser classificados como constantes e
variáveis.
 Constantes são os valores que não variam em todas as
aplicações da fórmula. Na fórmula acima os valores 4, 3 e 
são chamados de constantes;
 Variáveis são valores que mudam a cada aplicação da
fórmula. Na fórmula acima o V e o R são variáveis.
Variáveis
41
Unesp-Campus de Guaratinguetá
4.1.2 - Tipos de Variáveis
2) Operações que devem ser feitas sobre determinados valores
para a obtenção da solução do problema.
Então para cada valor de R que atribuímos a fórmula,
4 3
V  R
3
obtemos um valor de volume V.
Deste modo esta fórmula pode ser usada para resolver uma
certa classe de problemas e não apenas um problema
específico.
Variáveis
42
Unesp-Campus de Guaratinguetá
4.1.2.1 - Tipos de Dados
4.1.2.1- Tipos de Dados

A Linguagem C exige que no momento em que se for
utilizar variáveis, seja indicado o tipo de informação que a
(célula) variável vai conter, isto é, se numa dada posição de
memória será armazenado um número ou uma letra, etc.

Para isto, a linguagem C já tem definido alguns tipos de
dados que deverão ser usados quando se quiser utilizar
variáveis.

As características de cada um destes tipos de dados será
mostrada gradativamente a medida em que ser for
trabalhando com eles.
Variáveis
43
Unesp-Campus de Guaratinguetá
4.1.2.1 - Tipos de Dados
Resumindo:

O tipo de uma variável define os valores que ela pode
assumir e as operações que podem ser realizadas com ela

Ex:
– variáveis tipo int recebem apenas valores inteiros
– variáveis tipo float armazenam apenas valores reais

A seguir são mostrados alguns dos tipos de variáveis mais
utilizados.
Variáveis
44
Unesp-Campus de Guaratinguetá
4.1.2.1 - Tipos de Dados
Algoritmo
C
Inteiro
int
Real
float
Real
double
Caractere
char
Cadeia
char [ ]
Lógica
int
float
Descrição
Representa números entre -2147483647 e +2147483647.
Ocupa 4 bytes de memória.
Representa números entre 3.4x10-38 e 3.4x10+38.
Ocupa 4 bytes de memória.
Representa números entre 1.7x10-308 e 1.7x10+308.
Ocupa 8 bytes de memória.
Representa um dos caracteres da Tabela ASCII.
Ocupa 1 byte de memória.
Vetor de caracteres. Cada elemento do vetor
ocupa 1 byte de memória.
Qualquer valor diferente de zero é associado ao valor
lógico verdadeiro. Senão é falso.
Variáveis
45
Unesp-Campus de Guaratinguetá
4 – Variáveis e Expressões
FIM
Aula 4
Referências dos slides
Curso de Programação de Computadores
Prof. Aníbal Tavares
Profa. Cassilda Ribeiro
Prof. Décio Mourão
Variáveis
46
Prof. Galeno Sena
Download