Buscar

1.declaracao_identi_tipo

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 27 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Identificadores e Tipos de Dados 
Básicos 
Declarações 
Introdução 
 Um programa em C pode ser visto como 
uma seqüência de DECLARAÇÕES. 
 De maneira geral, uma DECLARAÇÃO 
introduz um novo nome - um 
IDENTIFICADOR - e associa a este uma 
interpretação. 
 Tome como exemplo o seguinte trecho de 
código: 
2 
Exemplo código 
1. #include <stdio.h> 
2. double x; 
3. void p(float b, int e) 
4. { 
5. short int i; 
6. x = b; 
7. ... 
8. } 
9. int main() 
10. { 
11. p(3.1415, 5); 
12. printf("%f",x); 
13. return 0; 
14. } 
3 
Linha a Linha 
 Na linha 2, vemos uma DECLARAÇÃO de 
VARIÁVEL GLOBAL. 
 Nas linhas 4 a 9, temos uma DECLARAÇÃO 
de FUNÇÃO que, por sua vez, é formada 
por uma DECLARAÇÃO de PARÂMETROS 
(linha 4), uma DECLARAÇÃO de VARIÁVEL 
LOCAL (linha 5) e uma seqûência de 
comandos (linhas 6-8). 
 
4 
Linha a Linha 
 Em cada uma dessas DECLARAÇÕES um 
novo IDENTIFICADOR é introduzido com 
uma interpretação particular! 
 Na declaração da linha 2, o 
IDENTIFICADOR introduzido é x e sua 
interpretação é VARIÁVEL GLOBAL do TIPO 
BÁSICO double. 
 
5 
Linha a Linha 
 Na declaração das linhas 4 a 9, o 
IDENTIFICADOR é p 
 Sua interpretação é FUNÇÃO que recebe 
como PARÂMETROS um valor do TIPO 
BÁSICO float e um valor do TIPO BÁSICO 
int 
 Tem uma VARIÁVEL LOCAL do TIPO 
BÁSICO short int, executa os comandos 
das linhas 7-8 e ao final nada retorna ( 
TIPO BÁSICO void). 
6 
Relação 
 Note que, nesses exemplos, a interpretação 
dada a um IDENTIFICADOR está ligada de 
maneira íntima com um TIPO de DADOS 
BÁSICO. 
 
7 
Identificadores 
 Em C, um IDENTIFICADOR é uma 
seqüência de LETRAS ou DÍGITOS onde: 
 O primeiro caracter deve ser uma LETRA ( 
'a',...,'z','A',...,'Z','_' ) 
 O caracter '_' é contado como uma LETRA 
 LETRAS maiúsculas (e.g., 'A') são 
consideradas diferentes de letras minúsculas 
(e.g., 'a‘) 
 isto implica que o IDENTIFICADOR aux é diferente 
de Aux que é diferente de AUX 
 PALAVRAS RESERVADAS tais como if, else, 
char, int, ... não podem ser usadas como 
IDENTIFICADORES. 
 
8 
Atividade 1: Validando 
 Vamos escrever um programa em C (id.c) 
que dado uma palavra (cadeia de 
caracteres) imprima na tela é um 
identificador! ou não é um identificador! 
caso a palavra obedeça ou não a definição 
de identificador dada acima. 
 
9 
Atividade 1: Validando - 
Partida 
1. #include <stdio.h> 
 
2. char str[80]; /* armazena uma cadeia de até 79 
caracteres */ 
 
3. int main() { 
4. printf("Digite uma palavra: "); 
5. scanf("%s", str); /* le do usário uma cadeia de 
caracteres */ 
6. ... 
7. } 
10 
Tipos de Dados Básicos 
 char : um único byte, capaz de conter um 
caracter no conjunto de caracteres local; 
 int : um inteiro, normalmente refletindo o 
tamanho natural dos inteiros da máquina 
hospedeira; 
 float : ponto flutuante em precisão simples; 
 double : ponto flutuante em dupla 
precisão; 
 void : conjunto vazio de valores. 
 
11 
Modificadores 
 Exceto void, os tipos de dados básicos 
podem ter vários MODIFICADORES 
precedendo-os. 
 Um MODIFICADOR é usado para alterar o 
significado de um tipo básico para adaptá-
lo à necessidade de diversas situações. 
São MODIFICADORES de tipos: 
12 
Modificadores 
 long 
 short 
 signed 
 unsigned 
13 
Modificadores 
 short ou long - referem-se a diferentes 
tipos de inteiros: A palavra int pode ser 
omitida e normalmente o é! 
 short = short int 
 long = long int 
 Obs.: 
 Alguns compiladores permitem long long int ! 
(Fora do Padrão ANSI) 
 long pode também ser aplicado a double de 
tal modo que: 
 float ≤ double ≤ long double 
 14 
Modificadores 
 signed ou unsigned - podem ser aplicados 
a char, ou a short ou long ( int ). 
Equivalencias 
 char = signed char ou char = unsigned char, 
a depender da máquina hospedeira; 
 signed int = int = signed 
 signed long = long 
 signed short = short 
 unsigned int = unsigned 
 Obs.: 
 Alguns compiladores podem permitir 
unsigned double ! (Fora do Padrão ANSI) 
 
15 
Tamanho e Faixa de Valores 
 O tamanho e faixa de valores dos tipos 
básicos de dados variam de acordo com: 
 
 tipo do processador 
 implementação do compilador 
 
 No entanto, o padrão ANSI C estipula 
valores mínimos: 
16 
Tamanho e Faixa de Valores 
17 
Atividade 2: Explorando 
<limits.h> 
 Nos arquivos de cabeçalho <limits.h> e 
<float.h> encontram-se definidas 
constantes simbólicas para a faixa de 
valores e tamanho em bytes dos tipos de 
dados básicos e modificados da linguagem 
C, conforme foram implementados em um 
dado compilador/máquina. 
18 
Atividade 2: Explorando 
<limits.h> 
 Nesta atividade, o seu objetivo é escrever 
um programa tipos.c que inclua os arquivos 
de cabeçalho <limits.h> e <float.h> e 
imprima - para os tipos mostrados na 
tabela 2.1 - as seguintes informações : 
 
 
TIPO VALOR_MIN VALOR_MAX Tamanho em 
Bytes 
char -128 127 1 
unsigned char 0 255 1 
... 
19 
Atividade 2: Explorando 
<limits.h> - Partida 
1. #include <limits.h> 
2. #include <float.h> 
 
3. char c; 
4. unsigned char uc; 
5. signed char sc; 
6. int i; 
7. ... 
 
8. int main(void) { 
9. printf("TIPO\t\t\tVALOR_MIN\t\tVALOR_MAX\tTAMANHO em 
BYTES\n"); 
10. printf("char\t\t\t%i\t\t\t%i\t\t%i\n", CHAR_MIN, 
CHAR_MAX, sizeof c); 
11. printf("unsigned char\t\t%i\t\t\t%i\t\t%i\n", 0, 
UCHAR_MAX, sizeof uc); 
12. printf("signed char\t\t%i\t\t\t%i\t\t%i\n", SCHAR_MIN, 
SCHAR_MAX, sizeof sc); 
13. ... 
14. } 
 
20 
Leitura Recomendada 
 C Completo e Total capítulo 2 
 Seebach, "Everything You Ever Wanted to 
Know about C Types" 
 What's in a type? 
 Floating point and derived types 
 Implementation details 
 Portability and pitfalls 
 http://pt.wikipedia.org/wiki/Tipo_de_dado 
 
21 
Leitura Recomendada 
 Para detalhes sobre representacao de 
caracteres: 
http://www.ime.usp.br/~pf/algoritmos/aula
s/char.html 
 Para detalhes sobre representação de 
números: 
inteiros (int) 
 http://www.ime.usp.br/~pf/algoritmos/aulas
/int.html 
 
22 
Leitura Recomendada 
 ponto flutuante (float, double) 
 http://en.wikipedia.org/wiki/Floating_point 
 http://en.wikipedia.org/wiki/Double_precisio
n 
 http://en.wikipedia.org/wiki/IEEE_754 
 
Para detalhes sobre o padrão ANSI C: 
Jones, Derek M. (2008) "The New C 
Standard: An Economic and Cultural 
Commentary." 
 
23 
Exercícios 
1. Faça por completo a atividade 1 
2. Faça por completo a atividade 2 
3. Utilizando os TIPOS inteiros em C, escreva 
programas para: 
a) Dado um número inteiro positivo n, calcular a soma 
dos n primeiros números naturais. 
b) Dado um número inteiro positivo n, imprimir os n 
primeiros naturais ímpares. 
a) Exemplo: Para n=4 a saída deverá ser 1,3,5,7. 
c) Dados n e dois números inteiros positivos i e j 
diferentes de 0, imprimir em ordem crescente os n 
primeiros naturais que são múltiplos de i ou de j e 
ou de ambos. 
a) Exemplo: Para n = 6 , i = 2 e j = 3 a saída deverá ser : 
0,2,3,4,6,8. 
 
24 
Exercícios 
d) Dizemos que um número natural é 
triangular se ele é produto de três números 
naturais consecutivos. Exemplo: 120 é 
triangular, pois 4.5.6 = 120. Dado um 
inteiro não-negativo n, verificar se n é 
triangular. 
e) Dado um inteiro positivo p, verificar se p é 
primo. 
f) Dados três números naturais, verificar se 
eles formam os lados de um triângulo 
retângulo.25 
Exercícios 
4. Utilizando os TIPOS ponto flutuante em C, 
faça programas para os seguintes 
enunciados: Um programa que leia uma 
temperatura em graus celsius e a 
converta para fahrenheit. 
a) Uma pessoa aplicou um capital de x 
complexos (1) a juros mensais de z durante 
1 ano. Deseja-se um programa que 
determine o montante de cada mês durante 
este período. 
b) Dados números reais a, b e c, calcular as 
raízes de uma equação do 2o grau da forma 
ax^2 + b^x + c = 0. 
 
26 
Exercícios 
5. Utilizando o TIPO char, re-escreva os 
programas anteriores para ao final 
perguntar ao usário: deseja processar 
outro valor? [s/n]. Se o usuário digitar 's' 
ou 'S' o programa deve continuar 
processando uma nova entrada; caso 
contrário deve terminar. 
27

Outros materiais