cpp

C++ | Cálculo de promedio de estudiantes con notas y examen

Hoy vamos a resolver otro ejercicio de programación en C++. Se trata de calcular el promedio de un estudiante solicitando la calificación o nota de cada materia, además de la nota del examen semestral para calcular al final el promedio y la letra que obtiene.

El ejercicio dice así:

Realice un programa en C++ que calcule el promedio de los estudiantes. El mismo debe capturar 5 notas parciales y examen semestral. Se debe desplegar en pantalla las 5 notas, total de notas parciales, nota del examen semestral, nota final y la calificación obtenida en letra.

Veamos la solución.

Recabar notas y semestral

Primero necesitamos solicitar las calificaciones de las 5 notas y la del examen semestral. Vamos a almacenar las notas en un arreglo. El código queda así:

// Declarar la cantidad de notas por si el valor cambia
const int cantidadNotas = 5;
double notas[cantidadNotas];
// Solicitar notas
for (int i = 0; i < cantidadNotas; i++)
{
    cout << "Ingrese la nota " << i + 1 << ": ";
    // Guardar en el arreglo
    cin >> notas[i];
}
// Solicitar calificación de examen semestral
double calificacionExamenSemestral;
cout << "Ingrese calificación de examen semestral: ";
cin >> calificacionExamenSemestral;

Cuando esto se ejecute tendremos las 5 notas en el arreglo y la calificación del examen semestral en una variable. Con estos datos ya podemos hacer todo el ejercicio.

Cálculo de promedios

Recorremos el arreglo de las notas y vamos sumando el valor a una variable inicializada en 0. Después, dividimos la sumatoria entre la cantidad de notas. Ahora que ya tenemos el promedio de notas, lo promediamos con el del examen:

// Ahora vamos a hacer cálculos
// La sumatoria para promediar
double sumatoria = 0;
// Recorrer notas, imprimir y sumar a la sumatoria
for (int i = 0; i < cantidadNotas; i++)
{
    sumatoria = sumatoria + notas[i];
    cout << "Nota " << i + 1 << " . Calificación: " << notas[i] << endl;
}
double promedioNotas = sumatoria / cantidadNotas;
// Momento de calcular el promedio final
double promedioFinal = (promedioNotas + calificacionExamenSemestral) / 2;

Calificación como letra

Finalmente veamos cómo saber cuál letra obtiene el alumno según su promedio. En este caso la escala indica que la nota perfecta es una A, de 80 hacia arriba una B, desde 70 hacia arriba una C, de 60 hacia arriba una D y en caso contrario una E.

El código queda así:

    // Calcular la letra
    string letra = "";
    if (promedioFinal == 100)
    {
        letra = "A";
    }
    else if (promedioFinal >= 80)
    {
        letra = "B";
    }
    else if (promedioFinal >= 70)
    {
        letra = "C";
    }
    else if (promedioFinal >= 60)
    {
        letra = "D";
    }
    else
    {
        letra = "E";
    }

Lo que resta ahora es imprimir los resultados y probar el programa.

Poniendo todo junto

El código completo sobre este ejercicio resuelto en CPP/C++ queda así:

/*
  https://parzibyte.me/blog
*/#include <iostream>
using namespace std;

int main()
{
    // Declarar la cantidad de notas por si el valor cambia
    const int cantidadNotas = 5;
    double notas[cantidadNotas];
    // Solicitar notas
    for (int i = 0; i < cantidadNotas; i++)
    {
        cout << "Ingrese la nota " << i + 1 << ": ";
        // Guardar en el arreglo
        cin >> notas[i];
    }
    // Solicitar calificación de examen semestral
    double calificacionExamenSemestral;
    cout << "Ingrese calificación de examen semestral: ";
    cin >> calificacionExamenSemestral;
    // Ahora vamos a hacer cálculos
    // La sumatoria para promediar
    double sumatoria = 0;
    // Recorrer notas, imprimir y sumar a la sumatoria
    for (int i = 0; i < cantidadNotas; i++)
    {
        sumatoria = sumatoria + notas[i];
        cout << "Nota " << i + 1 << " . Calificación: " << notas[i] << endl;
    }
    double promedioNotas = sumatoria / cantidadNotas;
    // Momento de calcular el promedio final
    double promedioFinal = (promedioNotas + calificacionExamenSemestral) / 2;
    // Calcular la letra
    string letra = "";
    if (promedioFinal == 100)
    {
        letra = "A";
    }
    else if (promedioFinal >= 80)
    {
        letra = "B";
    }
    else if (promedioFinal >= 70)
    {
        letra = "C";
    }
    else if (promedioFinal >= 60)
    {
        letra = "D";
    }
    else
    {
        letra = "E";
    }
    // Imprimir resultados
    cout << "Total notas parciales: " << sumatoria << endl;
    cout << "Promedio notas parciales: " << promedioNotas << endl;
    cout << "Nota del semestral: " << calificacionExamenSemestral << endl;
    cout << "Nota final: " << promedioFinal << ". Obtiene " << letra << endl;
}

Al compilarlo y ejecutarlo los resultados son correctos al menos en mi caso:

Promedio de notas y examen semestral de alumno usando CPP

Si el post te ha gustado tal vez quieras leer más sobre C++.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

2 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

2 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

2 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

2 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

2 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

3 días hace

Esta web usa cookies.