Cómo intercambiar el valor de dos variables
Éste es uno de los ejercicios básicos de programación de ordenadores y sirve para entender el concepto de variable. Una variable es la estructura más sencilla que nos podemos encontrar para almacenar datos. Con un poco de imaginación, una variable es una caja en la que podemos guardar números, textos o cualquier otra cosa; es decir, valores. El valor de una variable se puede manipular, simplemente con la operación de asignación. Esa es de las primeras instrucciones que se enseñan en programación y suele escribirse utilizando el signo ‘=’, aunque sería más intuitivo el símbolo ‘<-’. La instrucción ‘A=5′ asignaría el valor ’5′ a la variable que se denomina ‘A’.
Nos detenemos un momento en la primera figura, donde vemos dos cajas (dos variables) recibiendo cada una un valor numérico. La caja de nombre ‘A’ recibe el valor ’5′ y la caja de nombre ‘B’, el valor ’2′. Eso se puede hacer con las instrucciones: ‘A=5′ y ‘B=2′. Las variables funcionan de la siguiente forma: si después de asignar un valor concreto a una variable le damos otro diferente, el primero se pierde y el que permanece es el último asignado.
El problema consiste en intercambiar los valores de ambas variables. Que B tenga el valor de A y ésta el de B, cualesquiera que sean dichos valores.
Lo más lógico sería pensar en escribir las dos intrucciones siguientes: “A=B’ y ‘B=A’. Siempre con la idea de que lo que queremos hacer es: ‘A<-B’ y ‘B<-A’. Pero con eso solo lograríamos que A y B tuvieran el valor ’2′. Entender eso es la primera parte del ejercicio. Con ‘A=B’ se consigue que A valga 2, ya que B valía 2. Y, a continuación, si A vale ahora 2, con ‘B=A’ terminamos asignando 2 a B, con lo que A y B tendrán el mismo valor que tenía B al principio.
La forma de resolver el problema es utilizar una tercera variable auxiliar. En primer lugar, guardamos en C (la variable auxiliar) el valor de A. Después, introducimos en A el valor de B. Ahora no importa que hayamos perdido el valor de A porque lo habíamos guardado en C. Y por último, almacenamos en B el valor de C.
En PHP podemos escribirlo así (en php las variables se identifican poniéndoles delante el símbolo ‘$’, para escribir el código HTML se utiliza la instrucción ‘echo’ y todas las sentencias terminan en ‘;’):
<?php
$A=5;
$B=2;
echo “variables antes del intercambio:<br />”;
echo “A= “.$A.”<br />”;
echo “B= “.$B.”<br />”;
$C=$A;
$A=$B;
$B=$C;
echo “variables después del intercambio:<br />”;
echo “A= “.$A.”<br />”;
echo “B= “.$B.”<br />”;
?>










enero 31st, 2010 a las 7:32 pm
El ejercicio ha estado muy bueno y fácilmente entendible. Gracias!
febrero 3rd, 2010 a las 3:48 pm
Perfecto para principiantes muy explicito!
agosto 26th, 2010 a las 4:12 am
todo lo que dices es cierto pero ahora agregando la dificultad que no se puede crear una tercera variable mi profesor de fund. de programacion dice que si se pueden intercambiar los varoles aun asi si sean negativos o una de las varibles sea cero mejor dicho los numeros (lR) reales crees tu que este ejercicio si tiene solucion sin una tercera variable? y si es asi como es?
mayo 12th, 2011 a las 4:55 am
Mil gracias exelente tu eres un genio…
junio 6th, 2011 a las 11:35 pm
Sin usar una variable adicional sería de la siguiente manera:
a = a – b
b = b + a
a = b – a
Se guarda primero en a la diferencia entre a y b, luego se puede establecer el valor de b sumándole a su valor la diferencia hallada. Posteriormente, se calcula el nuevo valor de a a partir del valor de b, restándole la diferencia (proceso contrario al anterior).
agosto 8th, 2011 a las 12:12 am
Muchas gracias, me ha servido para solucionar un problema de intercambios en el lenguaje java.
Lo he hecho así:
double c = a;
a = b;
b = c;
Por supuesto las variables a y b estaban previamente declaradas.
Un Saludo.