Вы находитесь на странице: 1из 8

o MC-102 Algoritmos e Programac a de Computadores IC-UNICAMP

Aula 03 - Vari aveis


Por: Lu s Augusto Angelotti Meira (Sala IC-71) 1S2005

Objetivos

Conceituar constantes e vari aveis, denir vari aveis em C, atribui c ao, tipos de vari aveis, int, float, double, long, char, inteiros com e sem sinal, inicializar vari aveis, nome de vari aveis, palavras chaves.

Motiva c ao

Vari aveis s ao importantes para facilitar a programa c ao. Comandos repetitivos cam mais sucintos com vari aveis. Atribui c ao e uma ferramenta fundamental da programa c ao.

Aula e Exemplos

A aula que se segue baseou-se em [1, 3, 2].

3.1

Constantes

Exemplos de constantes: c 8 "Primeiro Programa"

Programas: #include <stdio.h> int main(void){ printf("O programa printf("O programa printf("O programa printf("O programa printf("O programa return 1; }

A imprime o n umero 2\n"); %c imprime o n umero 2\n",A); A imprime o n umero %d\n",2); %c imprime o n umero %d\n",A,2); %c %s %d\n",A,"imprime o n umero",2);

A sa da deste programa ser a O O O O O programa programa programa programa programa A A A A A imprime imprime imprime imprime imprime o o o o o n umero n umero n umero n umero n umero 2 2 2 2 2

3.2

Vari aveis

Usar o exemplo da caixinha de sapato e f osforo. Um vari avel inteira e uma caixinha de f osforo. O n umero que ela representa e um valor que ca guardado dentro da caixinha, como, por exemplo, n umero de f osforos nela. Existe um limite para o n umero que ela representa. Uma vari avel float e uma caixa de sapato e o valor que ela representa e, por exemplo, o comprimento do sapato. N ao se pode misturar o conte udo entre tipos diferentes. Declarando uma vari avel em C: int num; Atribuindo um valor a uma vari avel: num = 3;

Programa que usa vari avel: #include <stdio.h> int main(void){ int num; num = 10; printf("O programa A imprime o n umero %d\n",num); return 1; }

A sa da deste programa ser a: O programa A imprime o n umero 10

3.3

Tipos de Vari aveis

Em C temos os seguintes tipos b asicos de vari aveis: char: Guarda um caracter; int: Guarda um n umero inteiro; float: Guarda um n umero real com certa precis ao; double: Guarda um n umero real com precis ao maior que oat; void: Tipo vazio. Temos algumas varia c oes destes tipos, que s ao: unsigned char: caracter sem sinal; long int: n umero inteiro, com dom nio estendido; unsigned int: numero inteiro positivo; unsigned long int: numero inteiro positivo com dom nio estendido. short int: inteiro com dom nio reduzido. unsigned short int: inteiro positivo com dom nio reduzido. Caracter sticas dos tipos. Os tipos variam com a arquitetura. O tipo int tem tamanho igual ao do barramento do processador. Antigamente este valor era de 16b e hoje e de 32b. Os tamanhos dos tipos abaixo foram extra dos de um pentium IV.

Tipo char unsigned char int unsigned int long int unsigned long int short int unsigned short int float double long double

Num de bits 8 8 32 32 32 32 16 16 32 64 96 mantissa 7 31 23 52

Formato i/o %c %c %d %u %li %lu %hi %hu %f %lf

In cio -128 0 -2.147.483.648 0 -2.147.483.648 0 -32.768 0 38 (+/)10 (+/)10308

Fim 127 255 2.147.483.647 4.294.967.295 2.147.483.647 4.294.967.295 32.767 65.535 (+/)1038 (+/)10308

character long integer float double long double O programa #include <stdio.h>

bits 8 32 32 64 96

exponent 0 0 8 11

sign 1 1 1 1

int main(void){ float a = 1000.43; float b = 1000.0; printf("%f\n",a - b); return 1; } Em uma implementa c ao qualquer de C, o c odigo acima imprime 0.429993. Arrredondamentos, truncamentos e aproxima c oes n ao s ao realmente um problema do C; s ao um problema da ci encia da computa c ao. Ponto utuante e uma aproxima c ao. O padr ao IEEE para 32 bits suporta um bit para sinal, 8 bits para o expoente e 23 bits para a mantissa. Devido ao fato de que uma mantissa, representada em sistema bin ario, tem a forma 1.xxxxx... o primeiro d gito um e suprimido e voc e tem efetivamente 24 bits para mantissa. O n umero 1000.43 n ao e representado exatamente em ponto utuante ou formato duplo. 1000.43 e, na realidade, representado pelo seguinte padr ao de bits O s indica a posi c ao do bit de sinal, e s indicam as posi c oes do expoente, e os m s indicam as posi c oes da mantissa): seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm 00000100111110100001101110000101 ++ 9 111.1010.0001.1011.1000.0101

2^9*(1),111.1010.0001.1011.1000.0101 1.111.101.000,01101110000101 A n umero e 1111101000.01101110000101 ou 1000.429992675781. Com 24 bits de mantissa tem-se uma precis ao de 1 parte em 16M para ponto utuante. O tipo double propicia uma maior precis ao porque tem 53 bits de mantissa.

3.4

Inicializando uma Vari avel

Uma vari avel pode ser inicializada atrav es de uma atribui c ao, como no programa abaixo: #include <stdio.h> int main(void){ int evento ; char corrida; float tempo; evento = 5; corrida = C; tempo = 27.25; printf("O tempo vitorioso na eliminat oria %c",corrida); printf("\nda competi c~ ao %d foi %f.", evento, tempo); return 1; }

Ou diretamente em sua declara c ao: #include <stdio.h> int main(void){ int evento = 5 ; char corrida = C; float tempo = 27.25; printf("O tempo vitorioso na eliminat oria %c",corrida); printf("\nda competi c~ ao %d foi %f.", evento, tempo); return 1; } Nos dois casos, a sa da do programa ser a: O tempo vitorioso na eliminat oria C da competi c~ ao 5 foi 27.250000.

3.5

Nome das Vari aveis

O nome das vari aveis pode ser qualque palavra que n ao seja uma palavra chave da linguagem. possivel conter um n E umero na palavra:Casa1 N ao e aceit avel iniciar com um n umero: 1casa (errado) possivel utilizar subscrito: Casa da ana E N ao pode-se utilizar: { ( + - * / ; . , ? As seguintes palavras j a tem um signicado na linguagem C e por esse motivo n ao podem ser utilizadas como nome de vari aveis: auto break char const continue default do double enum extern float for goto if int register return short signed sizeof static struct typedef union unsigned void volatile while

Exerc cios

1) Corrija o seguinte programa: #include <stdio.h> int main{void}( printf(Existem %d semanas no ano., 56) return1; ) 2) Execute o seguinte programa e veja as mensagem de erro geradas pelo compilador e corrija-o: #include <stdio.h> int Main(void){ int a=1; b=2; c=3; printf("Os n umeros s~ ao: %d, %d e %d\n,a,b,c,d) } 3) Qual ser a a sa da do programa abaixo?

#include <stdio.h> int main(void){ printf("%s\n%s\n%s","um","dois","tr^ es"); } 4) O que e uma vari avel em C? 5) O que e uma constante em C? De exemplos. 6) Quais nomes de vari aveis s ao aceitas pelo compilador C? 3ab ab3 a3b FIM sim int \meu A

nao A123 papel-branco a* c++ *nova variavel 7) Quais das seguintes instruc c oes s ao corretas? int a; float b; double float c; unsigned char d; long float e;

Refer encias
[1] Henrique Jos e dos Santos. Curso de linguagem c, ufmg. Universidade Federal de Minas Gerais. [2] Fl avio Keidi Miyazawa. Notas de aula de algoritmos e programa c ao de computadores. Colaboradores : Cid Carvalho de Souza e Tomasz Kowaltowski. [3] Victorine, Viviane, and Mizrahi. Treinamento em linguagem c, curso completo, m odulo 1.

Вам также может понравиться