Algoritmo para Encontrar el Mayor de Tres Números en PSeInt (Guía 2026)

Nivel: Básico / Intermedio Tiempo: ~15 min

Comparar dos números es sencillo, pero ¿qué sucede cuando agregamos un tercero a la ecuación? La lógica se vuelve exponencialmente más interesante. En este tutorial de Lógica de Programación, aprenderás a desarrollar un algoritmo en PSeInt que determina cuál de tres valores es el mayor. Analizaremos dos estrategias fundamentales: el uso de Operadores Lógicos (Y) para condiciones compuestas y la técnica de Condicionales Anidados. Este ejercicio es vital para entrenar tu cerebro en la toma de decisiones múltiples, una habilidad requerida en algoritmos de ordenamiento y búsquedas avanzadas.

Conceptos Clave: Lógica Compuesta

Para resolver este rompecabezas lógico, necesitamos herramientas más potentes que una simple comparación:

Operador Lógico «Y» (AND)

Nos permite evaluar dos condiciones al mismo tiempo. Para que el número A sea el mayor de todos, debe cumplir dos requisitos simultáneamente: ser mayor que B Y ser mayor que C. En PSeInt se escribe: Si A > B Y A > C.

Variable Auxiliar (Pivote)

Una estrategia avanzada (y más limpia) es asumir temporalmente que el primer número es el «campeón» (mayor) y luego desafiarlo contra los demás. Si otro número le gana, actualizamos al campeón. Esto simplifica el código enormemente.

Análisis del Algoritmo

Existen varias formas de resolver esto, pero el flujo lógico estándar es:

  • ENTRADA Solicitar tres números distintos. Definiremos num1, num2 y num3.
  • PROCESO (Opción Lógica) 1. ¿Es N1 > N2 y N1 > N3? -> N1 es Mayor.
    2. Si no, ¿Es N2 > N1 y N2 > N3? -> N2 es Mayor.
    3. Si no, por descarte lógico -> N3 es Mayor.
  • SALIDA Mostrar el valor ganador en pantalla.

Código Fuente (Método con Operadores Lógicos)

Archivo: MayorDe3_Logico.psc
Algoritmo MayorDeTresNumeros
    // 1. Definir variables
    Definir n1, n2, n3 Como Real;
    
    // 2. Entrada de datos
    Escribir "Ingrese el primer número:";
    Leer n1;
    Escribir "Ingrese el segundo número:";
    Leer n2;
    Escribir "Ingrese el tercer número:";
    Leer n3;
    
    Escribir "-----------------------------";
    
    // 3. Proceso usando Operadores Lógicos (Y)
    // Evaluamos si n1 vence a los otros dos
    Si n1 > n2 Y n1 > n3 Entonces
        Escribir "El número mayor es el PRIMERO: ", n1;
    SiNo
        // Si n1 no ganó, ahora evaluamos si n2 vence a los otros
        // (Ya sabemos que n1 no es el mayor, así que basta comparar con n3, 
        // pero por claridad pedagógica comparamos con ambos o usamos la lógica estricta)
        Si n2 > n1 Y n2 > n3 Entonces
            Escribir "El número mayor es el SEGUNDO: ", n2;
        SiNo
            // Por descarte, si no es n1 ni n2, debe ser n3
            Escribir "El número mayor es el TERCERO: ", n3;
        FinSi
    FinSi
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores al Comparar 3 Valores

Asegúrate de no caer en estas trampas lógicas frecuentes:

La «Comparación en Cadena» Inválida

En matemáticas escribimos A > B > C. ¡En programación esto es ILEGAL!
La computadora no puede procesarlo directamente. Debes separarlo usando el operador lógico: A > B Y B > C.

Olvidar el Empate

Si ingresas 10, 10 y 5, el código básico podría fallar si usas solo >. Asegúrate de que tu lógica de «SiNo» (Else) cubra el caso de que el mayor aparezca repetido, o usa >= si el contexto lo requiere.

Método Pro: Usando una Variable «Mayor»

Este método es mucho más escalable. Imaginemos que el primero es el mayor, y luego comprobamos si los demás pueden superarlo. Este algoritmo funciona igual de bien para 3 números que para 100.

Algoritmo MayorDe3Optimizado
    Definir n1, n2, n3, mayor Como Real;
    
    Escribir "Ingrese 3 números separados por Enter:";
    Leer n1, n2, n3;
    
    // Paso 1: Asumimos que el primero es el campeón actual
    mayor <- n1;
    
    // Paso 2: ¿El segundo puede vencer al campeón actual?
    Si n2 > mayor Entonces
        mayor <- n2; // Tenemos nuevo campeón
    FinSi
    
    // Paso 3: ¿El tercero puede vencer al campeón actual?
    Si n3 > mayor Entonces
        mayor <- n3; // Tenemos nuevo campeón
    FinSi
    
    // Resultado final: La variable 'mayor' contiene el valor máximo
    Escribir "El número mayor encontrado es: ", mayor;
    
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Cómo encuentro el mayor de 4 o 5 números?
Usar Si-SiNo anidados se vuelve caótico. La mejor opción es usar el "Método Pro" (variable mayor) o utilizar ciclos y arreglos (vectores) si ya conoces esos temas.
¿Qué pasa si todos los números son iguales?
En el "Método Pro", la variable mayor se quedará con el valor de n1, lo cual es correcto (el valor máximo es ese número). El código funcionará perfectamente sin dar errores.
¿Puedo usar el operador O (OR) en lugar de Y (AND)?
No para este caso. Si A > B O A > C significa que A solo necesita ser mayor que UNO de ellos para entrar, lo cual no garantiza que sea el mayor absoluto. Necesitas que sea mayor que TODOS (AND).
¿Cómo encuentro el número MENOR?
La lógica es idéntica, solo debes invertir el operador relacional: cambia todos los > (mayor que) por < (menor que).

¿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 *