Esercizio: il libretto degli esami

Si vuole scrivere un programma che, dati in input i voti di più esami e i relativi crediti, calcoli la media ponderata dei voti e la visualizzi a video.

Si assume che gli esami siano 3: algebra lineare, analisi matematica e introduzione alla programmazione (java).

Quando il programma viene eseguito deve chiedere all’utente di inserire il voto di un certo esame e il relativo numero di crediti associato. Una volta inseriti tutti i voti e i crediti, il programma deve calcolare la media ponderata e visualizzarla a video.

Opzionale:

Suggerimento

La media ponderata si calcola come la somma dei prodotti tra ciascun voto e i relativi crediti, diviso la somma dei crediti. Formalmente:

\[ \text{media} = \frac{\sum_{i=1}^{n} voto_i \cdot crediti_i}{\sum_{i=1}^{n} crediti_i} \] dove \(voto_i\) è il voto dell’esame \(i\)-esimo e \(crediti_i\) è il numero di crediti dell’esame \(i\)-esimo.

Ad esempio, se si hanno tre esami con voti 30, 28 e 25 e i rispettivi crediti sono 6, 9 e 12, la media ponderata è: \[ \frac{30 \cdot 6 + 28 \cdot 9 + 25 \cdot 12}{6 + 9 + 12} = \frac{180 + 252 + 300}{27} = \frac{732}{27} \approx 27.11 \]

Esempio di main:

#include <stdio.h>

int main(void)
{
    int voto_analisi1, voto_algebra_lineare, voto_java;
    int crediti_analisi1, crediti_algebra_lineare, crediti_java;
    int media_ponderata;

    // TODO: Chiedere all'utente i voti e i crediti dei tre esami

    // TODO: Calcolare la media ponderata

    printf("La media ponderata è: %d\n", media_ponderata);
}
#include <stdio.h>

int main(void)
{
    int voto_analisi1, voto_algebra_lineare, voto_java;
    int crediti_analisi1, crediti_algebra_lineare, crediti_java;
    int media_ponderata;

    printf("Inserisci il volto di analisi 1 e i crediti: ");
    scanf("%d %d", &voto_analisi1, &crediti_analisi1);

    printf("Inserisci il volto di algebra lineare e i crediti: ");
    scanf("%d %d", &voto_algebra_lineare, &crediti_algebra_lineare);

    printf("Inserisci il volto di introduzione alla programmazione e i crediti: ");
    scanf("%d %d", &voto_java, &crediti_java);

    int numeratore, denominatore;
    numeratore =
        voto_analisi1 * crediti_analisi1 + voto_algebra_lineare * crediti_algebra_lineare + voto_java * crediti_java;
    denominatore = crediti_analisi1 + crediti_algebra_lineare + crediti_java;
    media_ponderata = numeratore / denominatore;

    printf("La media ponderata è: %d\n", media_ponderata);
}