FC ConcursosFC Concursos

Questão FC373197

Considere que há 3 categorias para pagantes de pensões alimentícias: a primeira engloba os que pagam até 1 valor base (R$ 900.00), a segunda os que pagam de 2 até 4 valores base e

Algoritmos e Lógica de Programação

FCC · 2018

Considere que há 3 categorias para pagantes de pensões alimentícias: a primeira engloba os que pagam até 1 valor base (R$ 900.00), a segunda os que pagam de 2 até 4 valores base e a terceira os que pagam acima de 4 valores base. Um programador apresentou o trecho em pseudocódigo abaixo como solução para identificar os pagantes destas 3 categorias. 

 

Var valor: real

... 

    imprima("Qual é o valor da pensão alimentícia? ")

   leia(valor) 

   escolha (valor)

      caso 900.00: imprima("Categoria 1")

      caso 1800.00, 2700.00, 3600.00: imprima("Categoria 2")

      senão imprima("Categoria 3")

      fim_escolha

.... 

 

Um Técnico Programador, ao analisar o trecho acima, afirma corretamente que 

  1. não há erro de lógica nem de sintaxe.
  2. o comando escolha deve ser substituído por um conjunto de comandos condicionais (se) aninhados que trate os valores  da variável valor (do tipo real) como solicitado.
  3. o comando escolha é o mais adequado para a solução, pois os valores das pensões são múltiplos de 900.00.
  4. embora haja erro de sintaxe no comando escolha, a lógica da solução atende de forma correta o que foi solicitado no problema.
  5. para que a lógica da solução fique correta, basta trocar o tipo da variável valor para inteiro e retirar os .00 dos valores de cada caso do comando escolha.
Mostrar resposta e comentário

Gabarito

B

Comentário do professor

A alternativa está correta porque a estrutura ESCOLHA‑CASO trabalha com correspondência a valores *exatos*, enquanto o enunciado pede teste por intervalos (até 1 base, de 2 a 4 bases, acima de 4 bases). Para isso é necessário usar condicionais que aceitem operadores relacionais.

Usando a variável valor, os testes devem ser, por exemplo, \(valor \le 900.00\) para a primeira categoria, \(1800.00 \le valor \le 3600.00\) para a segunda, e \(valor > 3600.00\) para a terceira. Essas comparações são feitas naturalmente com a estrutura SE (possivelmente aninhada):

se \(valor \le 900.00\) então
  imprima("Categoria 1")
senão se \(1800.00 \le valor \le 3600.00\) então
  imprima("Categoria 2")
senão
  imprima("Categoria 3")
fim_se

Conteúdo do catálogo FC Concursos · Atualizado em

Continue aprendendo