Algoritmo para Sumar Números hasta que se Ingrese Cero (PSeInt 2026)
¿Cómo sumamos una lista de números cuando no sabemos cuántos son? A diferencia del ciclo Para (que tiene un fin fijo), aquí nos enfrentamos a un Ciclo Indeterminado. En este tutorial de PSeInt, aprenderás a utilizar un «Valor Centinela» (en este caso, el número 0) para controlar el flujo del programa. Utilizaremos las estructuras Repetir-Hasta Que y Mientras para crear un acumulador dinámico que sigue sumando indefinidamente hasta que el usuario decide detenerse. Este concepto es la base de aplicaciones como cajas registradoras o ingreso de datos masivos.
Conceptos Clave: Centinelas y Acumuladores
Para dominar este ejercicio, es necesario entender dos patrones de diseño de algoritmos:
Es un valor especial que no forma parte de los datos a procesar, sino que sirve como señal de «STOP». Se elige el 0 porque es el elemento neutro de la suma (sumarlo no afecta el resultado), lo que simplifica mucho el código.
A diferencia de una variable normal que sobrescribe su valor, un acumulador suma sobre sí mismo.
Fórmula: suma = suma + nuevo_numero.
¡Regla de oro! Siempre debe inicializarse en 0 antes de entrar al ciclo.
Análisis del Algoritmo
El flujo de ejecución es cíclico y depende totalmente de la entrada del usuario:
-
INICIO
Inicializar la variable
suma <- 0. Esto limpia la memoria para empezar a contar desde cero. -
BUCLE (Repetir)
1. Pedir un número al usuario.
2. Leer el número en la variablen.
3. Sumarnal acumulador:suma <- suma + n. -
FIN Y SALIDA
Evaluar: ¿El número ingresado fue 0?
Si es SÍ: Terminar el ciclo y mostrar lasumatotal.
Si es NO: Volver a pedir otro número.
Código Fuente (Con Repetir-Hasta Que)
Archivo: SumaHastaCero.pscDiagrama de Flujo
⚠️ Errores Comunes con Acumuladores
Cuidado con estos detalles que pueden romper la lógica de tu suma:
Si olvidas poner suma <- 0 al principio, PSeInt podría asignar un valor "basura" o lanzar un error de variable no inicializada, causando que la suma total sea incorrecta desde el inicio.
Si usas Mientras num <> 0, debes leer el número antes del ciclo Y dentro del ciclo. Si olvidas leerlo dentro, el valor de num nunca cambiará y crearás un bucle infinito.
Reto: Calcular también el Promedio
Ahora que sabemos sumar, ¿qué tal si también contamos cuántos números ingresó el usuario para calcular el promedio? Necesitaremos una variable extra llamada contador.
Preguntas Frecuentes (FAQ)
¿Por qué se usa el 0 como centinela?
¿Cuál es la diferencia entre Acumulador y Contador?
¿Puedo usar el ciclo Mientras?
Leer num; Mientras num <> 0 Hacer ... Leer num; FinMientras. Es un poco más seguro si no quieres que el código se ejecute ni una vez si el primer número es 0.¿Funciona con números negativos?
¿Listo para el siguiente nivel?
Domina la lógica de programación con nuestra colección completa.
Ver Más Ejercicios Resueltos