Questão nº 12
Questão de Informática · FCC TRT-20 2016 (nº 12)
Uma das funções da lógica de programação é definir os passos para se resolver problemas do mundo real através de programas de computador criados nas linguagens de programação. Considere, nesse contexto, a estrutura de passos em pseudolinguagem abaixo.
```
var salary: real
início
leia(salary)
se(salary<1000)
então salary salary + 100
senão se (salary<2000)
então salary salary + 200
senão se (salary<3000){
então salary salary + 300
senão se (salary<4000){
então salary salary + 400
senão salary salary + 1000
fim_se
fim_se
fim_se
fim_se
exiba(salary)
fim
```
Se for informado o valor 4000 para a variável salary será exibido o valor
- A4400
- B4300
- C5000 (alternativa correta)
- D4200
- E9000
Resposta comentada
Gabarito Alternativa C
O conceito-chave aqui é a estrutura condicional aninhada (se-então-senão ou if-else if-else), que permite ao programa tomar decisões diferentes com base em várias condições. O programa avalia as condições em sequência: se uma condição é verdadeira, o bloco de código associado a ela é executado e o restante das condições aninhadas é ignorado; se for falsa, ele passa para a próxima condição senão se ou para o bloco senão final se nenhuma condição anterior for verdadeira.
- (A) Incorreta: O valor 4400 seria exibido se a condição
salary < 4000fosse avaliada como verdadeira parasalary = 4000, o que não é o caso, pois 4000 não é menor que 4000. Essa é a armadilha da banca: muitos alunos podem confundir<(menor que) com<=(menor ou igual a) e parar a execução neste ponto, somando 400 a 4000. - (B) Incorreta: O valor 4300 não é alcançado por nenhuma das condições ou caminhos de execução com o valor de entrada 4000.
- (C) Correta: Com
salary = 4000, todas as condiçõessalary < 1000,salary < 2000,salary < 3000esalary < 4000são avaliadas como falsas. Como nenhuma das condiçõesseousenão sefoi verdadeira, o fluxo do programa segue para o último blocosenão(que é o "pega-tudo" para qualquer valor que não atendeu às condições anteriores), ondesalaryrecebesalary + 1000. Assim,4000 + 1000 = 5000. - (D) Incorreta: O valor 4200 não é alcançado por nenhuma das condições ou caminhos de execução com o valor de entrada 4000.
- (E) Incorreta: O valor 9000 não é alcançado por nenhuma das condições ou caminhos de execução com o valor de entrada 4000.
Fonte: FCC TRT-20 2016 Técnico Judiciário - Área Administrativa (Caderno Tipo 1). Reproduzida para fins de estudo.