Programação Computacional Aula 6: Introdução a programação Profa. Madeleine Medrano [email protected] Ciclo de desenvolvimento de um programa Roteiro Variáveis Escopo de variáveis Tipos de dados básicos em C Definição e diferencia entre cada um Dados com modificadores Comando de Atribuição Tipos de Dados, Constantes e Variáveis A memória armazena programas que serão executados e dados destes programas Podem ser dados de entrada ou dados gerados pela execução Para que se possa armazenar informações, a memória é dividida em partes - posições de memória Assim, cada posição tem um endereço único Esse endereço é representado como um número Variáveis O que é uma variável? Definição (Matemática) é uma entidade capaz de representar um valor ou expressão pode representar um número ou um conjunto de números f(x) = x2 Variáveis: Definição (Computação) Uma variável é uma posição de memória (que armazena uma informação) cujo conteúdo pode ser modificado Os valores que podem ser armazenados nela depende do seu tipo de dado Toda variável é caracterizada por um nome, que a identifica em um programa, e por um tipo, que determina o que pode ser armazenado naquela variável Pode ser modificada pelo programa Deve ser definida antes de ser usada, declara-se da seguinte forma Tipo_variável Nome_de_variável Variáveis Propriedades Nome Pode ter um ou mais caracteres Nem tudo pode ser usado como nome Tipo Conjunto de valores aceitos Escopo É a região em que a variável é conhecida Um par de chaves { } define escopo local Global ou local Variáveis Nome Deve iniciar com letras ou underscore “_”; Caracteres devem ser letras, números ou underscores Palavras chaves não podem ser usadas como nomes Letras maiúsculas e minúsculas são consideradas diferentes - Case sensitive Regras para nomes de variáveis em C As seguintes palavras são reservadas em C e não podem ser utilizadas como nome de variáveis auto do for return switch while signed break case char const else enum extern float goto if int long short sizeof static struct typeof union void volatile continue default double register unsigned Variáveis Exemplos de nomes corretos: Contador Contador1 Teste_123 _teste, int1 Exemplos que não podem ser usados como nomes .var int 1contador -x Teste-123 x& Variáveis Tipo Define os valores que ela pode assumir e as operações que podem ser realizadas com ela Exemplo tipo int variáveis utilizadas para armazenar apenas inteiros. 13, ou 1102 ou -24 tipo float armazena apenas valores reais 0.5, 3.14, 0, -5 Tipos de dados básicos em C char: um byte que armazena o código de um caractere do conjunto de caracteres local caracteres sempre ficam entre ‘aspas simples’! char c = ‘a’; int: um número inteiro, tipicamente 32 bits int n = 5; Tipos de dados básicos em C float: um número real com precisão simples parte decimal usa ponto e não vírgula! float f = 5.25; double: um número real com precisão dupla double x = 5.0e10; Dica: pode-se escrever números float e double usando notação científica void: este tipo serve para indicar que um resultado não tem um tipo definido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos tipos anteriores Modificadores de tipos Estes modificadores são palavras que alteram o tamanho do conjunto de valores que o tipo pode representar. Por exemplo,um modificador permite que possam ser usados mais bits para armazenar números inteiros. Um outro modificador obriga que só números inteiros sem sinal possam ser armazenados pela variável. Deste modo não é necessário guardar o bit de sinal do número e somente números positivos são armazenados. O resultado prático é que o conjunto praticamente dobra de tamanho. Os modificadores de tipos são os seguintes Unsigned: Este modificador pode ser aplicado aos tipos int e char e faz com que o bit de sinal não seja usado, ou seja o tipo passa a ter um bit a mais. Signed: Este modificador também pode ser aplicado aos tipos int e char. O uso de signed com int é redundante. Long: Modificador que pode ser aplicado aos tipos int e double aumentando o número de bytes reservado para armazenamento de dados. Observação : é possível combinar estes modificadores de diversas maneiras como está mostrado na Tabela a seguir que lista os tipos básicos definidos no padrão ANSI e a sua excursão. Tabela de tipos de dados Dica: a função sizeof(v) mede o tamanho de v em bytes Escopo de variáveis Escopo Define onde e quando a variável pode ser usada. Escopo global Fora de qualquer definição de função Tempo de vida é o tempo de execução do programa Escopo local Bloco de chaves {} ou função Escopo de variáveis Escopo local Bloco: visível apenas no interior de um bloco de comandos if (teste == TRUE) { int i; i = i+1; } Função: declarada na lista de parâmetros da função ou definida dentro da função int minha_fun (int x, int y) { int i, j; } Escopo de variáveis Variáveis e Constantes Como uma variável, uma constante também armazena um valor na memória do computador. Entretanto, esse valor não pode ser alterado: é constante não pode modificar durante a execução de um programa. As constantes também possuem um tipo. Para constantes é obrigatória a atribuição do valor inicial Exemplos de constantes: const int = 85; const float moeda = 0.10; const char letra = 'c‘; Comando de Atribuição Definição O comando de atribuição serve para atribuir valores para variáveis. A sintaxe do uso do comando é: Variável = valor Exemplos int i=0, j=10; float raio = 2.54; char c=‘d’; double precisao = 0.00001L; Comando de Atribuição O comando de atribuição pode conter expressões do lado direito: variável = expressão ; soma= a+b; /* neste exemplo a variável soma recebe o valor calculado da expressão a+b */ Atribuir um valor de uma expressão a uma variável significa calcular o valor daquela expressão e copiar aquele valor para uma determinada variável. Comando de Atribuição O sinal igual = no comando de atribuição é chamado de Operador de Atribuição A esquerda do operador de atribuição deve existir somente o nome_da_variável = À direita, deve haver uma expressão cujo valor será calculado e armazenado na variável (expressão, valor ou constante) Ex.: int main( ){ int x = 5; y = x + 3; } Dica: a linguagem C aceita múltiplas atribuições: x = y = z = 0; Conversões de Tipos na Atribuição Atribuição entre tipos diferentes O compilador converte automaticamente o valor do lado direto para o tipo do lado esquerdo de “=” Pode haver perda de informação Exemplo: int x; char ch; float f; ch = x; /* ch recebe 8 bits menos significativos de x */ x = f; /* x f = ch; /* recebe parte inteira de f */ f recebe valor 8 bits convertido para real */ f = x; /* idem para inteiro x */ Dica: se usar casting, é possível controlar a conversão: f = (int) f; Atividades: tipos de dados, variáveis e atribuições Indique os nomes da variáveis que são validos. Justifique os nomes inválidos. Marque a letra que contém pelo menos um nome de váriavel inválido Atividades: tipos de dados, variáveis e atribuições Indique na tabela os tipos que você usaria para armazenar os dados indicados. Fim da apresentação Obrigada pela atenção