Enrere Mòdul 5
Fonaments de Programació. Llenguatge C/C++---
Pràctica    Resum teòric Exercicis
Pràctica d'ampliació

 
Paràmetres estadístics

En aquesta pràctica definirem les funcions mitjana() i variança() per calcular la mitjana, la variança i la desviació típica d'una col·lecció de dades de qualsevol mida. Per emmagatzemar les dades es farà ús d'un vector de nombres reals.

 

Desenvolupament de la pràctica

Creeu un nou arxiu del tipus C anomenat m5p04.c i escriviu el següent codi:

//m5p04.c - Paràmetres estadístics -

#define MAX_NUM_DADES 100
#include <stdio.h>
#include <math.h>

#include <stdlib.h>

double mitjana(double*, int);
double varianca(double* ,int );


i
nt main(){

   double dada[MAX_NUM_DADES],var;
   int n,i;

   system("clear");
   //introducció de les dades
   printf("nombre de dades a introduïr:...");
   scanf("%d", &n);

   for(i=0;i<n;i++){
      printf("dada %d:..",i);
      scanf("%lf",&dada[i]);
   }

   //càlcul dels paràmetres:
   printf("\nnombre de dades...%d",n);
   printf("\nmitjana ...%lf",mitjana(dada,n));
   var=varianca(dada,n);
   printf("\nvariança ...%lf", var);
   printf("\ndesviació típica...%lf\n", sqrt(var));
   return 0;
}
 


double mitjana(double *dada,int n){

   double res=0;
   int i;

   for(i=0;i<n;i++) res=res+dada[i];
   return res/n;
}



double varianca(double *dada,int n){

   double res=0;
   double mit;
   int i;

   mit=mitjana(dada,n);
   for(i=0;i<n;i++) res=res+dada[i]*dada[i];
   return res/n-mit*mit;
}

 

Captura de l'execució del programa.

Explicació del programa

Les dades s'emmagatzemen en la variable indexada dada[]. Aquesta variable es declara de forma que pugui emmagatzemar un màxim de 100 dades (MAX_NUM_DADES).

Les dades s'introdueixen pel teclat i són llegides pel següent codi:

 
for(i=0;i<n;i++){
        printf("dada %d:..",i);
        scanf("%lf",&dada[i]);
    }

La variable n és llegida amb anterioritat i conté el nombre de dades que s'introduiran.

El càlcul de la mitjana i la variança es fa a través de les funcions mitjana() i varianca(). Ambdues funcions tenen com arguments el vector de dades i el nombre de dades. El nombre de dades es passa per valor i el vector es passa per referència, és a dir, no es fa còpia de totes les dades sinó que es passa el nom del vector, que és un punter a la primera posició de les dades originals.

Les fórmules per al càlcul de la mitjana, la variança i la desviació típica ja van ser presentats a l'exercici 6 del mòdul 2.