Considere o sistema de ponto flutuante F(\beta, t, m, M)=F(10,3,-4,5), que trunca a parcela que não pode ser incorporada à mantissa. Nesse sistema de ponto flutuante, qual o resultado de 10^{3}+1-10^{3} ?
(a) 0,1 \times 10^{-1}.
(b) 1 .
(c) 0,1 \times 10^{2}.
(d) 0 .
(e) Não sei.

Passo 1

O enunciado pede o valor do cálculo (10^{3}+1-10^{3}) no sistema de ponto flutuante F(10,3,-4,5), cujo detalhamento dado é:
  • base \beta=10,
  • precisão t=3 dígitos significativos (mantissa com 3 dígitos),
  • expoente mínimo m=-4 e máximo M=5,
  • o sistema trunca (descarta) os dígitos que não cabem na mantissa.
Informações relevantes fornecidas: \beta=10, t=3, truncamento, e a expressão a calcular (10^{3}+1-10^{3}). Não há outros dados.

Passo 2

Como os detalhes do sistema são essenciais, vamos revisar como representamos números nele.
Em base \beta=10 com precisão t=3 um número normalizado tem a forma
\pm d_0 . d_1 d_2 \times 10^{e},
onde d_0\in\{1,2,\dots,9\} é o primeiro dígito não nulo e d_1,d_2 são os próximos dois dígitos da mantissa (no total t=3 dígitos significativos). Truncamento significa que, quando um resultado tem mais dígitos do que t, nós simplesmente cortamos (descartamos) todos os dígitos depois do t-ésimo sem arredondar.
Explicando de forma bem direta: temos só 3 dígitos significativos para guardar. Se um cálculo gera mais dígitos, desaparecem os últimos pelo truncamento.

Passo 3

Representação dos termos na forma normalizada:
  • 10^{3} é exatamente representável como
10^{3} = 1.00 \times 10^{3},
onde a mantissa é 1.00 (três dígitos: 1,0,0).
  • 1 é exatamente representável como
1 = 1.00 \times 10^{0}.
Vamos somar esses dois em ponto flutuante, fazendo as operações na ordem escrita (esquerda para direita): primeiro 10^{3}+1, depois subtrair 10^{3}.

Passo 4

Para somar \,10^{3} + 1, alinhamos expoentes. Escrevendo ambos com expoente 3:
1.00 \times 10^{3} \quad\text{(este é \(10^{3}\))},é
1.00 \times 10^{0} = 0.00100 \times 10^{3} \quad\text{(escrevemos \(1\) com expoente \(3\); note os zeros extras)}.
Somando exatamente (antes do truncamento) obtemos
1.00\times10^{3} + 0.00100\times10^{3} = 1.00100\times10^{3}.
Agora aplicamos a regra do sistema: só podemos guardar t=3 dígitos significativos na mantissa. A mantissa atual de 1.00100 tem mais de 3 dígitos (é 1, 0, 0, depois mais dígitos). Com truncamento, mantemos apenas os primeiros três dígitos significativos 1,0,0 e descartamos o que vem depois. Logo
\operatorname{fl}(10^{3}+1)=1.00\times10^{3}=10^{3}.
Em palavras: 1000+1=1001 é representado por 1.001\times10^{3} exatamente, mas com apenas 3 dígitos significativos fica 1.00\times10^{3}=1000. O +1 “desaparece” por causa do truncamento.

Passo 5

Agora subtraímos 10^{3} do resultado arredondado/truncado:
\operatorname{fl}(\operatorname{fl}(10^{3}+1)-10^{3})=\operatorname{fl}(10^{3}-10^{3})=\operatorname{fl}(0)=0.
Portanto, efetuando as operações na ordem escrita (primeiro soma, depois subtrai), o resultado final em F(10,3,-4,5) com truncamento é 0.

Passo 6

Comentário didático e motivador (útil para prova): este exercício ilustra que a aritmética em ponto flutuante não é associativa. Se mudássemos a ordem das operações, por exemplo calculando primeiro 1-10^{3} e depois somando 10^{3}, obteríamos outro resultado: 1-10^{3}=-999 que é representável como -9.99\times10^{2}, e somando 10^{3} recuperamos 1. Ou seja, (10^{3}+1)-10^{3}=0 mas 10^{3}+(1-10^{3})=1. Então atenção na prova: a ordem das operações importa em ponto flutuante.
Vai dar certo — pratique uns exemplos parecidos para fixar a ideia de alinhamento e truncamento!

Resposta

(d) 0

Exercícios relacionados