Trocar valores entre duas variáveis

Mais um da série desafios...

Moderador: Moderadores

Responder
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Trocar valores entre duas variáveis

Mensagem por cracksther »

Desafio básico de programamação -> serve para qualquer linguagem
Sendo v1 = 10 e v2 = 20; escreva uma função que troque o valor das duas variáveis sem utilizar uma terceira variável, após a execução v1 deve ser = 20 e v2 = 10...

Isso é bem fácil.

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

Marcelo, pode não ser a melhor das soluções mas...
[lsp](defun c:marcelo ()
(setq v1 (getint "\nEntre com V1...")
v2 (cons v1 (getint "\nEntre com V2..."))
v1 (rtos (cdr v2))
v2 (rtos (car v2))
)
(princ (strcat "\nOs valores de V1 e V2 repectivamente..." v1 " " v2))
(princ)
)[/lsp]
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

ederson... Sua solução funciona, mas não é bem o que eu esperava, pois esta suloção utilizou funções especificas da AutoLISP (cons, rtos), no entanto é possível fazer sem estas funções o que seria mais portável...

Dica: Utilize apenas + e - além de setq...

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

Co dica fica + fácil....
[lsp](defun c:marcelo ()
(setq v1 (getint "\nEntre com v1...")
v2 (+ v1 (getint "\nEntre com v2..."))
v1 (print (- v2 v1))
v2 (print (- v2 v1))
)
(princ)
)[/lsp]
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
cracksther
Diamante
Diamante
Mensagens: 1063
Registrado em: Seg 13 Dez 2004 11:00:00 pm

Mensagem por cracksther »

Viu como é fácil.... acho que dei a dica muito cedo...

Até mais!
Marcelo Silva - Cascavel - PR
cracksther@gmail.com
Avatar do usuário
ederson
Prata 1/3
Prata 1/3
Mensagens: 414
Registrado em: Qua 21 Jul 2004 12:00:00 am
Localização: Belo Horizonte

Mensagem por ederson »

É vc deu a dica muito cedo... hehehehehehe!!!!
Ederson Ambrosio
031 8893-2947
BH-MG
Avatar do usuário
neyton
Master
Master
Mensagens: 1668
Registrado em: Qui 25 Dez 2003 11:00:00 pm
Contato:

Mensagem por neyton »

supondo qu v1 e v2 sejam conhecidas e tenham valores:

[lsp](mapcar 'set '(v2 v1) (list v1 v2))[/lsp]

em lisp vai bem facil, hehehehe
como que usa o html daqui?
visite o meu blog: http://tbn2.blogspot.com
lisps exclusivas pra download!!
Responder