NEI.ESC 0 Denunciar post Postado Agosto 16, 2008 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 FimOBS: 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
gRoOvE 0 Denunciar post Postado Agosto 16, 2008 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
Kandrade 7 Denunciar post Postado Agosto 18, 2008 O mais simples é usar variável auxiliar, mas tem como descatar o uso da variável auxiliar e usar apenas duas variáveis. Compartilhar este post Link para o post Compartilhar em outros sites
quitZAUMMM 18 Denunciar post Postado Agosto 19, 2008 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
gRoOvE 0 Denunciar post Postado Agosto 20, 2008 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
_Isis_ 202 Denunciar post Postado Agosto 20, 2008 B = (A XOR B ) XOR B A = (B XOR A) XOR A Compartilhar este post Link para o post Compartilhar em outros sites
Kandrade 7 Denunciar post Postado Agosto 20, 2008 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
gRoOvE 0 Denunciar post Postado Agosto 22, 2008 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
quitZAUMMM 18 Denunciar post Postado Agosto 25, 2008 Olah Groove dei uma pesquisada no google e olha oq achei: http://pt.wikipedia.org/wiki/Algoritmo_Xor_Swap Compartilhar este post Link para o post Compartilhar em outros sites
NEI.ESC 0 Denunciar post Postado Agosto 25, 2008 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
_Isis_ 202 Denunciar post Postado Agosto 25, 2008 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
gRoOvE 0 Denunciar post Postado Agosto 25, 2008 Olah Groove dei uma pesquisada no google e olha oq achei: http://pt.wikipedia.org/wiki/Algoritmo_Xor_Swappara usar esse método, teria que converter os números para base binária então? Compartilhar este post Link para o post Compartilhar em outros sites
_Isis_ 202 Denunciar post Postado Agosto 26, 2008 Não. Computador ja trabalha com base 2. Compartilhar este post Link para o post Compartilhar em outros sites
NEI.ESC 0 Denunciar post Postado Agosto 29, 2008 vlw ai pela explicação alguem tem uns exercício de algoritmo? Compartilhar este post Link para o post Compartilhar em outros sites
gRoOvE 0 Denunciar post Postado Agosto 31, 2008 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
_Isis_ 202 Denunciar post Postado Agosto 31, 2008 Á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
gRoOvE 0 Denunciar post Postado Setembro 1, 2008 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