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 troca de valores entre A e B em que A é um card com o conteúdo de 8 e B é um card com o conteúdo de A. Exemplo para demonstração inicial, para troca, A + 5 = 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 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 troca de valores entre A e B em que A é um card com o conteúdo de 8 e B é um card com o conteúdo de A. Exemplo para demonstração inicial, para troca, A + 5 = 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 efetua a troca de forma correta?

  1. Apenas a afirmação I está correta.
  2. Apenas a afirmação II está correta.
  3. As afirmações I e II estão corretas.
  4. As afirmações I 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 resolver esta questão, precisamos simular a execução do algoritmo de troca de variáveis passo a passo, verificando se o resultado final atende ao requisito estabelecido no enunciado: A deve ser 10 e B deve ser 2.

O enunciado define os valores iniciais para todos os testes:

  • $A_{inicial} = 2$
  • $B_{inicial} = 10$

Vamos analisar cada coluna separadamente:

Análise Detalhada

Coluna I (Correta)

Esta é a forma clássica de trocar dois valores usando uma variável auxiliar (neste caso, $C$):

  1. C <- A: O valor de $A$ (que é 2) vai para $C$. Agora $C = 2$.
  2. A <- B: O valor de $B$ (que é 10) vai para $A$. Agora $A = 10$.
  3. B <- C: O valor guardado em $C$ (que é 2) vai para $B$. Agora $B = 2$.
  • Resultado Final: $A = 10$ e $B = 2$. Atende ao requisito.

Coluna II (Incorreta)

Nesta sequência, ocorre uma perda de dados:

  1. C <- A: $C$ recebe 2. ($C=2$)
  2. B <- A: $B$ recebe o valor de $A$ (que é 2). O valor original de $B$ (10) foi perdido. ($B=2$)
  3. A <- C: $A$ recebe o valor de $C$ (que é 2). ($A=2$)
  • Resultado Final: $A = 2$ e $B = 2$. Não atende ao requisito.

Coluna III (Correta)

Esta também realiza a troca corretamente, apenas mudando a ordem inicial da atribuição para a variável auxiliar:

  1. C <- B: O valor de $B$ (que é 10) vai para $C$. Agora $C = 10$.
  2. B <- A: O valor de $A$ (que é 2) vai para $B$. Agora $B = 2$.
  3. A <- C: O valor guardado em $C$ (que é 10) vai para $A$. Agora $A = 10$.
  • Resultado Final: $A = 10$ e $B = 2$. Atende ao requisito.

Conclusão

ColunaResultado Final ($A, B$)Correta?
I$10, 2$Sim
II$2, 2$Não
III$10, 2$Sim

Como as colunas I e III realizam a troca corretamente, a alternativa que indica essas duas como verdadeiras é a correta.

Portanto, a resposta é Alternativa 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.