Suponha que você precise representar os valores indicados nos itens abaixo em um programa escrito na Linguagem C. Indique o tipo de dado mais adequado para cada caso, explicando o porquê da escolha.
Área de um terreno

Passo 1

O enunciado pede que eu indique o tipo de dado em C mais adequado para representar a “Área de um terreno”. Informação fornecida: o dado a representar é exatamente “Área de um terreno” — não há unidade explicitada nem limites numéricos no enunciado. Vou então tratar o que um “área de terreno” normalmente significa (valores possíveis, sinal, necessidade de casas decimais) para escolher o tipo mais apropriado.

Passo 2

O que é a área, numericamente?
  • Área é uma grandeza contínua, não-negativa (ou seja, \ge 0).
  • Normalmente mede-se em unidades como m^2, ha (hectare), km^2 etc. Ex.: um lote pode ter 10,5 \,m^2 (um valor com parte fracionária).
  • Conclusão prática: precisamos de um tipo que aceite números reais (com parte fracionária) e que possibilite representar desde valores pequenos (frações de metro quadrado) até valores muito grandes (áreas rurais extensas).

Passo 3

Posso usar inteiro (int/long) ou ponto flutuante (float/double)?
  • Inteiros não permitem representar frações (por exemplo, 12,5 \,m^2); por isso, em geral, inteiros simples (int) são inadequados.
  • Uma alternativa com inteiro é armazenar a área em uma unidade menor e inteira (ex.: centímetros quadrados) usando um inteiro de 64 bits para garantir exatidão. Isso dá exatidão absoluta, mas complica conversões de unidade e pode causar overflow para áreas gigantes.
  • A opção direta e prática em C é usar ponto flutuante: float, double ou long\\ double.

Passo 4

Comparando float, double e long\\ double:
  • float: precisão ≈ 7 dígitos decimais; alcance ≈ 10^{38}. Pode perder casas decimais importantes quando números são grandes. Ex.: para uma área de 12345,67 \,m^2, um float normalmente consegue representar com algumas casas decimais, mas se a área for da ordem de milhões, a precisão relativa cai.
  • double: precisão ≈ 15–16 dígitos decimais; alcance enorme ( 10^{308}). Para medidas de terreno (até milhares ou milhões de m^2 ou mesmo km^2), double mantém precisão suficiente para centímetro ou milímetro relativo em praticamente todos os casos práticos.
  • long\\ double: precisão maior (depende da implementação), mas raramente necessária para dados de terreno e tem portabilidade/uso menos comum.

Passo 5

Exemplos numéricos para intuir por que escolher double
  • Lote urbano típico: 100,00 \,m^2 — precisa de duas casas decimais.
  • Fazenda grande: 1{,}000{,}000{,}00 \,m^2 (cem hectares = 1{,}000{,}000 \,m^2). Mesmo aqui, quereríamos manter precisão de, digamos, 0,01 \,m^2 — isso exige algo como 8 a 9 dígitos totais, bem dentro do double.
  • Área de países: ordem de 10^{12} \,m^2. double consegue representar esses valores, embora a precisão absoluta (em metros quadrados) vá diminuir para números tão grandes — mas quase nunca precisamos de precisão em centímetros para áreas continentais.
Conclusão prática: double é o tipo que oferece o melhor equilíbrio entre precisão, alcance e simplicidade de uso em C para representar áreas de terreno.

Passo 6

Observações práticas de implementação em C (como usar corretamente):
  • Declaração típica:
    double area;
  • Inicialização/exemplo:
    area = 1234,56; (em C você escreveria 1234.56 no código; aqui a vírgula é usada nos textos para separar decimais)
  • Entrada e saída:
    • Para ler: use scanf("%lf", &area);
    • Para imprimir com, por exemplo, duas casas decimais: printf("%.2f\n", area);
  • Se você precisar de exatidão inteira (sem erros de representação binária) e trabalhar sempre com uma unidade fixa (por ex., centímetros quadrados), outra alternativa é usar um inteiro de 64 bits (long long) e armazenar a área em centímetro quadrado — mas isso exige cuidado com unidades e possíveis overflows.

Passo 7

Resumo final e recomendação curta
  • Para representar a área de um terreno em um programa C, o mais apropriado na maioria dos casos é usar double: ele permite frações, tem precisão suficiente para medidas práticas de terreno e é simples de usar com as funções padrão de I/O. Se houver requisito estrito de exatidão decimal (por exemplo, valores monetários atrelados à área) ou regra de unidade inteira, avaliar usar inteiro de 64 bits com unidade fixa; caso contrário, double é a escolha correta.

Resposta

double

Exercícios relacionados