Trabalhar com Aritmética de Ponto Flutuante em C

CBeginner
Pratique Agora

Introdução

Neste laboratório, você aprenderá a trabalhar com aritmética de ponto flutuante em C. Você começará declarando variáveis float e double, em seguida, realizará várias operações aritméticas nelas e, finalmente, imprimirá os resultados com precisão apropriada. O laboratório abrange habilidades essenciais para trabalhar com números decimais e realizar cálculos matemáticos precisos na programação C.

O primeiro passo demonstra como declarar variáveis de ponto flutuante usando os tipos de dados float e double, e como imprimir os valores com a precisão desejada. O segundo passo concentra-se em realizar operações aritméticas, como adição, subtração, multiplicação e divisão, em números de ponto flutuante.

Declarar Variáveis Float ou Double

Neste passo, aprenderá a declarar variáveis de ponto flutuante em C usando os tipos de dados float e double. Variáveis de ponto flutuante são essenciais para armazenar números decimais e realizar cálculos matemáticos precisos.

Primeiro, vamos criar um novo arquivo C para demonstrar as declarações de variáveis:

cd ~/project
nano floating_variables.c

Agora, adicione o seguinte código ao arquivo:

#include <stdio.h>

int main() {
    // Declarando variáveis float
    float temperatura = 98.6;
    float preco = 19.99;

    // Declarando variáveis double
    double pi = 3.14159265359;
    double numero_grande = 1234567890.123456789;

    // Imprimindo as variáveis
    printf("Temperatura (float): %.2f\n", temperatura);
    printf("Preço (float): %.2f\n", preco);
    printf("Pi (double): %.5f\n", pi);
    printf("Número Grande (double): %.9f\n", numero_grande);

    return 0;
}

Compile e execute o programa:

gcc floating_variables.c -o floating_variables
./floating_variables

Exemplo de saída:

Temperatura (float): 98.60
Preço (float): 19.99
Pi (double): 3.14159
Número Grande (double): 1234567890.123456789

Vamos analisar o código:

  • float é usado para números de ponto flutuante de precisão única (tipicamente 4 bytes)
  • double é usado para números de ponto flutuante de precisão dupla (tipicamente 8 bytes)
  • Os especificadores de formato %.2f e %.5f controlam a precisão dos decimais ao imprimir.

Realizar Operações Aritméticas em Valores de Ponto Flutuante

Neste passo, aprenderá a realizar várias operações aritméticas em números de ponto flutuante em C, incluindo adição, subtração, multiplicação e divisão.

Vamos modificar o arquivo anterior para demonstrar a aritmética de ponto flutuante:

cd ~/project
nano floating_arithmetic.c

Adicione o seguinte código ao arquivo:

#include <stdio.h>

int main() {
    // Declarar variáveis de ponto flutuante
    float a = 10.5;
    float b = 3.2;

    // Adição
    float soma = a + b;
    printf("Adição: %.2f + %.2f = %.2f\n", a, b, soma);

    // Subtração
    float diferenca = a - b;
    printf("Subtração: %.2f - %.2f = %.2f\n", a, b, diferenca);

    // Multiplicação
    float produto = a * b;
    printf("Multiplicação: %.2f * %.2f = %.2f\n", a, b, produto);

    // Divisão
    float quociente = a / b;
    printf("Divisão: %.2f / %.2f = %.2f\n", a, b, quociente);

    // Operações aritméticas mistas
    float calculo_misto = (a + b) * (a - b) / b;
    printf("Cálculo Misto: (%.2f + %.2f) * (%.2f - %.2f) / %.2f = %.2f\n",
           a, b, a, b, b, calculo_misto);

    return 0;
}

Compile e execute o programa:

gcc floating_arithmetic.c -o floating_arithmetic
./floating_arithmetic

Exemplo de saída:

Adição: 10.50 + 3.20 = 13.70
Subtração: 10.50 - 3.20 = 7.30
Multiplicação: 10.50 * 3.20 = 33.60
Divisão: 10.50 / 3.20 = 3.28
Cálculo Misto: (10.50 + 3.20) * (10.50 - 3.20) / 3.20 = 24.41

Pontos chave sobre aritmética de ponto flutuante:

  • Use o especificador de formato %.2f para controlar a precisão decimal.
  • As operações de ponto flutuante seguem as regras matemáticas padrão.
  • Esteja ciente das potenciais limitações de precisão com cálculos de ponto flutuante.

Imprimir Resultados com Precisão Adequada

Neste passo, aprenderá a controlar a precisão da saída de números de ponto flutuante usando especificadores de formato em C.

Crie um novo arquivo para explorar diferentes formatações de precisão:

cd ~/project
nano floating_precision.c

Adicione o seguinte código ao arquivo:

#include <stdio.h>

int main() {
    // Declarar variáveis de ponto flutuante
    double pi = 3.14159265358979323846;
    double numero_grande = 1234567.89012345;

    // Impressão padrão (precisão limitada)
    printf("Impressão Padrão:\n");
    printf("Pi: %f\n", pi);
    printf("Número Grande: %f\n\n", numero_grande);

    // Controlando casas decimais
    printf("Precisão Controlada:\n");
    printf("Pi com 2 casas decimais: %.2f\n", pi);
    printf("Pi com 5 casas decimais: %.5f\n", pi);
    printf("Pi com 10 casas decimais: %.10f\n\n", pi);

    // Notação científica
    printf("Notação Científica:\n");
    printf("Número Grande (padrão): %e\n", numero_grande);
    printf("Número Grande (3 casas decimais): %.3e\n\n", numero_grande);

    // Largura e precisão combinadas
    printf("Largura e Precisão:\n");
    printf("Pi (largura 10, 4 casas decimais): %10.4f\n", pi);
    printf("Número Grande (largura 15, 2 casas decimais): %15.2f\n", numero_grande);

    return 0;
}

Compile e execute o programa:

gcc floating_precision.c -o floating_precision
./floating_precision

Exemplo de saída:

Impressão Padrão:
Pi: 3.141593
Número Grande: 1234567.890123

Precisão Controlada:
Pi com 2 casas decimais: 3.14
Pi com 5 casas decimais: 3.14159
Pi com 10 casas decimais: 3.1415926536

Notação Científica:
Número Grande (padrão): 1.234568e+06
Número Grande (3 casas decimais): 1.235e+06

Largura e Precisão:
Pi (largura 10, 4 casas decimais):      3.1416
Número Grande (largura 15, 2 casas decimais):     1234567.89

Pontos chave sobre formatação de precisão:

  • %f é o especificador de formato padrão para números de ponto flutuante.
  • .2f significa 2 casas decimais, .5f significa 5 casas decimais.
  • %e ou %E mostra a notação científica.
  • Os especificadores de largura ajudam a alinhar e formatar a saída.

Resumo

Neste laboratório, aprendeu a declarar variáveis de ponto flutuante usando os tipos de dados float e double, e como realizar operações aritméticas nesses valores, incluindo adição, subtração, multiplicação e divisão. Também aprendeu a controlar a precisão das casas decimais ao imprimir números de ponto flutuante usando especificadores de formato. Essas habilidades são essenciais para trabalhar com dados decimais e realizar cálculos matemáticos precisos na programação C.