← Questões de Programação

Programação · CESPE/CEBRASPE · 2021

Questão comentada de Programação

Assinale a opção que indica o resultado apresentado para o seguinte script. #!/bin/bash echo "Resultado..." for i in {0..12..2} do a=$ (($ i%3)) if [ $ a -eq 0 ] then echo "Alo valor $ i" fi done

Gabarito: B

Aqui o script mistura dois pontos bem cobrados em Bash: expansão de chaves e teste com aritmética. O trecho for i in {0..12..2} gera a sequência 0, 2, 4, 6, 8, 10 e 12, porque o passo é de 2 em 2. Depois, a linha a=$((i%3)) calcula o resto da divisão de i por 3, então o valor de a só será 0 quando i for múltiplo de 3. Como o if testa [ $a -eq 0 ], ele imprime a mensagem apenas quando i é 0, 6 e 12. Por isso a saída começa com "Resultado..." e em seguida aparecem exatamente esses três valores. O gabarito B está correto porque considera tanto a sequência gerada pelo for quanto a filtragem feita pelo módulo 3. Em provas de programação, a banca adora confundir você com a ideia de que a expansão {0..12..2} vai de 1 em 1, mas não vai. O passo precisa ser respeitado, e isso muda completamente o resultado final. Aqui, entender o resto da divisão é metade do jogo.

Continue treinando

Questões relacionadas