Algoritmo para Calcular la Media de N Números en PSeInt (Guía 2026)

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

Calcular el promedio (o media aritmética) es una operación fundamental en análisis de datos, desde calificar exámenes hasta procesar sensores científicos. Pero, ¿qué pasa cuando no sabemos de antemano cuántos datos vamos a procesar? En este tutorial de Lógica de Programación, aprenderás a construir un algoritmo flexible en PSeInt que solicita al usuario la cantidad de datos (N) y luego utiliza un Ciclo Para y un Acumulador para procesar la información dinámicamente. Este ejercicio es crucial para entender la diferencia entre variables de control (contadores) y variables de almacenamiento (acumuladores).

Conceptos Clave: Acumuladores y Contadores

Para resolver este problema, necesitamos gestionar dos tipos de datos simultáneamente:

La Variable ‘N’ (Límite)

Representa la «Cantidad de Elementos». Antes de empezar a sumar, debemos preguntar al usuario: «¿Cuántos números vas a ingresar?». Este valor N definirá cuántas vueltas dará nuestro ciclo. Es el denominador de nuestra fórmula de promedio.

El Acumulador (Suma)

No podemos guardar todos los números en variables distintas (n1, n2, n3…) porque no sabemos cuántos son. En su lugar, usamos una sola variable suma que atrapa y acumula el valor en cada iteración: suma <- suma + dato.

Análisis del Algoritmo

La lógica matemática para la media es $\bar{x} = \frac{\sum x}{N}$. Traducido a algoritmo:

  • ENTRADA 1. Solicitar N (Total de datos).
    2. Dentro de un bucle, solicitar N veces el valor numérico (dato).
  • PROCESO 1. Inicializar suma = 0.
    2. Ciclo desde 1 hasta N: suma = suma + dato.
    3. Al terminar el ciclo: promedio = suma / N.
  • SALIDA Mostrar el resultado del cálculo. Es importante validar que N > 0 para evitar la división por cero.

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

Archivo: MediaNNumeros.psc
Algoritmo CalcularPromedioN
    // 1. Definición de Variables
    // 'n' es la cantidad de datos (Entero)
    // 'dato' es el número que ingresa el usuario en cada vuelta
    // 'suma' es el acumulador
    // 'promedio' es el resultado final (Real)
    Definir n, i Como Entero;
    Definir dato, suma, promedio Como Real;
    
    // 2. Inicialización
    suma <- 0; // ¡Muy importante empezar en 0!
    
    // 3. Obtener la cantidad de datos
    Escribir "=== CÁLCULO DE MEDIA ARITMÉTICA ===";
    Escribir "¿Cuántos números desea ingresar?";
    Leer n;
    
    // 4. Ciclo de Lectura y Acumulación
    // Usamos PARA porque sabemos exactamente cuántas vueltas dar (n)
    Para i <- 1 Hasta n Con Paso 1 Hacer
        Escribir "Ingrese el número ", i, ":";
        Leer dato;
        
        // Acumulamos el valor
        suma <- suma + dato;
    FinPara
    
    // 5. Cálculo Final y Salida
    // Validamos para no dividir por cero si n es 0
    Si n > 0 Entonces
        promedio <- suma / n;
        Escribir "-----------------------------";
        Escribir "La suma total es: ", suma;
        Escribir "La MEDIA (Promedio) es: ", promedio;
        Escribir "-----------------------------";
    SiNo
        Escribir "Error: La cantidad de números debe ser mayor a 0.";
    FinSi
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Frecuentes al Calcular Medias

Estos son los detalles que suelen olvidar los principiantes:

No inicializar la Suma

Si no escribes suma <- 0 antes del ciclo, PSeInt podría usar un valor basura o dar error. El acumulador siempre debe empezar limpio.

Calcular el Promedio DENTRO del ciclo

Un error clásico es poner promedio <- suma / n dentro del Para. Esto hace que la computadora calcule el promedio N veces innecesariamente. La división solo debe hacerse una vez, al finalizar el bucle.

Reto: Validación Estricta de Datos

¿Qué pasa si el usuario dice que va a ingresar "-5" números? El programa fallaría. Vamos a blindar el código usando un ciclo Repetir para asegurar que N sea válido antes de continuar.

Algoritmo MediaRobusta
    Definir n, i Como Entero;
    Definir dato, suma, promedio Como Real;
    
    suma <- 0;
    
    // Validación: Obligar a ingresar un N positivo
    Repetir
        Escribir "¿Cuántos datos va a procesar? (Debe ser > 0):";
        Leer n;
        Si n <= 0 Entonces
            Escribir "Error: Cantidad inválida.";
        FinSi
    Hasta Que n > 0
    
    Para i <- 1 Hasta n Hacer
        Escribir "Ingrese dato #", i, ":";
        Leer dato;
        suma <- suma + dato;
    FinPara
    
    promedio <- suma / n;
    
    // Redondeo visual (truco matemático)
    promedio <- redon(promedio * 100) / 100;
    
    Escribir ">>> El promedio de los ", n, " datos es: ", promedio;
    
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Qué hago si no sé cuántos números son (N)?
Si N es desconocido, no uses el ciclo Para. Usa un ciclo Mientras o Repetir con un "valor centinela" (ej: ingresar 0 para terminar) y usa un contador manual para saber por cuánto dividir al final.
¿Puedo usar arreglos (vectores)?
Sí, podrías guardar todos los datos en un arreglo Dimension datos[n] y luego recorrerlo para sumar. Es útil si necesitas volver a usar los números individuales después (ej: para calcular la varianza), pero para un promedio simple, el acumulador consume menos memoria.
¿Por qué declarar las variables como Real?
Aunque N sea entero, los datos ingresados pueden ser decimales (ej: notas 4.5, 3.2). Además, la división del promedio casi siempre genera decimales. Usar Real evita pérdida de precisión.
¿Cómo reinicio el programa?
Envuelve todo el algoritmo (excepto la definición de variables) en un ciclo Repetir... Hasta Que respuesta="N".

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