Ao projetar um algoritmo que soma contribuições em dinheiro para o fundo escolar, por que é preferível…
Publicado por Alexandre Lombardi dos Santos, fundador do GeraProva
Classificar informações, agrupando-as em coleções (conjuntos) e associando cada coleção a um ‘tipo de dado’.
Fonte: Base Nacional Comum Curricular (MEC).Questão
Ao projetar um algoritmo que soma contribuições em dinheiro para o fundo escolar, por que é preferível representar os valores monetários como inteiros (por exemplo, centavos) em vez de ponto flutuante?
- A) Texto (strings representando valores)
- B) Data (formato de data em vez de valor)
- C) Usar inteiro (representar em centavos).
- D) Ponto flutuante (com vírgula)
- E) Número decimal (com casas decimais)
✅ Resposta correta: alternativa C
Resolução passo a passo
- A pergunta pede o motivo pelo qual, em um algoritmo que soma contribuições em dinheiro, é preferível guardar valores como inteiros (por exemplo, centavos) e não como ponto flutuante.
- Resolvendo por conta própria, o problema central é a precisão. Números de ponto flutuante são armazenados em representação binária, e muitas frações decimais simples, como 0,1 ou 0,2, não têm representação exata nessa base. Assim, somas repetidas de valores como 0,10 podem acumular pequenos erros de arredondamento, e o total final pode sair ligeiramente diferente do esperado, o que é inaceitável em contabilidade.
- Quando o valor é guardado em centavos, por exemplo R$ 10,35 como 1035, todas as operações são feitas com números inteiros, que são exatos. A soma fica precisa, e a formatação com vírgula só é feita na exibição final.
- Comparando com o gabarito oficial, a alternativa C coincide com a minha conclusão, pois ela propõe justamente usar inteiro representando centavos.
- Por que as outras estão erradas: A) strings representam texto e não permitem somar valores diretamente sem conversão; B) datas servem para registrar instantes no tempo e não para quantias de dinheiro; D) ponto flutuante é justamente o tipo que se quer evitar por causa dos erros de arredondamento; E) número decimal com casas decimais é, na prática, a mesma ideia de ponto flutuante quando implementada de forma binária, portanto não resolve o problema.
💡 Dica: Considere as vantagens de precisão e arredondamento.
Alternativa por alternativa
Imagina que guardar o valor como texto garante exatidão, porque o texto preserva exatamente os dígitos digitados. Esquece que texto não pode ser somado como número sem conversão e que o problema de precisão não é resolvido por ele.
Confunde o tipo de dado de data com um formato útil para quantias, talvez por associar a palavra 'formato' a qualquer representação. Não percebe que datas representam instantes no tempo e não valores monetários.
Ponto flutuante pode introduzir erros de arredondamento; armazenar em centavos como inteiro mantém precisão exata em operações aritméticas financeiras.
Acredita que a vírgula da notação monetária exige ponto flutuante e que este é o tipo natural para dinheiro. Não sabe que o ponto flutuante acumula erros de arredondamento em frações como 0,1.
Por que engana: Confundir a precisão dos números de ponto flutuante com a necessidade de exatidão em cálculos financeiros, levando a erros de arredondamento.
Acha que basta indicar casas decimais para obter precisão, sem perceber que a forma de armazenamento continua sendo de ponto flutuante binário. A notação escrita não muda o erro interno de representação.
Raio-X da questão
representação de valores monetários
avaliacao
representação de valores monetários · tipos de dados em programação
Revisar a diferença entre inteiros e ponto flutuante em programação.
Confundir a precisão dos números de ponto flutuante com a necessidade de exatidão em cálculos financeiros, levando a erros de arredondamento.
ciencia_tecnologia
tomada_decisao
cotidiano
Questões parecidas com resolução
- Num sistema de pagamentos da cantina escolar, ao projetar variáveis para valores monetários, qual escolha evita erros de…
- Ao projetar um registro 'produto' com campo 'preco' para cálculos financeiros, qual tipo de dado reduz erros de…
- Ao construir um sistema de controle de notas de alunos, a média deve ser calculada a partir de dados do tipo inteiro…
- Em um algoritmo que percorre uma matriz 'vendas', cada registro tem campo 'valor' monetário. Qual tipo de variável é…
- Num algoritmo que lê notas decimais de alunos em sequência e atualiza um acumulador chamado 'total', qual tipo de…
- Em um algoritmo que divide dois valores armazenados como inteiros, o resultado apresentou parte decimal inesperada em…
🔎 Procurar outra questão
Procure no banco do GeraProva pelo tema ou por um trecho do enunciado. Cada questão já vem com resolução comentada e a análise de cada alternativa.
Professor: monte a prova com questões como esta, com gabarito e folha de respostas, em 30 segundos. Ver planos · Blog
