Algoritmo para Calcular el Promedio de 3 Calificaciones en PSeInt (Guía 2026)

Nivel: Básico Tiempo: ~15 min

Determinar el rendimiento académico de un alumno es el ejercicio clásico para dominar las operaciones aritméticas y las estructuras condicionales. En este tutorial, desarrollaremos un algoritmo en PSeInt que solicita tres notas parciales, calcula el promedio final y, lo más importante, utiliza lógica computacional para decidir si el estudiante Aprueba o Reprueba la materia. Aprenderás a manejar variables de tipo Real para soportar decimales, aplicar correctamente la jerarquía de operadores matemáticos y mostrar resultados claros en pantalla.

Conceptos Clave para este Ejercicio

Para crear este programa sin errores, debemos entender dos fundamentos técnicos de la programación estructurada:

Tipos de Datos (Entero vs Real)

Las calificaciones académicas suelen tener decimales (ej: 8.5 o 4.7). Si definimos las variables como Entero, PSeInt eliminará la parte decimal, generando un cálculo inexacto. Por ello, es obligatorio usar Definir ... Como Real.

Precedencia Aritmética

La regla de oro en matemáticas: la división tiene prioridad sobre la suma. Si escribes n1+n2+n3/3, la computadora solo dividirá la última nota. Debemos agrupar la suma con paréntesis: (n1+n2+n3)/3.

Análisis del Problema

El flujo de datos para calcular el promedio de un alumno sigue estos pasos secuenciales:

  • ENTRADA Necesitamos capturar 3 valores numéricos. Definiremos las variables cal1, cal2 y cal3.
  • PROCESO 1. Sumar las tres calificaciones.
    2. Dividir la suma total entre 3.
    3. Comparar el resultado con la nota mínima aprobatoria (ej: 6.0 o 70).
  • SALIDA Mostrar el promedio final y un mensaje de estatus: «APROBADO» o «REPROBADO».

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

Archivo: PromedioAlumno.psc
Algoritmo CalcularPromedioNotas
    // 1. Definición de Variables
    // Usamos Real para soportar notas como 4.5 o 9.8
    Definir nota1, nota2, nota3, promedio Como Real;
    
    // 2. Entrada de Datos
    Escribir "=== SISTEMA DE CALIFICACIONES ===";
    Escribir "Ingrese la calificación del primer parcial:";
    Leer nota1;
    Escribir "Ingrese la calificación del segundo parcial:";
    Leer nota2;
    Escribir "Ingrese la calificación del tercer parcial:";
    Leer nota3;
    
    // 3. Proceso: Cálculo Matemático
    // IMPORTANTE: Los paréntesis obligan a sumar antes de dividir
    promedio <- (nota1 + nota2 + nota3) / 3;
    
    // 4. Salida de Resultados y Condicional
    Escribir "-----------------------------";
    Escribir "El promedio final es: ", promedio;
    
    // Suponemos que la nota mínima para aprobar es 6.0
    Si promedio >= 6.0 Entonces
        Escribir "Estado: APROBADO. ¡Felicidades!";
    SiNo
        Escribir "Estado: REPROBADO. Necesitas mejorar.";
    FinSi
    Escribir "-----------------------------";
    
FinAlgoritmo

Diagrama de Flujo

⚠️ Errores Comunes de Estudiantes

Evita estos fallos típicos que pueden arruinar tu lógica de programación:

Falta de Paréntesis

Error: prom = n1 + n2 + n3 / 3.
Consecuencia: Si las notas son 10, 10 y 10, el resultado será 23.33 en lugar de 10. La máquina divide 10/3 y le suma 20.

Confusión de Rango

No validar que las notas estén entre 0 y 10. Si el usuario ingresa «50» por error, el promedio será imposiblemente alto, rompiendo la lógica del sistema escolar.

Reto: Código Optimizado con Validación

Un buen programador siempre anticipa errores humanos. El siguiente código verifica que las notas ingresadas sean válidas (entre 0 y 10) usando un ciclo Repetir antes de calcular.

Algoritmo PromedioSeguro
    Definir n1, n2, n3, prom Como Real;
    Definir datosValidos Como Logico;
    
    Repetir
        Escribir "Ingrese las 3 notas (separadas por Enter):";
        Leer n1, n2, n3;
        
        // Validamos que todas las notas estén en rango 0-10
        Si (n1<0 O n1>10) O (n2<0 O n2>10) O (n3<0 O n3>10) Entonces
            Escribir "ERROR: Alguna nota no está entre 0 y 10.";
            datosValidos <- Falso;
        SiNo
            datosValidos <- Verdadero;
        FinSi
    Hasta Que datosValidos = Verdadero;
    
    prom <- (n1 + n2 + n3) / 3;
    
    // Redondeamos a 2 decimales para mejor presentación
    prom <- redon(prom * 100) / 100;
    
    Escribir "Promedio Final Validado: ", prom;
    
    // Estructura Si-Entonces anidada para mensajes específicos
    Si prom >= 9 Entonces
        Escribir "Nivel: EXCELENTE";
    SiNo
        Si prom >= 6 Entonces
            Escribir "Nivel: REGULAR (Aprobado)";
        SiNo
            Escribir "Nivel: INSUFICIENTE (Reprobado)";
        FinSi
    FinSi
FinAlgoritmo

Preguntas Frecuentes (FAQ)

¿Cómo puedo redondear el promedio?
PSeInt no tiene una función redondear(x, decimales) directa, pero puedes usar el truco matemático: redon(numero * 100) / 100 para dejar dos decimales.
¿Qué hago si cada nota tiene un porcentaje distinto?
Esto sería un «Promedio Ponderado». En lugar de dividir entre 3, debes multiplicar cada nota por su peso (ej: n1*0.30 + n2*0.30 + n3*0.40).
¿Cómo calcular el promedio de N alumnos?
Necesitarás un ciclo Para o Mientras que envuelva todo el algoritmo anterior, preguntando al principio cuántos alumnos se van a procesar.
¿Por qué me sale «No coinciden los tipos»?
Probablemente estás intentando guardar texto (como el nombre del alumno) en una variable definida como Real o Entero. Revisa tus definiciones.

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