Algoritmo para Determinar Año Bisiesto en PSeInt (Guía Completa 2026)

Nivel: Intermedio Tiempo: ~20 min

Saber si un año tiene 366 días parece simple: «¿Es divisible por 4?». Sin embargo, el calendario Gregoriano tiene reglas de excepción que convierten este problema en la prueba definitiva para dominar los Operadores Lógicos Compuestos. En este tutorial avanzado de PSeInt, construiremos un algoritmo que no solo verifica la divisibilidad, sino que aplica correctamente las excepciones de los años seculares (como 1900 o 2000). Aprenderás a combinar el operador Módulo (MOD) con conectores lógicos Y (AND) y O (OR) para crear una condición robusta y libre de errores.

Las 3 Reglas del Calendario Gregoriano

Para programar esto, primero debemos entender la lógica matemática establecida por el Papa Gregorio XIII en 1582:

La Regla General (Divisible por 4)

Casi cualquier año divisible por 4 es bisiesto.
Ejemplo: 2004, 2008, 2024.
En PSeInt: anio MOD 4 == 0

La Excepción Secular (Divisible por 100)

Los años fin de siglo (divisibles por 100) NO son bisiestos, a menos que cumplan la tercera regla.
Ejemplo: 1700, 1800, 1900 no fueron bisiestos.

La Excepción de la Excepción (Divisible por 400)

Si el año es divisible por 100, pero también por 400, es bisiesto.
Ejemplo: El año 2000 sí fue bisiesto.

Análisis Lógico del Algoritmo

Podemos resumir todas las reglas anteriores en una sola expresión lógica compuesta:

  • CONDICIÓN 1 (Divisible por 4) Y (NO Divisible por 100)
  • CONECTOR Usamos el operador O (OR). El año es bisiesto si cumple la Condición 1 O si cumple la Condición 2.
  • CONDICIÓN 2 (Divisible por 400). Esta condición «rescata» a los años como el 2000 o 2400.

Código Fuente (Solución Óptima)

Archivo: BisiestoPro.psc
Algoritmo DeterminarBisiesto
    // 1. Definición de Variables
    Definir anio Como Entero;
    
    // 2. Entrada de Datos
    Escribir "=== Validador de Años Bisiestos ===";
    Escribir "Ingrese el año a verificar (ej: 2024):";
    Leer anio;
    
    // 3. Proceso Lógico Compuesto
    // Leemos: Si (es divisible por 4 Y NO por 100) O (es divisible por 400)
    
    Si ((anio MOD 4 = 0) Y (anio MOD 100 <> 0)) O (anio MOD 400 = 0) Entonces
        Escribir "--------------------------------";
        Escribir "El año ", anio, " SÍ ES BISIESTO.";
        Escribir "Tiene 366 días (Febrero tiene 29).";
    SiNo
        Escribir "--------------------------------";
        Escribir "El año ", anio, " NO ES BISIESTO.";
        Escribir "Tiene 365 días (Febrero tiene 28).";
    FinSi
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes: La Trampa del 1900

Este es el error que cometen el 80% de los programadores novatos:

Verificar solo la divisibilidad por 4

Escribir simplemente: Si anio MOD 4 = 0.
Por qué falla: Según este código incorrecto, el año 1900 sería bisiesto. Sin embargo, 1900 NO fue bisiesto porque es divisible por 100 pero no por 400. Esto desajusta el calendario solar.

Mal uso de Paréntesis

En la expresión lógica, el orden importa.
Condicion1 Y Condicion2 O Condicion3 puede evaluarse distinto sin paréntesis. Siempre agrupa: (C1 Y C2) O C3 para asegurar que las excepciones se procesen juntas.

Alternativa: Condicionales Anidados (Paso a Paso)

Si la fórmula compuesta te resulta confusa, aquí tienes la versión «desglosada» usando Si-Entonces anidados. Es más larga, pero más fácil de leer para entender el flujo de decisión.

Algoritmo BisiestoAnidado
    Definir anio Como Entero;
    Escribir "Ingrese año:";
    Leer anio;
    
    // Paso 1: ¿Es divisible por 4?
    Si anio MOD 4 = 0 Entonces
        // Paso 2: ¿Es divisible por 100?
        Si anio MOD 100 = 0 Entonces
            // Paso 3: ¿Es divisible por 400?
            Si anio MOD 400 = 0 Entonces
                Escribir "ES BISIESTO (Divisible por 400)";
            SiNo
                Escribir "NO ES BISIESTO (Divisible por 100 pero no 400)";
            FinSi
        SiNo
            Escribir "ES BISIESTO (Divisible por 4 y no por 100)";
        FinSi
    SiNo
        Escribir "NO ES BISIESTO (No divisible por 4)";
    FinSi
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Qué significa MOD en PSeInt?
MOD es el operador de «Módulo» o Residuo. Devuelve lo que sobra de una división. 2024 MOD 4 da 0 (división exacta), lo que nos indica que es múltiplo. En algunos perfiles de PSeInt se usa el símbolo %.
¿Por qué el año 2000 fue bisiesto y 1900 no?
Ambos son divisibles por 100, pero la regla dice que si es divisible por 100, debe serlo también por 400. 1900/400 = 4.75 (No exacto), 2000/400 = 5 (Exacto).
¿Cómo escribir «Diferente de» en PSeInt?
Para decir «No es igual a cero», usamos el operador <>. Ejemplo: anio MOD 100 <> 0.
¿Cuál será el próximo año NO bisiesto divisible por 4?
Será el año **2100**. Es divisible por 4 y por 100, pero NO por 400. Así que febrero de 2100 tendrá solo 28 días.

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