#!/bin/bash a=0; for i in $(seq 1 3 10); do a=$(exp...

Próximas questões
Com base no mesmo assunto
Q924846 Programação
#!/bin/bash a=0; for i in $(seq 1 3 10); do a=$(expr $i + 1) done echo $a
Qual o resultado da execução do código?
Alternativas

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 para 1 + 1, resultando em 2
  • Iteração com i=4: a é atualizado para 4 + 1, resultando em 5
  • Iteração com i=7: a é atualizado para 7 + 1, resultando em 8
  • Iteração com i=10: a é atualizado para 10 + 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