- Code:
#include<stdio.h>
#include<conio.h>
#include<math.h>
/* LA FONCTION QUI PERMET DE SAISIR UNE NOUVELLE SERIE STATISTIQUE */
/* *p reçoit l'adres du tableau des modaliter */
/* *q reçoit l'adres du tableau des efectifs */
/* n reçoit la taille des deux tableaux */
void newserie(int *p,int *q,int n)
{
int i=0;
printf(" introduire les %d couple (Xi,Ni) des deux tableaux SVP \n",n);
while(i<n){printf("(X%d;N%d)=",i+1,i+1);
scanf("%d%d",(p+i),(q+i));i++;
}
}
/*****************LA FONCTION QUI CALCUL ET RETOURN L'EFFECTIF TOTAL d'une serie statistoique **********/
/* ici *p reçoit l'adres du tableau des effectifs */
int efectiftotal(int *p,int n)
{
int i,eft=0;
for(i=0;i<n;i++)eft=eft+*(p+i);
return (eft);
}
/* LA FONCTION QUI PERMET DE CALCULER LES EFECTIFS CUMULEES*/
void effectifcumule(int *p,int n,int *q)
{
int i,s=0;*q=0;
for(i=0;i<n;i++)
{
s=s+*(p+i);
*(q+i)=s;
}
}
/* LA FONCTION QUI PERMET DE CALCULER LA FREQUENCE RELATIFE*/
/* cet tableau enregistrer les frequence de chacque couple (Xi,Ni) */
void frequencerelative(int *q,int n,float *b)/*frequence relative(q=efect[],n,b=t[]);*/
{int i,s;
float c;
s=efectiftotal(q,n);
for(i=0;i<n;i++)
{
c=*(q+i);c=c/s;
*(b+i)=c;
}
}
/* LA FONCTION QUI PERMET DE CALCULER LA SOMMME DES FREQUENCES RELATIVES */
float somfrequencerelative(int n,float *b)
{
int i;
float som=0;
for(i=0;i<n;i++)
som=som+(*(b+i));
return som;
}
/* LA FONCTION QUI PERMET DE CALCULER LES FREQUENCES CUMULEE*/
void frequencecumule(float *p,int n,float *q)
{
int i;
float s=0;
*q=0;
printf(" LES FREQUENCES CUMULEES SONT \n");
for(i=0;i<n;i++)
{
s=s+*(p+i);
*(q+i)=s;
printf("Fc(X%d;N%d)\t=\t%.3f\n",i+1,i+1,*(q+i));
}
}
/* LA FONCTION QUIU PERMET DE FAIR LE TABLEAU STATISTIQUE */
void tabstat(int *p,int *q,int *r,float *s,float *t,int n,float *b)
{
int i,a=205,c=187,g=203;
int d=200,e=201,f=186;
printf(" LE TABLEAU STATISTIQUE DES DISTRIBUTIONS\n");
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",e,a,a,a,a,a,a,a,g,a,a,a,a,a,a,a,g,a,a,a,a,a,a,a,g,a,a,a,a,a,a,a,g,a,a,a,a,a,a,a,a,c);
printf("\t%cXi \t%c Ni\t%c Nicum\t%c Fi \t%c Ficum %c\n",f,f,f,f,f,f);
for(i=0;i<n;i++)
{
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",a-1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a,f-1);
printf("\t%c %d\t%c %d\t%c %d\t%c %.2f\t%c %.2f %c\n",f,*(p+i),f,*(q+i),f,*(r+i),f,*(s+i),f,*(t+i),f,f);
}
printf("\t%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c%c\n",d,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a+1,a,a,a,a,a,a,a,a,c+1);
printf("\t \t%c %d\t%c \t%c %.2f %c\n",f,efectiftotal(q,n),f,f,somfrequencerelative(n,b),f);
printf("\t \t%c%c%c%c%c%c%c%c%c\t%c%c%c%c%c%c%c%c%c\t\n",d,a,a,a,a,a,a,a,c+1,d,a,a,a,a,a,a,a,c+1);
}
/* LA FONCTION QUI CALCUL ET RETURN LE MODE D'UNE SERIE STATISTIQUE cas descret*/
int mode(int *p,int n,int *q)
{
int i,j,u,x,y,verif=0;
for(i=0;i<n;i++)
{
x=*(p+i);
for(j=i+1;j<n-1;j++)
{
y=*(p+j);
if(x>y)
{
verif=1;
u=i;
}
else
{
verif=0;
u=j;
}
}
}
return (*(q+u));
}
/* la fonction qui calcul et return la moyenne arythmitique d'une serie statistique en */
float moyenne_arythmetique(int *p,int n,int *q)
{
float m;
int som=0,s,c,i;
for(i=0;i<n;i++)
{
c=*(p+i);
s=*(q+i);
som=som+c*s;
}
m=pow(efectiftotal(q,n),-1);
m=m*som;
return m;
}
/* la fonction qui calcul la variance */
float variance(int *p,int n,int *q,float *b)
{
int i;
float s=0,X=moyenne_arythmetique(p,n,q);
for(i=0;i<n;i++)
s=s+(*(b+i)*pow((*(p+i)-X),2));
return s;
}
main()
{
int n;
printf(" introduire la taille de la serie statistique \n");
scanf("%d",&n);
int modal[n],efect[n],efectc[n];/** pour aficter les valeurdes modalites ,effectifs et effectifs cumulées */
float t[n],t1[n];
int *p,*q,*v;
float *b,*c;
p=modal;
q=efect;
b=t;
v=efectc;
c=t1;
printf(" introduire une nouvelle serie statistique \n");
newserie(p,q,n);
printf(" l'effectif total est %d\n",efectiftotal(q,n));
effectifcumule(q,n,v);
frequencerelative(q,n,b);
frequencecumule(b,n,c);
tabstat(p,q,v,b,c,n,b);
printf(" \n\nle mode de cette serie est \t%d\n",mode(q,n,p));
printf(" la moyenne arithmetique est \t%.3f \n",moyenne_arythmetique(p,n,q));
printf(" la variance de cette serie est \t%.3f \n",variance(p,n,q,b));
printf(" l'ecartype de cette serie est \t%.3f \n",sqrt(variance(p,n,q,b)));
/*char choix;do{printf(" FAIT VOTRE CHOIX \n");printf(" ---------------- \n");printf("pour calculer l'effectif total ---> 1 \n");printf("pour calculer les effectifs cumulées ---> 2 \n");printf("pour calculer les frequences relative ---> 3 \n");printf("pour calculer les frequences cumulées ---> 4 \n");printf("pour afficher la table statatistique ---> 5 \n");printf("pour calculer le mode de la serie ---> 6 \n");printf("pour calculer la moyenne arithmetique ---> 7 \n");printf("pour calculer la variance de cette serie ---> 8 \n");printf("pour SORTIE ---> S \n");printf("VOTRE CHOIX: ");choix = (char)getchar();switch(choix){case '1':printf(" l'effectif total de cette serie est N = %d\n",efectiftotal(q,n));break;case '2':effectifcumule(q,n,v);break;case '3':frequencerelative(q,n,b);break;case '4':frequencecumule(b,n,c);break;case '5':tabstat(p,q,v,b,c,n,b);break;case '6':printf(" le mode de cette serie est %d\n",mode(q,n,p));break;case '7':printf(" la moyenne arithmetique est %f \n",moyenne_arythmetique(p,n,q));break;case '8':printf(" la variance de cette serie est %f \n",variance(p,n,q,b));break;}}while ((choix!='S') && (choix!='s'));*/
system("pause");
}
/* editeur : BENTARA NASSIM prinas*/
Avons que vous pouvez visiter se site. je vous demande d'enregistrer en premier pour profiter touts avantage "gratuit"
Rejoignez le forum, c’est rapide et facile