#!/bin/bash a=0; for i in $(seq 1 3 10); do a=$(exp...
Qual o resultado da execução do código?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Alternativa correta: E - 11
Para entender o resultado da execução do código presente na questão, precisamos primeiro compreender o que cada linha do script em shell (bash) está fazendo:
O início do script com #!/bin/bash indica que o interpretador a ser utilizado é o Bash, e isso define que estamos trabalhando com um script de shell no Linux.
A variável a é inicializada com o valor 0, e o loop for irá iterar sobre uma sequência de números gerada pelo comando $(seq 1 3 10). Este comando gera uma sequência que começa em 1 e vai até 10, incrementando de 3 em 3. Portanto, a sequência gerada é 1, 4, 7 e 10.
Em cada iteração do for, a variável a é atualizada para ser o valor da variável i (o elemento atual da sequência) incrementado de 1. Então, após cada iteração, a terá os seguintes valores:
- Iteração com
i=1:aé atualizado para1 + 1, resultando em 2 - Iteração com
i=4:aé atualizado para4 + 1, resultando em 5 - Iteração com
i=7:aé atualizado para7 + 1, resultando em 8 - Iteração com
i=10:aé atualizado para10 + 1, resultando em 11
Note que a variável a é sobrescrita a cada iteração e não acumula os valores. A última atribuição determina seu valor final.
Por fim, o comando echo $a exibe o valor final da variável a, que ao término do loop é 11. Portanto, a alternativa E é a correta.
Entender essa questão requer conhecimento sobre o funcionamento dos loops em bash, a sintaxe para atribuição de valores a variáveis e a forma de geração de sequências numéricas, bem como conhecimento sobre a execução de comandos e expressões aritméticas.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
O comando (seq 1 3 10) nos fala: conte de 1 até 10, andando de 3 em 3, portanto: 1,4,7,10
A variável a, assume os seguintes valores após a execução do comando (expr...): 2, 5, 8, 11, pois é somado 1 a variável $i
Como o último valor de $a é 11, o gabarito é a ALTERNATIVA E.
Obs.: Se o echo $a estivesse dentro do laço do .. done, o código iria nos retornar: 2,5,8,11
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo