Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

NEI.ESC

[Resolvido] troca de variável

Recommended Posts

Estou lendo um livro de algoritmos ai tem umas exercício de fixação que segue abaixo:

Ler dois valores para as variáveis A e B, efetuar a troca dos valores de forma que a variável A passe a possuir o valor da variável A e que a variável B passe a possuir o valor da variável. Apresentar os valores trocados.

 

Bom tentei resolver usando português estruturado ou portugol

 

Pensei em subtração pois posso achar o que "resta para ser igual", não sei outra formula para isso mais imagino que exista.

 

programa TROCA_DE_VARIÁVEL
   var
	  A,B,X,Y,A_FINAL,B_FINAL : Inteiro
   Início
	  Leia A
	  Leia B
	  X <- A-B
	  Y <- B-A
	  A_FINAL <- A - X
	  A = A_FINAL
	  B_FINAL <- B + Y
	  B = B_FINAL
	  Escreva A,B
Fim
OBS: sei que se B for maior que A ira dar resultado diferente, estava pensando em colocar se...então...senão mais acho que deve existir um forma melhor de resolver isso que é tão simples.

como vocês deve ter visto sou iniciante ainda

não quero reposta mais sim como resolver esse problema para meu conhecimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

apenas use uma variável auxiliar, assim pode efetuar as trocas sem perder dados

 

int x,y,c
c <- x
x <- y
y <- c

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hahá esse foi um dos primeiros algoritmos q eu fiz, na hr você nem imagina algo ;D! + depois ve como é simples a resposta!

Compartilhar este post


Link para o post
Compartilhar em outros sites

O mais simples é usar variável auxiliar, mas tem como descatar o uso da variável auxiliar e usar apenas duas variáveis.

Assim não sei, dá uma dica ae :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois é, a Isis foi mais rápida que eu.

:P

 

O mais simples é usar variável auxiliar, mas tem como descatar o uso da variável auxiliar e usar apenas duas variáveis.

Assim não sei, dá uma dica ae :D

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

digamos que A vale 5 e B vale 10.

esse ( A XOR B ), retorna oq? Não consigo entender isso usando apenas números, a mesma coisa assim ( A || B ) -> (5 OU 10) "/

Compartilhar este post


Link para o post
Compartilhar em outros sites

o exemplo de criar um variável auxiliar é mais fácil, não entendi muito bem xor ele trabalha com binário para mudar os valor?

 

bom tem outro exercício que é ler 3 valores e apresentar em ordem crescente, bom to iniciando meus estudos mais não achei nenhum exemplo no livro para isso

Compartilhar este post


Link para o post
Compartilhar em outros sites

tecnicamente não precisa de exemplos p/ comparar valores e saber qual é o maximo e o mínimo entre 3.

Compartilhar este post


Link para o post
Compartilhar em outros sites

B = (A XOR B ) XOR B

A = (B XOR A) XOR A

Testei mas não da certo dessa forma não.

 

A = (A XOR B)
B = (A XOR B)
A = (A XOR B)
Assim da certo. Entendi o funcionamento dos operadores bit a bit, mas isso não tem uma lógica "normal" né?

Tipo você fazer (5 | 4) retorna 5, coisa meio sem sentido, mas li algo a respeito e pra fazer verificação com drivers de dispositivos funciona legal, talvez seja pra esse fim mesmo que foi criado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Álgebra booleana. Lógica tem. Só parece sem sentido porque você não deve conhecer a história da coisa, que é um tanto diferente do que falam nas universidades. As pessoas tendem a puxar as propriedades da multiplicação e da adição porque é mais fácil do que falar em classes de conjuntos.

Álgebra booleana é usada p/ fazer os circuitos do computador onde você está digitando.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já ouvi falar, no meu curso não tem essa matéria mas dizem que é o bixo! E quanto ao código?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.