Descreva um algoritmo que troque os valores das variáveis x e y, usando apenas tarefas. Qual é o menor número de proposições necessárias para fazer isto?

Passo 1

O enunciado pede um algoritmo que, usando apenas tarefas de atribuição, troque os valores de \;x\; e \;y\;. O conteúdo aqui é raciocinar sobre atribuições sequenciais e sobre a necessidade de preservar temporariamente um dos valores para não perdê-lo.

Passo 2

Observe que cada atribuição sobrescreve o conteúdo de uma variável. Com uma única proposição não há como trocar, pois você perderia imediatamente o valor de \;x; ou de \;y.

Passo 3

Com duas proposições também não funciona: após a primeira atribuição um dos valores originais é perdido e não há como recuperá-lo com apenas mais uma instrução.

Passo 4

Portanto, é preciso pelo menos três proposições. O algoritmo clássico usa uma variável auxiliar \;t\; e faz as atribuições na ordem:
t := x
x := y
y := t

Resposta

O menor número de proposições necessárias para trocar \;x\; e \;y\; é três.

Exercícios de Livros Relacionados