Sapien IA
Computação Múltipla Escolha

Na programação, em muitos momentos é necessário que os endereços de memória efetuem a troca de valores entre si. Considere uma sequência de código que troca os valores de duas variáveis A e B, em que A ficará com o conteúdo de B e B ficará com o conteúdo de A. Exemplo para demonstração: inicialmente, A = 5 e B = 15, que poderia ser qualquer valor, e, ao final da troca A deve conter o valor 15 e B deve conter o valor 5. Qual das alternativas abaixo representa a tabela que efetua a troca de forma correta?

Na programação, em muitos momentos é necessário que os endereços de memória efetuem a troca de valores entre si. Considere uma sequência de código que troca os valores de duas variáveis A e B, em que A ficará com o conteúdo de B e B ficará com o conteúdo de A. Exemplo para demonstração: inicialmente, A = 5 e B = 15, que poderia ser qualquer valor, e, ao final da troca A deve conter o valor 15 e B deve conter o valor 5.

Qual das alternativas abaixo representa a tabela que efetua a troca de forma correta?

  1. A afirmação I está correta.
  2. A afirmação II está correta.
  3. As afirmações I e II estão corretas.
  4. As afirmações II e III estão corretas.
  5. I, II e III estão corretas.

Resolução completa

Explicação passo a passo

D
Alternativa D

Alternativa D - As afirmações I e III estão corretas.

Para realizar a troca de valores entre duas variáveis ($A$ e $B$), é necessário utilizar uma variável auxiliar ($C$) para armazenar temporariamente um dos valores. Se não houver essa variável, o valor original será sobrescrito e perdido antes de ser transferido para o destino correto.

Vamos analisar cada coluna usando os valores do exemplo: $A = 5$ e $B = 15$. O objetivo final é que $A = 15$ e $B = 5$.

Análise Detalhada

Coluna I (Correta)

Esta é a lógica clássica de troca com variável auxiliar:

  1. $C \leftarrow A$: Guarda o valor de $A$ em $C$. Agora $C = 5$.
  2. $A \leftarrow B$: Copia o valor de $B$ para $A$. Agora $A = 15$.
  3. $B \leftarrow C$: Copia o valor guardado em $C$ para $B$. Agora $B = 5$.
  • Resultado: $A=15, B=5$. Troca realizada com sucesso.

Coluna II (Incorreta)

Nesta sequência, ocorre perda de dados na segunda linha:

  1. $C \leftarrow A$: Guarda o valor de $A$ em $C$. Agora $C = 5$.
  2. $B \leftarrow A$: Copia o valor de $A$ para $B$. Agora $B = 5$.
  • Erro: O valor original de $B$ (que era 15) foi apagado nesta etapa e não foi salvo em lugar nenhum.
  1. $A \leftarrow C$: Copia o valor de $C$ para $A$. Agora $A = 5$.
  • Resultado: $A=5, B=5$. Ambas as variáveis terminam iguais ao valor inicial de $A$.

Coluna III (Correta)

Esta sequência funciona exatamente como a Coluna I, apenas invertendo a ordem de salvamento inicial:

  1. $C \leftarrow B$: Guarda o valor de $B$ em $C$. Agora $C = 15$.
  2. $B \leftarrow A$: Copia o valor de $A$ para $B$. Agora $B = 5$.
  3. $A \leftarrow C$: Copia o valor guardado em $C$ para $A$. Agora $A = 15$.
  • Resultado: $A=15, B=5$. Troca realizada com sucesso.

Conclusão

Somente as sequências I e III preservam os valores originais durante o processo de troca. A sequência II falha porque sobrescreve a variável $B$ antes de salvar seu conteúdo original. Portanto, a alternativa correta é a D.

Tem outra questão para resolver?

Resolver agora com IA

Mais questões de Computação

Ver mais Computação resolvidas

Tem outra questão de Computação?

Cole o enunciado, tire uma foto ou descreva o problema — a IA resolve com explicação completa em segundos.