Números reais
flutuante r = 5,0
O valor 5.0 é um número representado como uma fração decimal (tem um inteiro e uma parte fracionária). Na ciência da computação, esses números são chamados de números reais.
Um número real é um número que possui uma parte inteira e uma parte fracionária. As partes inteiras e fracionárias são separadas umas das outras por um ponto, não uma vírgula como na matemática.
Mesmo que a parte fracionária do número seja igual a zero, como na variável r do exemplo, o compilador ainda criará uma variável real na memória. O ponto, por assim dizer, é um sinal para o tradutor de que é necessário criar uma variável real.
Números muito grandes e muito pequenos são escritos usando "ponto flutuante" (no chamado formato científico).
No formato científico, um número é representado como mantissa(parte significativa do número) e expoente. Quando escritos, a mantissa e o expoente são separados um do outro pela letra e (denotando 10 até certo ponto).
Por exemplo, você pode armazenar o valor da carga de um elétron em uma variável
( \(1,60217662 \times 10^{-19}\) Kl), escrito como
flutuarEl= 1.60217662e-19
// para uma ordem positiva, o sinal + pode ser omitido
Quase todos os números reais não podem ser armazenados na memória do computador com precisão perfeita, pois um número limitado de bits é alocado para seu armazenamento. Portanto, ao calcular com números reais, os erros associados à imprecisão da representação se acumulam. Além disso, quanto menos espaço alocado, maior será esse erro. Para diminuir o erro em C++, é utilizado o tipo double , que armazena um número real com dupla precisão na memória (ocupa oito bytes de memória, enquanto o tipo float - 4 bytes).
|
Entre
Você pode inserir várias variáveis reais do fluxo de entrada e escrevê-las em variáveis da maneira padrão:
flutuante x, y;
cin>> x>> y;
O primeiro número vai para a variável x , o segundo - para y .
Conclusão
Ao exibir números reais, 6 casas decimais são exibidas por padrão, com o formato científico ou ponto fixo selecionado automaticamente.
O formato de saída pode ser personalizado. Para isso, é utilizada uma biblioteca adicional iomanip - manipuladores que controlam a saída.
Para saída em formato de ponto fixo, o manipulador fixed é usado, para formato científico - científico . Em seguida, você precisa determinar o número de dígitos na parte fracionária usando o manipulador setprecision() . Usando o manipulador setw() , você pode definir o número total de posições alocadas para a saída numérica.
Exemplo
flutuante x = 1,0/6;
cout << fixa << definirprecisão(9); // configura para exibir 9 dígitos na parte fracionária
cout << setw(12) << x;
A tela exibirá
_0.166666672
Todos os comandos podem ser escritos em uma linha:
cout << fixa << setprecision(9) << setw(12) << x;
|
Operações com números reais. módulo cmath
Ao trabalhar com números reais, podemos usar o já conhecido módulo math , que contém um grande número de funções integradas.
Ao resolver problemas, muitas vezes é necessário arredondar números reais para os valores inteiros mais próximos. Existem duas funções para isso.
É preciso lembrar!
1. com conversão de tipo explícita ( float x=1.5; int y = int(x)) - a parte fracionária de um número real é cortada ( y = 1) ;
2. função floor(x) - retorna o maior inteiro menor ou igual a x (arredondado para baixo);
3. função ceil(x) - retorna o menor inteiro maior ou igual a x (arredondado para cima).
Aqui estão as funções mais úteis contidas no módulo cmath .
Função |
Descrição |
Arredondamento |
round(x)
C++11
| Arredonda um número para o inteiro mais próximo. Se a parte fracionária do número for 0,5, o número será arredondado para o número inteiro mais próximo. |
trunc(x)
C++11
| Descarta a parte fracionária |
piso(x) |
Arredonda um número para baixo ("piso"), portanto piso(1.5) == 1 , piso(-1.5) ==  ; -2 |
ceil(x) |
Arredonda um número para cima ("ceiling"), enquanto ceil(1.5) == 2 , ceil(-1.5) ==  ; -1 |
abs(x) |
Módulo (valor absoluto). |
fabs(x) |
Número real do módulo |
Raízes, logaritmos |
sqrt(x) |
Raiz quadrada. Uso: y = sqrt(x) |
pow(x, y) |
Eleva x à potência de y. \(x^y\) |
log(x) |
Logaritmo natural. |
exp(x) |
A base dos logaritmos naturais e = 2,71828... |
Trigonometria |
sin(x) |
Seno de um ângulo especificado em radianos |
cos(x) |
Cosseno de um ângulo especificado em radianos |
tan(x) |
A tangente de um ângulo especificado em radianos |
asin(x) |
Arcsine, retorna o valor em radianos |
acos(x) |
Arco cosseno, retorna o valor em radianos |
atan(x) |
Arcotangente, retorna valor em radianos |
atan2(y, x) |
Ângulo polar (em radianos) do ponto (x, y). |
|