home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************
- * CH11_06.C Tableaux dans une structure *
- * Statistiques liΘes α une sΘrie Sn de n valeurs Xi *
- * α chacune desquelles est associΘe une frΘquence fi *
- * moyenne, variance et Θcart-type pour Sn= { Xi, fi} *
- *********************************************************************/
-
- #include<stdio.h>
- #include<math.h>
-
- #define dim 20
-
- struct statcouple
- {
- int n; /* n: nombre de couples */
- double x[dim], f[dim],
- sumx, sumf, sumxf, sumx_2f,
- ex, ex_2, /* espΘrances mathΘmatiques */
- varx, sdx, /* variance et Θcart-type */
- varcx, sdcx; /* valeurs corrigΘes */
- };
-
- void LitInt( int*);
- void LitDble( double*);
- void LitStat( struct statcouple*);
- void EcritStat( struct statcouple*);
-
- main( void)
- {
- struct statcouple s;
-
- LitStat( &s);
- EcritStat( &s);
- }
-
- void LitStat( struct statcouple *s0)
- {
- int i;
-
- printf("\n Entrez le nombre de couples de la sΘrie: ");
- do
- {
- LitInt( &s0->n);
- }
- while( s0->n< 2 || s0->n> dim);
-
- for( i= 0; i< s0->n; i++)
- {
- printf("\n Entrez le couple n░ %d\t x: ", i+ 1);
- LitDble( &s0->x[i]);
- printf("\t\t\t f: ");
- LitDble( &s0->f[i]);
-
- s0->sumx+= s0->x[i];
- s0->sumf+= s0->f[i];
- s0->sumxf+= ( s0->x[i]* s0->f[i]);
- s0->sumx_2f+= ( s0->x[i]* s0->x[i]* s0->f[i]);
- }
-
- s0->ex= s0->sumxf/ s0->sumf;
- s0->ex_2= s0->sumx_2f/ s0->sumf;
- s0->varx= s0->ex_2- s0->ex* s0->ex;
- s0->sdx= sqrt( s0->varx);
- s0->varcx= s0->varx* ( 1.0* s0->n/ ( s0->n- 1) );
- s0->sdcx= sqrt( s0->varcx);
- }
-
- void EcritStat( struct statcouple *s1)
- {
- printf("\n nombre de couples: %d"
- "\n Somme( Xi)= %.2lf , Somme( fi)= %.2lf"
- "\n Somme( Xi.fi)= %.2lf , Somme( Xi▓.fi)= %.2lf"
- "\n E( X)= %.2lf , E( X▓)= %.2lf"
- "\n Variance( X)= %.2lf , Ecart-type( X)= %.2lf"
- "\n Var corrigΘe( X)= %.2lf , Ecart-type corrigΘ( X)= %.2lf",
- s1->n, s1->sumx, s1->sumf, s1->sumxf, s1->sumx_2f,
- s1->ex, s1->ex_2, s1->varx, s1->sdx,
- s1->varcx, s1->sdcx);
-
- }
-
- void LitInt( int *entier)
- {
- double dble;
- do
- {
- while( scanf("%lf", &dble)!= 1)
- while( getchar() != '\n');
- while( getchar() != '\n');
- }
- while( dble< -32768.0 || dble> 32767.0);
- *entier= (int) dble;
- }
-
- void LitDble( double *reel)
- {
- while( scanf("%lf", reel)!= 1)
- while( getchar() != '\n');
- while( getchar() != '\n');
- }
-
- /*
- Entrez le nombre de couples de la sΘrie: 5
- Entrez le couple n░ 1: x: 61
- f: 50
- Entrez le couple n░ 1: x: 64
- f: 180
- Entrez le couple n░ 1: x: 67
- f: 420
- Entrez le couple n░ 1: x: 70
- f: 270
- Entrez le couple n░ 1: x: 73
- f: 80
- nombre de couples: 5
- Somme( Xi)= 335.00 , Somme( fi)= 1000.00
- Somme( Xi.fi)= 67450.00 , Somme( Xi▓.fi)= 4558030.00
- E( X)= 67.45 , E( X▓)= 4558.03
- Variance( X)= 8.53 , Ecart-type( X)= 2.92
- Var corrigΘe( X)= 10.66 , Ecart-type corrigΘ( X)= 3.26
- */