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