Algoritmo de Reloj Digital en PSeInt: Simulación con Ciclos (Guía 2026)
¿Cómo funciona el cronómetro de tu celular o el reloj de tu computadora? La respuesta está en los Ciclos Anidados. En este tutorial avanzado de PSeInt, construiremos un simulador de reloj digital que cuenta horas, minutos y segundos en tiempo real. Aprenderás a dominar la técnica de «un ciclo dentro de otro ciclo» (Nesting) y utilizarás comandos especiales como Esperar y Borrar Pantalla para crear la ilusión de movimiento y actualización constante. Este es el ejercicio definitivo para entender cómo interactúan múltiples contadores simultáneos.
Conceptos Clave: La Mecánica del Tiempo
Para simular un reloj, debemos replicar el comportamiento de los engranajes: el segundero mueve al minutero, y este a la hora.
Necesitamos tres bucles Para, uno dentro del otro.
1. Externo (Horas): De 0 a 23.
2. Medio (Minutos): De 0 a 59.
3. Interno (Segundos): De 0 a 59.
Por cada vuelta del ciclo de horas, el de minutos da 60 vueltas, y el de segundos da 3600.
Para que parezca un reloj y no una lista infinita de números, usamos:
• Esperar 1 Segundos: Frena la ejecución para marcar el ritmo.
• Borrar Pantalla: Limpia la consola antes de escribir la nueva hora, creando la animación.
Análisis del Algoritmo
La jerarquía de los bucles es fundamental. El ciclo más interno es el que cambia más rápido.
- BUCLE HORAS Controla las horas del día. Va desde 0 hasta 23. Una vez termina, el día (o la simulación) acaba.
- BUCLE MINUTOS Está dentro de las horas. Se repite 60 veces (0-59) por cada hora que pasa.
-
BUCLE SEGUNDOS
El corazón del reloj. Está dentro de los minutos. Aquí es donde ponemos el
Escribir, elEsperary elBorrar Pantalla.
Código Fuente (Estructura Básica)
Archivo: RelojSimple.pscDiagrama de Flujo
⚠️ Errores Comunes en Simulaciones
Lograr que el reloj se vea bien requiere evitar estos fallos:
Si no borras la pantalla, PSeInt escribirá una hora debajo de la otra infinitamente (00:00:01, 00:00:02...). Para simular un reloj fijo, debes limpiar la consola en cada segundo.
El comando Esperar 1 Segundos debe ir estrictamente dentro del bucle de los Segundos. Si lo pones en el de Minutos, los segundos volarán a la velocidad de la luz y el reloj solo se detendrá cada minuto.
Reto: Formato Profesional "00:00:00"
El código básico muestra 9:5:1. Los relojes reales muestran 09:05:01. Para lograr esto, necesitamos condicionales que agreguen un "0" extra si el número es menor a 10.
Preguntas Frecuentes (FAQ)
¿Cómo detengo el reloj?
Esperar Tecla, lo cual cambiaría la lógica.¿Puedo poner una alarma?
h_alarma, m_alarma). Dentro del ciclo de segundos, agrega: Si h=h_alarma Y m=m_alarma Y s=0 Entonces Escribir "¡DESPIERTA!" FinSi.¿Por qué parpadea la pantalla?
Borrar Pantalla y volver a escribir causa un leve parpadeo visual en la consola. Esto es normal en aplicaciones de consola simples y difícil de evitar en PSeInt puro.¿Cómo lo hago infinito?
Para dentro de un ciclo Mientras Verdadero Hacer ... FinMientras. Así, cuando llegue a 23:59:59, volverá a 00:00:00 automáticamente.¿Listo para el siguiente nivel?
Domina la lógica de programación con nuestra colección completa.
Ver Más Ejercicios Resueltos