segunda-feira, 1 de fevereiro de 2010

Operador modificador de tipo:

Essa é uma continuação da aula de números de ponto flutuante.
Vamos a um exemplo diretamente para vocês entenderem melhor o que é um modificador de tipo!
ex:

int n,i;
float divisao;

i=5
n=9;
divisao=i/n;
printf("%f",divisao);


oras, fácil não?
o valor mostrado será 0.5555.. certo?
ERRADO!

Não é porque declaramos divisão como uma variável de número flutuante que ela armazenará valores de ponto flutuante.
Como ambas as variáveis, i e n, são variáveis inteiras, o resultado dessa operação será o valor inteiro resultado dessa operação, ou seja, no caso, o valor inteiro é zero, logo, divisão valerá 0.000..
Somente quando temos um ou ambos os operandos da operação declarados como número flutuante, essa conta será feita corretamente!
ex:

int i;
float n,soma;

i=5;
n=9.0;
divisao=i/n;
printf("%f",divisao);

Agora sim, o valor da divisão aparecerá 0.555.. pois, como uma das variáveis da operação é de ponto flutuante, a operação também se torna de ponto flutuante!

Mas, vocês poderiam perguntar, oras, porque não declaramos todas as variáveis como ponto flutuante e fim de papo?
É simples, o tamanho do programa, aumenta muito com relação a declararmos as variáveis como se fossem inteiras!
Então, foi necessária a criação do operador modificador de tipo!
Nesse nosso caso, i=5 e n=9, ou seja, ambas são inteiras, então, como vamos fazer essa operação se tornar de ponto flutuante?
Simples, vejamos o exemplo!
ex:

int n,i;
float soma;

i=5;
n=9;
soma=(float)i/n;
printf("%f",soma);

com esse (float) na frente da variável i, "transformamos" o i momentaneamente, em uma variável de ponto flutuante e, assim, conseguimos efetuar a operação e obter o resultado desejado!

ex:

Dado um inteiro positivo n, calcular e imprimir o valor da seguinte soma:

1/n + 2/(n-1) + ... n/1

qualquer dúvida, contatem-me!
konbawa!

Nenhum comentário:

Postar um comentário