Algoritmo para Intercambiar Variables (Swap) en PSeInt (Guía 2026)
El intercambio de valores entre dos variables, conocido técnicamente como «Swap», es una de las maniobras lógicas más importantes en la programación. Aunque parece trivial, no puedes simplemente igualar una variable a otra sin perder datos. En este tutorial de PSeInt, aprenderás la lógica correcta utilizando una variable auxiliar (el método clásico) y descubriremos por qué este pequeño algoritmo es el corazón de sistemas más complejos, como los métodos de ordenamiento (Burbuja, Quicksort). Si alguna vez te has preguntado «¿Cómo paso el valor de A a B y de B a A sin borrar nada?», esta es tu guía definitiva.
Conceptos Clave: La Analogía de los Vasos
Para entender este problema, olvidemos los números por un momento y pensemos en física:
Imagina que tienes un vaso con Jugo (A) y otro con Agua (B). Si viertes el agua directamente en el vaso del jugo, el jugo se pierde (se derrama o se mezcla). En programación, hacer A <- B destruye instantáneamente el valor original de A.
Para intercambiar los líquidos sin perderlos, necesitas un tercer vaso vacío (Auxiliar). 1. Viertes el Jugo (A) en el Vaso Vacío (Aux). 2. Viertes el Agua (B) en el vaso de Jugo (A). 3. Viertes el contenido del Vaso Auxiliar en el vaso de Agua (B).
Análisis del Algoritmo
Pasemos la analogía de los vasos a instrucciones de pseudocódigo:
-
ENTRADA
Dos variables con valores iniciales distintos.
Ejemplo:num1 = 10,num2 = 50. -
PROCESO
1. Guardar
num1enaux.
2. Sobrescribirnum1con el valor denum2.
3. Asignar anum2el valor guardado enaux. -
SALIDA
Mostrar las variables invertidas:
num1 = 50,num2 = 10.
Código Fuente (Método Clásico)
Archivo: IntercambioVariables.pscDiagrama de Flujo
⚠️ Errores Fatales al Intercambiar
Parece sencillo, pero el 90% de los principiantes comete este error en su primer intento:
Escribir:
A <- B
B <- A
¿Qué pasa aquí? En la primera línea, A toma el valor de B. El valor original de A desaparece. En la segunda línea, B toma el valor de A (que ahora es igual a B). Resultado: Ambas variables terminan valiendo lo mismo que B originalmente.
Si A y B son Reales (decimales) pero defines aux como Entero, perderás los decimales durante el intercambio. La variable auxiliar siempre debe ser del mismo tipo que las variables que estás moviendo.
Nivel Experto: Intercambio Matemático (Sin Auxiliar)
¿Sabías que puedes intercambiar dos números sin usar una tercera variable? Usando aritmética pura (sumas y restas), podemos lograr el mismo resultado. Este método ahorra memoria, aunque es menos legible y tiene riesgo de desbordamiento (overflow) con números muy grandes.
Preguntas Frecuentes (FAQ)
¿Para qué sirve intercambiar variables?
¿Puedo intercambiar variables de diferente tipo?
¿Qué método es mejor: Auxiliar o Matemático?
¿Existe una función Swap() en PSeInt?
Swap(a,b), por lo que siempre debes escribir las tres líneas de código manualmente o crear un SubProceso si estás en un nivel avanzado.¿Listo para el siguiente nivel?
Domina la lógica de programación con nuestra colección completa.
Ver Más Ejercicios Resueltos