Media Vettore

Media Vettore

Il problema del calcolo dellla media vettore aritmetica dei valori contenuti in un vettore si può definire nel seguente modo: dato in input un vettore, calcolare la media di tutti i valori contenuti nelle caselle e stamparla. Per poter risolvere questo problema abbiamo la necessità di “visitare” le caselle del vettore accedendo al loro contenuto.

Consideriamo il seguente caso concreto:

int main()
{
   int vet[4] = {1,4,5,6};
}

Ci aspettiamo che l’algoritmo restituisca il valore 4 cioè il risultato della seguente addizione: (1+4+5+6)/4 cioè 4.

Per calcolare la media dei valori, usiamo una variabile (che chiameremo somma) che viene incrementata per ogni valore di ogni casella visitata. Settiamo la variabile somma col valore 0 e per ogni casella visitata incrementiamo la variabile. Al termine, dopo aver calcolato la somma la dividiamo per il numero di caselle del vettore per ottenere la media aritmetica.

La visita alle caselle del vettore può essere implementata attraverso un ciclo for:

//varibaile che verrà incrementata del valore di ogni casella
int somma = 0;
float media = 0;

for(int i=0;i<4;i++)
{
    somma = somma + vet[i];
}

media = somma/4;

Il seguente ciclo risolve il problema della visita delle celle e del calcolo della somma e della media. Per comprenderne il funzionamento analizziamo lo stack trace che la macchina esegue quando esegue il programma stesso.

somma = 0

i=0   , 0<4? SI

somma = 0 + vet[0] = 1;

i=1   , 1<4 SI

somma = 1 + vet[1] = 5;

i=2   , 2<4 SI

somma = 5 + vet[2] = 10;

i=3   , 3<4 SI

somma = 10 + vet[3] = 16;

i=4 , 4<4 NO

Esce dal ciclo dopo aver calcolato il totale di un vettore e calcola la media=somma/numerocaselle

Per avere maggiormente chiaro cosa implementa questo algoritmo vediamo le seguenti slides:

Torna a vettori

Testa su ideone.com