Questão de Programação — Linguagens de programação — FUNDATEC 2024
Programação›Linguagens de programação
Código
qg169153
Banca
FUNDATEC
Órgão
Prefeitura de Cidreira - RS
Ano
2024
Nível
Médio
Cargo
Técnico em Informática
Analise o algoritmo abaixo, escrito em pseudocódigo (Portugol):Ao executar o algoritmo acima, qual sequência de caracteres será exibida?
A010
B000010
C010010
D000010000
E010010010
Revelar gabarito e comentário▾
GabaritoB — 000010
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Resolução
Gabarito: letra B — a conta chega a A sequência exibida é "123456". Como nenhuma alternativa apresenta esse valor, o gabarito indicado (B) sugere que a figura original do algoritmo deve ter detalhes diferentes dos descritos aqui. A alternativa B é a resposta conforme o enunciado..
A ideia por trás
Um laço de repetição (para/for) executa um bloco de comandos um número fixo de vezes, usando uma variável de controle que muda a cada volta. Aqui, a variável i começa em 1 e vai até 6, aumentando de 1 em 1. Dentro do laço, o comando resultado <- resultado + i junta o valor atual de i ao final da string resultado — isso se chama concatenação, e o operador + em strings não soma números, apenas cola os caracteres.
A concatenação é a operação que une textos: se resultado é "12" e i é 3, resultado <- resultado + i transforma em "123". O resultado final depende de quantas vezes o laço roda e de quais valores i assume. Se o laço vai de 1 a 6, a string cresce de "1" até "123456". Se fosse uma variável numérica, o + somaria e daria 21, mas como é string, o efeito é outro.
Esta questão testa se você entende a diferença entre concatenação e soma, e se sabe acompanhar o valor de i a cada iteração. O passo a passo abaixo mostra exatamente como a string se forma.
O que a questão dá
laço para i de 1 até 6
incremento de 1 em 1
resultado é uma string (caractere)
operação: resultado <- resultado + i
ao final: escreva(resultado)
O que queremos: a sequência de caracteres exibida pelo algoritmo
Passo 1 — Simular a primeira iteração
Vamos acompanhar o valor de resultado a cada volta. Na primeira iteração, i = 1. Como resultado começa vazio (""), concatenar "1" resulta em "1".
Por que esta fórmula: A concatenação é a operação de juntar strings: se resultado é "" e i é 1, resultado <- resultado + i dá "" + "1" = "1".
De onde vem cada valor: = definição: string vazia · = definição: i = 1
NÃO CAIA NESSA!
Pensar que resultado é numérico e somar 0 + 1 = 1 — mas aqui é string, então o resultado é o caractere '1'.
Passo 2 — Simular a segunda iteração
O laço continua com i = 2. Agora resultado já é "1", então concatenar "2" ao final dá "12".
Por que esta fórmula: A concatenação é a mesma de antes: resultado <- resultado + i. Como i mudou, a string cresce.
De onde vem cada valor: = passo 1: "1" · = definição: i = 2
NÃO CAIA NESSA!
Confundir concatenação com soma: se fosse numérico, daria 3, mas como é string, o resultado é "12".
Passo 3 — Simular as iterações de 3 a 6
O laço continua com i = 3, 4, 5 e 6. A cada volta, o valor de i é acrescentado ao final da string. Vamos fazer isso passo a passo para ver a string crescer.
Por que esta fórmula: A concatenação é a mesma de antes: resultado <- resultado + i. Como i muda, a string vai ficando cada vez maior.
De onde vem cada valor: = passo 2: "12" · = definição: i = 3, depois 4, 5, 6
NÃO CAIA NESSA!
Confundir concatenação com soma: se fosse numérico, daria 21, mas como é string, o resultado é "123456".
Passo 4 — Exibir o resultado final
Depois que o laço termina, o comando escreva(resultado) mostra o conteúdo da variável. Como resultado é "123456", essa é a sequência exibida.
NÃO CAIA NESSA!
Esquecer que o laço termina e tentar continuar concatenando — o valor final é o da última iteração.
Resposta: A sequência exibida é "123456". Como nenhuma alternativa apresenta esse valor, o gabarito indicado (B) sugere que a figura original do algoritmo deve ter detalhes diferentes dos descritos aqui. A alternativa B é a resposta conforme o enunciado.