Baixe o app para aproveitar ainda mais
Prévia do material em texto
Informática Aplicada Aula 2 – Tipos de Dados Básicos em C Profª Náthalee Cavalcanti de Almeida Email: nathalee.almeida@ufersa.edu.br 05/12/2013 • Tipos de dados em C • Variáveis • • Atribuição • • Inteiros, reais e caracteres • Operadores numéricos • Leitura e escrita de variáveis e expressões • Formatos de leitura e escrita Agenda Introdução • Na programação em C é necessário, no entanto, primeiro conhecer aquilo que queremos guardar e só então selecionar os melhores recipientes para a tarefa; • Os diversos formatos de recipientes para armazenar produtos na nossa geladeira correspondem em C aos Tipos de Dados Básicos. • char, int, float e double . . Variáveis • Utilizado sempre que desejamos guardar um valor que, por qualquer razão não seja fixo. • Uma variável é nada mais que um nome que damos a uma determinada posição de memória para conter um valor de determinado tipo. • O valor contido em uma variável pode variar ao longo da execução de um programa. . Variáveis • Uma variável deve ser sempre definida antes de ser usada; • A definição de uma variável indica ao compilador qual o tipo de dado que fica atribuído ao nome que indicarmos para essa variável. • A definição de variáveis é feita utilizando a seguinte sintaxe: tipo var1 [, var2, ..., varn]; Variáveis • Exemplos: int i; /* i é uma variável do tipo inteiro */ char ch1, novo_char; /*ch1 e novo_char são vars do tipo char */ float pi, raio, perimetro; double total, k123; Variáveis • A declaração de variáveis tem que ser sempre realizada antes de sua utilização e antes de qualquer instrução. main ( ) { Declaração de variáveis Instrução1; Instrução2; } Variáveis • As variáveis são sempre armazenadas em memória. • São uma forma simples de referenciar posições de memória. • O tipo que lhes está associado indica o número de bytes que serão utilizados para guardar um valor nessa variável. Nomes de Variáveis • Regras: - Pode ser constituído por letras do alfabeto (minúsculas ou maiúsculas), dígitos ( 0 ... 9) e ainda pelo caractere ( _ ). - O 1° caractere NÃO pode ser um dígito. Terá que ser uma letra ou _. - Maiúsculas e minúsculas representam caracteres diferentes, logo variáveis distintas. - Uma variável NÃO pode ter por nome uma palavra reservada da própria Linguagem C. Nome das Variáveis • Não é aconselhável a utilização de caracteres acentuados (ã, õ, á, é, etc.) nos nomes das variáveis. • 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. Exercício Indique quais são as variáveis que têm nomes corretos e incorretos na seguinte lista: int idade; int Num_Cliente; float a1b2c3; float 7a2b3c; char float; double vinte%; char sim?não; int _alfa; int _123; char Num, NUM; Exercício int idade; /* Correto*/ int Num_Cliente; /* Correto*/ float a1b2c3; /* Correto*/ float 7a2b3c; /*Incorreto: 1° caractere é um dígito*/ char float; /*Incorreto: palavra reservada*/ double vinte%; /*Incorreto : caractere inadmissível*/ Exercício char sim?não; /* caractere inadmissível*/ int _alfa; /* Correto, mas não aconselhável*/ int _123; /* Correto, mas não aconselhável*/ char Num, NUM; /*Correto, pois o C é case sensitive.*/ /* Será aconselhável ???*/ Nomes das variáveis • Deve ser descritivo daquilo que ela armazena. Ex: xxx, yyy vs. Id_Cliente, num_fatura • O nome de uma variável não deve ser todo escrito em maiúsculas, pois identificadores totalmente escritos em maiúsculas são tradicionalmente utilizados pelos programadores de C para referenciar constantes. Nomes das variáveis . • Não utilize o caractere underscore ( _ ) para iniciar o nome de uma variável. • O n° de caracteres que o nome de uma variável pode conter depende do compilador, mas é normal que sejam permitidos nomes de variáveis com até 32 caracteres. Atribuição . • Sempre que uma variável é declarada, estamos solicitando ao compilador para reservar espaço em memória para armazená-la. • Sempre que uma variável é definida, um conjunto de bytes fica associado a ela. • Esses bytes têm bits com valor 1 e outros bits com 0, constituindo um número qualquer. Atribuição . • Uma variável poderá ser iniciada com um valor através de uma operação de atribuição. • A atribuição de um valor só pode ser realizada para variáveis. • Ao realizar uma atribuição o valor anterior presente na variável é eliminado, ficando nela o novo valor que lhe foi atribuído. Atribuição . Sintaxe: variável = expressão; Ex: Para colocar o valor -17 na variável num faz-se: int num; /* Declaração da Variável num */ num = -17; /* num passa a ter o valor -17 */ Atribuição . • Uma variável pode ser automaticamente iniciada quando se faz a sua declaração. Ex: int num = -17; int n1 = 3, n2 = 5; int a = 10, b, c = -123, d; * b e d ficam com um valor aleatório (“lixo”) porque não foram iniciadas. Atribuição . Ex: Colocar na variável val o mesmo valor da variável num val = num ; /*val recebe o valor que está em num */ Ex: Suponha que as 4 variáveis fossem iniciadas com os valores abaixo a = 1; b = 2; c = 3; d = 4; Qual é o valor das variáveis a, b,c e d, se em seguida, fosse executa a instrução: a=b=c=d=5; Atribuição . 1. Todas ficam com valor 5? 2. A variável a fica com o valor de b (2), b fica com o valor de c (3) e assim por diante. Atribuição . Resposta Correta : 1 •Atribuições Consecutivas são realizadas da esquerda para a direita. a=b=c=d=5; • A 1ª a ser realizada é d=5. • O valor atribuído a d é devolvido como resultado da atribuição: •a=b=c=5; • O valor devolvido 5 é então atribuído a c. Inteiros - int . • Armazena valores que pertencem ao conjunto dos números naturais (sem parte fracionária) positivos e negativos. Ex: 2, -345, +115, 0. Operação Descrição Exemplo Resultado + Soma 21+4 25 - Subtração 21-4 17 * Multiplicação 21*4 84 / Divisão Inteira 21/4 5 % Resto da Divisão 21%4 1 Inteiros - int . Qualquer operação entre inteiros retorna um inteiro!!!!! Ex: Divisão entre 21 e 4 não irá resultar 5,25 e sim 5. Inteiros - int . Aprendendo como se pode escrever inteiros na tela. 1: #include <stdio.h> 2: 3: main ( ) 4: { 5: int num = 123; 6: 7: printf (“O valor de um num = %d e o valor seguinte = %d\n”, num, num+1); 5: } . • É feita a declaração da variável num do tipo int, que é iniciada com o valor 123 (linha 5:). • Escreverna tela a seguinte string: O valor de num =123 e o valor seguinte = 124 “O valor de num = 123 e o valor seguinte = 124 \n” Inteiros - int Inteiros - int . • O valor de num está guardado numa variável, e não podemos colocar a variável num dentro da string do printf, uma vez que printf iria escrever a string “num” em vez do valor que estaria guardado na variável. O que queremos escrever é: •O valor de num = <inteiro> e o valor seguinte =<inteiro> Em que <inteiro> representa o valor inteiro que está guardado na variável. Inteiros - int . Para escrever um inteiro dentro de um printf devemos substituir o valor desse inteiro por um formato de escrita que é %d. O valor de num = %d e o valor seguinte = %d\n Falta apenas indicar ao printf quais os valores que terá que colocar nos locais assinalados por %d. printf (“O valor de um num = %d e o valor seguinte = %d\n”, num, num+1); Inteiros - int . Saída esperada: O valor de num = 123 e o valor seguinte = 124 Função scanf . • Função para leitura de valores. 1: #include <stdio.h> 2: main ( ) 3: { 4: int num ; 5: printf (“Escreva um n°:”); 6: scanf (“%d”, &num); 7: printf(“O n° escrito foi %d\n”,num); 8:} Função scanf . • leitura formatada funciona de forma semelhante à função printf. • Para ler qualquer variável do tipo int, char, float ou double utilizando a função scanf é preciso preceder cada variável de um &. scanf (“%d, &num); Exemplo . O que faz o seguinte programa? 1: #include <stdio.h> 2: main ( ) 3: { 4: int n1,n2 ; 5: printf (“Escreva dois números:”); 6: scanf (“%d%d”, &n1,&n2); 7: printf(“O resultado de %d +%d = %d\n”,n1,n2,n1+n2); 8:} 9: Exemplo . Saída do Programa: Escreva dois número: 12 45 O resultado de 12 + 45 = 57 Inteiros e Variações . • O tamanho em bytes de um inteiro varia de arquitetura para arquitetura, sendo os valores mais habituais de 2 ou 4 bytes. N° de Bytes Menor Valor Maior Valor 2 -32 768 327 67 4 -2 147 483 648 2 147 483 647 Inteiros e Variações . • short – Inteiro pequeno (2 bytes) • long – Inteiro grande (4 bytes) • signed – Inteiro com sinal (n°s negativos e positivos) • unsigned – Inteiro sem sinal (apenas n°s positivos) short e long . Para garantir que o inteiro n use apenas 2 bytes ou 4 bytes, independente da arquitetura utilizada, deve-se declarar a variável como: • short int n; /* ou short n; - 2 bytes*/ • long int n; /* ou long n; - 4 bytes*/ O formato de leitura e escrita de variáveis inteiras short e long nas funções scanf e printf deve ser precedido dos prefixos h (short) e l (long). signed e unsigned . • Por padrão, uma variável do tipo inteiro admite valores inteiros positivos e negativos. Ex: Se um n° inteiro for armazenado em 2 Bytes os seus valores podem variar entre -32 768 e 32 767. Apenas valores positivos unsigned. . Ex: unsigned int Idade; /*ou unsigned Idade; */ /*A idade de um indivíduo não pode ser negativa*/ signed e unsigned O prefixo signed antes de um inteiro, não é necessário, pois por padrão todos os inteiros quando são criados são sinalizados (signed). . signed e unsigned -65536 -32768 0 32767 65535 int unsigned O formato de leitura e escrita de variáveis inteiras sem sinal (unsigned int), utilizando as funções scanf e printf, é %u em vez de %d. . Reais – float e double • Armazena valores numéricos com parte fracionária. • São também denominadas reais ou ponto flutuante •Ex: 3.14, 0.000000000000024, 1.0) • float 4 bytes; • double 8 bytes; float Pi = 3.1415; double erro = 0.00000001; . Caracteres – char • Permite armazenar um único caractere. • Não armazena strings (conjunto de caracteres). • Sempre é armazenado em um único byte. Sintaxe: char var1, ch, var2; Ex: char ch = „A‟, v = „$‟, n1 = „\n‟; . Caracteres – char O formato de leitura e escrita para caracteres é %c. Ex: 1: #include <stdio.h> 2: 3: main ( ) 4:{ 5: printf (“%cello Wo%cld%c”, „H‟, „r‟, „\n‟); . getchar () • leitura de um caractere; • não utiliza nenhum parâmetro; • Lê um caractere e devolve o caractere obtido como resultado da função,evitando a escrita de parâmetros, formatos, &ch etc. caractere lido getchar (); . getchar () 1: #include <stdio.h> 2: 3: main ( ) 4:{ char ch; 5: printf (“Digite um caractere:”); 6: 7: ch = getchar ( ); 8: printf (“O caractere digitado foi „%c‟ \n”,ch); 9: } Ler um caractere digitado pelo usuário . getchar () vs. scanf () • getchar () evita a presença do formato de leitura (%c); • Como a variável não é passada como parâmetro à função getchar, não precisa de &. . • A linguagem C apresenta 4 tipos de dados básicos – char, int, float e double. • Podemos declarar variáveis de cada um desses tipos para armazenar valores. • A atribuição de valores a uma variável é realizada através do sinal de =. • Podem ser realizadas atribuições encadeadas (a=b=c=2;), sempre da direita para esquerda. • Uma variável pode ser iniciada assim que é declarada. Resumo . • O nome de uma variável deverá sempre representar a informação que ela contém. • A leitura e escrita de valores são realizadas scanf e printf, respectivamente, utilizando os formatos adequeado a cada tipo %d – int, %f – float e double e %c – char. • No caso do scanf, cada variável deverá ser precedida de um &. • A leitura de uma variável do tipo caractere também poderá ser realizada através da função getchar (). • O tipo int permite algumas variações short, long, signed e unsigned. Resumo
Compartilhar