Pular para o conteúdo principal

Questão de Algoritmos e Estrutura de Dados — Algoritmos — CESPE / CEBRASPE 2022

Algoritmos e Estrutura de DadosAlgoritmos
Código
ce133699
Banca
CESPE / CEBRASPE
Órgão
BNB
Ano
2022
Nível
Superior
Cargo
Analista de Sistemas - Desenvolvimento de Sistemas
A respeito dos conceitos de função e avaliação de expressões, julgue o item subsequente.Considere o seguinte algoritmo.função real arredonda (real valor)valor = inteiro ((valor)/8.0)*8retorne valorreal xx = (leia(“Digite um valor: “))escreva (arredonda(x))A função arredonda(), presente no algoritmo precedente, retorna o arredondamento de um número de entrada para um valor múltiplo de 8.
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.

Função de arredondamento para múltiplo

Gabarito oficial: C (Certo). Contudo, a análise do algoritmo demonstra que a afirmação está ERRADA (gabarito correto seria E). A função arredonda() não realiza arredondamento para o múltiplo de 8 mais próximo; ela trunca o valor para o múltiplo de 8 imediatamente inferior.

O algoritmo é:

função real arredonda (real valor)
    valor = inteiro ((valor)/8.0)*8
    retorne valor

A operação inteiro(x) normalmente retorna a parte inteira de x (truncamento). Assim, inteiro((valor)/8.0)*8 equivale a:

  • Dividir o valor por 8.0

  • Truncar o resultado (desprezar a parte decimal)

  • Multiplicar por 8

Isso produz o maior múltiplo de 8 que é menor ou igual ao valor original, não o mais próximo. Veja exemplos:

valor

valor/8.0

inteiro()

resultado

múltiplo de 8 mais próximo

5

0.625

0

0

8

10

1.25

1

8

8

12

1.5

1

8

8 ou 16? (distância 4 para ambos, mas regra usual: 8)

15

1.875

1

8

16 (distância 1)

16

2.0

2

16

16

20

2.5

2

16

16

Para valores como 15, o algoritmo retorna 8, enquanto o arredondamento para múltiplo de 8 mais próximo seria 16. Portanto, a função não arredonda; ela trunca (ou faz "floor") para o múltiplo de 8 inferior.

  1. 1Entrada: valor real x
  2. 2Divide por 8.0
  3. 3Trunca parte decimal
  4. 4Multiplica por 8
  5. 5Retorna múltiplo inferior
LEVEL · soulevel.com.br
NÃO CAIA NESSA!

A banca utiliza o termo "arredondamento" de forma ambígua. O candidato pode associar a palavra a qualquer aproximação, mas o algoritmo claramente implementa um truncamento. A diferença entre truncar e arredondar é sutil, mas crucial: arredondar escolhe o valor mais próximo; truncar simplesmente descarta a parte decimal.

Gabarito correto (pela lógica do algoritmo): E (ERRADO). A afirmação original está incorreta, pois a função não retorna o arredondamento para múltiplo de 8, mas sim o truncamento.

Link permanente: /questoes/ce133699