Algoritmo de Calculadora Básica con Menú en PSeInt (Guía 2026)

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

Crear una calculadora es el rito de iniciación de todo programador. No se trata solo de sumar o restar, sino de aprender a controlar el flujo del programa mediante un Menú Interactivo. En este tutorial de PSeInt, dejaremos atrás los algoritmos lineales para introducir la potente estructura de control «Segun» (Switch). Aprenderás a solicitar dos números, desplegar opciones al usuario, ejecutar la operación seleccionada y, lo más importante, manejar errores críticos como la temida división por cero.

Conceptos Clave: Estructuras de Selección Múltiple

Para construir un menú eficiente, necesitamos herramientas específicas que simplifican el código:

La Estructura «Segun» (Switch)

En lugar de escribir múltiples Si... Entonces... SiNo... anidados, la estructura Segun nos permite evaluar una variable (la opción del menú) y saltar directamente al bloque de código correspondiente (Caso 1, Caso 2, etc.). Es más limpia y rápida.

Validación de Datos (Edge Cases)

Una calculadora robusta no puede fallar. En la división, el denominador nunca puede ser cero. Aprenderemos a usar condicionales internos para prevenir que el programa se cuelgue (Crash) si el usuario intenta dividir entre 0.

Análisis del Algoritmo

El flujo de una calculadora interactiva sigue estos pasos lógicos:

  • ENTRADA 1. Dos números (Operandos) ingresados por el usuario.
    2. Un número entero que representa la Opción del menú (1-4).
  • PROCESO Evaluar la opcion:
    – Caso 1: Sumar (A + B)
    – Caso 2: Restar (A – B)
    – Caso 3: Multiplicar (A * B)
    – Caso 4: Dividir (A / B) -> ¡Validar B distinto de 0!
  • SALIDA Mostrar el resultado de la operación o un mensaje de error si la opción no es válida.

Código Fuente (Versión Estándar)

Archivo: CalculadoraMenu.psc
Algoritmo CalculadoraBasica
    // 1. Definición de Variables
    Definir num1, num2, resultado Como Real;
    Definir opcion Como Entero;
    
    // 2. Entrada de Datos (Los números)
    Escribir "=== CALCULADORA PSeInt ===";
    Escribir "Ingrese el primer número:";
    Leer num1;
    Escribir "Ingrese el segundo número:";
    Leer num2;
    
    // 3. Despliegue del Menú
    Escribir "--------------------------";
    Escribir "Seleccione una operación:";
    Escribir "1. Sumar (+)";
    Escribir "2. Restar (-)";
    Escribir "3. Multiplicar (*)";
    Escribir "4. Dividir (/)";
    Escribir "--------------------------";
    Leer opcion;
    
    // 4. Proceso con estructura SEGUN (Switch)
    Segun opcion Hacer
        1:
            resultado <- num1 + num2;
            Escribir "El resultado de la Suma es: ", resultado;
        2:
            resultado <- num1 - num2;
            Escribir "El resultado de la Resta es: ", resultado;
        3:
            resultado <- num1 * num2;
            Escribir "El resultado de la Multiplicación es: ", resultado;
        4:
            // Validación CRÍTICA para división
            Si num2 <> 0 Entonces
                resultado <- num1 / num2;
                Escribir "El resultado de la División es: ", resultado;
            SiNo
                Escribir "ERROR: No se puede dividir por CERO.";
            FinSi
        De Otro Modo:
            Escribir "ERROR: Opción no válida. Elija del 1 al 4.";
    FinSegun
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes al Programar Calculadoras

Estos son los bugs que suelen aparecer en los exámenes de programación:

División por Cero (Crash)

En matemáticas, dividir por cero es indefinido. En informática, hace que el programa termine abruptamente con error. Siempre debes envolver la división en un Si n2 <> 0.

Opción "De Otro Modo" Olvidada

Si el usuario escribe "5" o "9" en el menú, tu programa no hará nada si no incluyes la cláusula De Otro Modo. Es vital para dar retroalimentación sobre opciones inválidas.

Reto: Calculadora Infinita (Bucle Repetir)

¿Te imaginas tener que reiniciar la calculadora después de cada suma? Vamos a mejorar el código envolviendo todo en un ciclo Repetir-Hasta Que para que el usuario pueda hacer múltiples cálculos.

Algoritmo CalculadoraPro
    Definir n1, n2, res Como Real;
    Definir op Como Entero;
    
    Repetir
        Borrar Pantalla; // Limpia la consola para que se vea ordenado
        Escribir "=== MENÚ PRINCIPAL ===";
        Escribir "1. Sumar";
        Escribir "2. Restar";
        Escribir "3. Multiplicar";
        Escribir "4. Dividir";
        Escribir "5. SALIR";
        Escribir "Elija una opción:";
        Leer op;
        
        Si op >= 1 Y op <= 4 Entonces
            Escribir "Ingrese primer número:";
            Leer n1;
            Escribir "Ingrese segundo número:";
            Leer n2;
        FinSi
        
        Segun op Hacer
            1: Escribir "Resultado: ", n1 + n2;
            2: Escribir "Resultado: ", n1 - n2;
            3: Escribir "Resultado: ", n1 * n2;
            4: 
                Si n2 <> 0 Entonces
                    Escribir "Resultado: ", n1 / n2;
                SiNo
                    Escribir "ERROR: División por cero.";
                FinSi
            5: Escribir "Saliendo del sistema...";
            De Otro Modo: Escribir "Opción inválida.";
        FinSegun
        
        Escribir "Presione Enter para continuar...";
        Leer n1; // Pausa simple
        
    Hasta Que op = 5
    
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Cómo agrego Potencia o Raíz?
Simplemente añade más casos al Segun. Para potencia usa ^ (ej: n1^n2) y para raíz cuadrada usa la función rc(n1) o raiz(n1).
¿Qué es 'Borrar Pantalla'?
Es un comando de PSeInt que limpia todo el texto de la consola. Es muy útil dentro de bucles para que el menú aparezca siempre limpio arriba y no se acumule texto antiguo.
¿Puedo usar texto en el menú (ej: "a", "b", "c")?
Sí, pero debes definir la variable opcion como Caracter y poner las opciones entre comillas en el Segun: Caso "a": ....
¿Cómo calculo el residuo (MOD)?
Agrega una opción más y usa el operador MOD o %. Ejemplo: res <- n1 MOD n2. Esto es útil para verificar si una división es exacta.

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