Algoritmo para Ordenar 3 Números de Menor a Mayor en PSeInt (Guía 2026)

Nivel: Intermedio Tiempo: ~20 min

El ordenamiento de datos es uno de los pilares de las ciencias de la computación. Antes de aprender algoritmos complejos como *Quicksort* o *Merge Sort*, todo programador debe dominar la lógica básica: ¿Cómo ordenamos tres variables simples (A, B y C) de forma ascendente? En este tutorial de PSeInt, exploraremos dos métodos esenciales: el uso de condicionales anidados (el árbol de decisión) y el método de intercambio (o principio de la burbuja), que es mucho más eficiente y elegante. Dominar este ejercicio mejorará tu capacidad para manejar variables temporales y estructuras de decisión secuencial.

Conceptos Clave: Lógica de Ordenamiento

Para ordenar variables sin usar arreglos (arrays) complejos, necesitamos aplicar lógica pura:

Intercambio (Swap)

Si descubrimos que el número A es mayor que el número B, necesitamos intercambiar sus posiciones. Para hacer esto sin perder datos, utilizamos una variable auxiliar. (Recordar la analogía de los vasos: para intercambiar agua y jugo, necesitas un tercer vaso vacío).

Comparación Secuencial

Para garantizar que tres números (N1, N2, N3) queden ordenados, debemos realizar tres verificaciones estratégicas: comparar N1 con N2, N1 con N3, y finalmente N2 con N3. Si realizamos los intercambios necesarios en cada paso, los números «flotarán» a su posición correcta.

Análisis del Algoritmo (Método de Intercambio)

Este método es el precursor del famoso «Ordenamiento Burbuja». El flujo lógico es el siguiente:

  • ENTRADA Tres números desordenados ingresados por el usuario. Variables: n1, n2, n3.
  • PROCESO 1. Si n1 > n2, intercambiarlos (así n1 es el menor temporalmente).
    2. Si n1 > n3, intercambiarlos (ahora n1 es definitivamente el menor absoluto).
    3. Si n2 > n3, intercambiarlos (ordenamos los dos restantes).
  • SALIDA Mostrar las variables en orden: n1, n2, n3.

Código Fuente (Solución Eficiente)

Archivo: OrdenarNumeros.psc
Algoritmo OrdenarTresNumeros
    // 1. Definición de Variables
    Definir n1, n2, n3, aux Como Real;
    
    // 2. Entrada de Datos
    Escribir "=== Ordenamiento Ascendente ===";
    Escribir "Ingrese el primer número:";
    Leer n1;
    Escribir "Ingrese el segundo número:";
    Leer n2;
    Escribir "Ingrese el tercer número:";
    Leer n3;
    
    // 3. Proceso: Método de Intercambio (Burbuja simplificada)
    
    // Paso A: Comparamos el 1ro con el 2do
    // Si n1 es mayor, los cambiamos de lugar.
    Si n1 > n2 Entonces
        aux <- n1;
        n1 <- n2;
        n2 <- aux;
    FinSi
    
    // Paso B: Comparamos el 1ro (que ya podría ser nuevo) con el 3ro
    // Esto asegura que n1 sea el más pequeño de todos
    Si n1 > n3 Entonces
        aux <- n1;
        n1 <- n3;
        n3 <- aux;
    FinSi
    
    // Paso C: Comparamos el 2do con el 3ro
    // Esto ordena los dos restantes
    Si n2 > n3 Entonces
        aux <- n2;
        n2 <- n3;
        n3 <- aux;
    FinSi
    
    // 4. Salida
    Escribir "-----------------------------";
    Escribir "Números Ordenados: ", n1, ", ", n2, ", ", n3;
    Escribir "-----------------------------";
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes de Principiantes

Evita estos tropiezos lógicos al intentar ordenar datos:

Perder Datos (Sin Auxiliar)

Error clásico: Escribir n1 <- n2 y luego n2 <- n1. Al hacer la primera asignación, el valor original de n1 se borra para siempre. Siempre usa una variable aux.

Confundir Ascendente con Descendente

Para ordenar de menor a mayor (ascendente), preguntamos si el anterior es Mayor (>) que el siguiente para cambiarlo. Si usas <, ordenarás de mayor a menor.

Alternativa: Árbol de Decisiones (Si Anidados)

Aunque menos eficiente de escribir, este método es excelente para ejercitar la lógica deductiva. No intercambia valores, sino que busca todas las permutaciones posibles (n1,n2,n3 o n1,n3,n2, etc.).

Algoritmo OrdenarConSiAnidados
    Definir a, b, c Como Real;
    Leer a, b, c;
    
    // Evaluamos quién es el menor de todos primero
    Si a < b Y a < c Entonces
        // 'a' es el menor. Ahora comparamos 'b' y 'c'
        Si b < c Entonces
            Escribir a, ", ", b, ", ", c;
        SiNo
            Escribir a, ", ", c, ", ", b;
        FinSi
    SiNo
        Si b < a Y b < c Entonces
            // 'b' es el menor. Comparamos 'a' y 'c'
            Si a < c Entonces
                Escribir b, ", ", a, ", ", c;
            SiNo
                Escribir b, ", ", c, ", ", a;
            FinSi
        SiNo
            // 'c' es el menor. Comparamos 'a' y 'b'
            Si a < b Entonces
                Escribir c, ", ", a, ", ", b;
            SiNo
                Escribir c, ", ", b, ", ", a;
            FinSi
        FinSi
    FinSi
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Cómo ordeno 4 o más números?
Para 4 o más números, el método de Si-Entonces se vuelve inmanejable. Debes usar Arreglos (Arrays) y bucles Para con el método de Burbuja completo.
¿Qué pasa si los números son iguales?
El método de intercambio funciona perfectamente con números iguales. La condición n1 > n2 será falsa, no se hará el intercambio, y el orden se mantendrá relativo, mostrando 5, 5, 8 correctamente.
¿Cómo los ordeno de Mayor a Menor?
Simplemente invierte el operador relacional en las condiciones. Cambia todos los > por < en el código de intercambio.
¿Puedo usar funciones matemáticas?
No existe una función Ordenar(a,b,c) nativa en PSeInt. Debes implementar la lógica tú mismo, lo cual es el objetivo pedagógico del ejercicio.

¿Listo para el siguiente nivel?

Domina la lógica de programación con nuestra colección completa.

Ver Más Ejercicios Resueltos

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *