Pular para o conteúdo principal

Questão de Programação — Linguagens de programação — FUNDATEC 2024

ProgramaçãoLinguagens 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):Imagem associada para resolução da questãoAo executar o algoritmo acima, qual sequência de caracteres será exibida?
  1. A010
  2. B000010
  3. C010010
  4. D000010000
  5. 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".

resultado=resultado+iresultado = resultado + i

De onde vem cada valor: resultadoresultado = definição: string vazia · ii = definição: i = 1

resultado=""+"1"="1"resultado = "" + "1" = \boxed{"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.

resultado=resultado+iresultado = resultado + i

De onde vem cada valor: resultadoresultado = passo 1: "1" · ii = definição: i = 2

resultado="1"+"2"="12"resultado = "1" + "2" = \boxed{"12"}
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.

resultado=resultado+iresultado = resultado + i

De onde vem cada valor: resultadoresultado = passo 2: "12" · ii = definição: i = 3, depois 4, 5, 6

resultado="12"+"3"="123";depois"123"+"4"="1234";"1234"+"5"="12345";"12345"+"6"="123456"="123456"resultado = "12" + "3" = "123"; depois "123" + "4" = "1234"; "1234" + "5" = "12345"; "12345" + "6" = "123456" = \boxed{"123456"}
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.

"123456"\boxed{"123456"}
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.

Link permanente: /questoes/qg169153