Programme pour l’exécution d’un tableau statistique
Forum INFOMATH :: Enseignement de l'informatique :: INFO - Supérieur (Etudiants et Professionnels) :: C/C++
Page 1 sur 1•
Programme pour l’exécution d’un tableau statistique
Salut
Voila les instructions d’un programme qui permet de traité une tableau statistique, mais malheureusement sa fonctionne pas alors s’il vous plait dite moi où sont mes conflits pour que mon programme s’exécute
NB :
- pour un tableau statistique il existe deux cas (cas continus, cas discret)
-Le variable C est pour tester sur quel cas l’utilisateur va travailler
-les donner (modalité (ni), effectifs (xi)) et les résultats (fréquences (fi), fréquence cumulé (F), ci) sont stocké dans une matrice dont le membre des colonne (N) est donner par l’utilisateur.
-xmax : le plus grand nombre parmi les modalité seulement dans le cas discret
-xmin : le nombre le plus petit parmi les modalité seulement dans le cas discret
-so : la somme de tous les effectifs
-F : fréquence cumuler F=Σfi
-X : c’est la moyenne arithmétique X=Σfi*xi
-v=Σfi(xi-X) c’est la variance
-l’écart type c’est la racine carré de la variance
Voila les instructions d’un programme qui permet de traité une tableau statistique, mais malheureusement sa fonctionne pas alors s’il vous plait dite moi où sont mes conflits pour que mon programme s’exécute
NB :
- pour un tableau statistique il existe deux cas (cas continus, cas discret)
-Le variable C est pour tester sur quel cas l’utilisateur va travailler
-les donner (modalité (ni), effectifs (xi)) et les résultats (fréquences (fi), fréquence cumulé (F), ci) sont stocké dans une matrice dont le membre des colonne (N) est donner par l’utilisateur.
-xmax : le plus grand nombre parmi les modalité seulement dans le cas discret
-xmin : le nombre le plus petit parmi les modalité seulement dans le cas discret
-so : la somme de tous les effectifs
-F : fréquence cumuler F=Σfi
-X : c’est la moyenne arithmétique X=Σfi*xi
-v=Σfi(xi-X) c’est la variance
-l’écart type c’est la racine carré de la variance
- Code:
#include<stdio.h>
#include<math.h>
void main()
{
int c,i,n,xmax,xmin,j,so;
float T[20][20],F,X,v;
printf("tapez:\n1 pour travaillé sur un tableau statistique dont les modalités sont discrètes\n2 pour travaillé sur un tableau statistique dont les modalité sont continue");
printf("\n");
scanf("%d",&c);
if(c==1)
{
printf("\ndonner la taille de la population(N):");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\ndonner la %d ième modalité:",i+1);
scanf("%d",&T[0][i]);
printf("\ndonner la %d ième effectif",i+1);
scanf("%d",&T[1][i]);
}
for(so=0,i=0;i<n;i++)
{
so=so+T[1][i];
}
printf("\ncalcule des fréquences ");
for(i=0;i<n;i++)
{
T[2][i]=T[1][i]/so;
printf("%f",T[2][i]);
}
printf("\ncalcule des fréquences cumulé croissante");
printf("F(%d)=0",T[0][0]);
for(F=0,i=1;i<n;i++)
{
F=F+T[2][i];
printf("\tF(%d)=%f",T[0][i]);
}
for(X=0,i=0;i<n;i++)
X=X+T[0][i]*T[2][i];
printf("la moyenne arithmétique égale à %f",X);
xmax=T[0][0];
for(i=1;i<n;i++)
{
if(T[0][i]>xmax)
xmax=T[0][i];
}
xmin=T[0][0];
for(i=1;i<n;i++)
{
if(T[0][i]<xmin)
xmin=T[0][i];
}
printf("l'etandue ETD=%d-%d=%d",xmax,xmin,xmax-xmin);
for(v=0,i=0;i<n;i++)
v=v+T[2][i]*pow(T[0][i]-X,2);
printf("la variance égale à %f",v);
printf("l'écart type égale à %f",sqrt(v));
}
if(c==2)
{
printf("donner la taille de la population");
scanf("%d",&n);
for(i=0,j=1;i<(n*2);i++);
{
if(j==1)
{
printf("donner la borne inférieur de la %d ième intervalle",(i+2)/2);
scanf("%d",&T[0][i]);
j=2;
}
else
{
printf("donner la borne supérieur de la %d ième intervalle",(i+1)/2);
scanf("%d",&T[0][i]);
j=1;
}
}
for(i=0;i<n;i++)
{
printf("donner la %d ième effectif",i+1/2);
scanf("%d",&T[1][i]);
}
for(so=0,i=0;i<n;i++)
so=so+T[1][i];
printf("calcule des fréquances");
for(i=0;i<n;i++)
{
T[2][i]=T[1][i]/so;
printf("%f",T[2][i]);
}
printf("les fréquences cumulé croissantes");
for(j=0,F=0,i=0;i<n;i++)
{
F=F+T[2][i];
T[3][i]=F;
printf("F(%d,%d)=%f",T[0][j],T[0][j+1],F);
j=j+2;
}
printf("calcule de ci");
for(j=0,i=0;i<n;i++)
{
T[4][i]=T[0][j]+T[0][j+1]/2;
j=j+2;
}
for(X=0,i=0;i<n;i++)
{
X=X+T[4][i]*T[2][i];
printf("la moyenne arithmétique est %f",X);
}
for(v=0,i=0;i<n;i++)
v=v+T[2][i]*pow(T[4][i]-X,2);
printf("la variance égale à %f",v);
printf("l'écart type égale à %f",sqrt(v));
}
}

TAKTOUK- Membre fondamental




- Messages : 181
Inscrit le : 19 Mar 2008
Age : 21
Localisation : monastir
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: Programme pour l’exécution d’un tableau statistique
D'abord, il faudrait lire les avertissements du compilateur et indenter son code :
Pense aussi à modulariser ton code et à donner à tes variables des noms de plus de trois lettres.
A partir de là, on pourra t'aider.
Compiling: main.c
main.c:4: warning: function declaration isn't a prototype
main.c:4: warning: return type of 'main' is not `int'
main.c: In function `main':
main.c:17: warning: int format, float arg (arg 2)
main.c:19: warning: int format, float arg (arg 2)
main.c:32: warning: int format, double arg (arg 2)
main.c:36: warning: int format, double arg (arg 2)
main.c:36: warning: too few arguments for format
main.c:55: warning: passing arg 2 of `pow' as floating rather than integer due to prototype
main.c:68: warning: int format, float arg (arg 2)
main.c:74: warning: int format, float arg (arg 2)
main.c:81: warning: int format, float arg (arg 2)
main.c:96: warning: int format, double arg (arg 2)
main.c:96: warning: int format, double arg (arg 3)
main.c:111: warning: passing arg 2 of `pow' as floating rather than integer due to prototype
main.c:73: warning: will never be executed
main.c:110: warning: will never be executed
Pense aussi à modulariser ton code et à donner à tes variables des noms de plus de trois lettres.
A partir de là, on pourra t'aider.
Timon- Membre important


- Messages : 57
Inscrit le : 14 Jan 2008
Localisation : France
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Programme pour l’exécution d’un tableau statistique
Je vais le compiler et te rappeler plutard.
Sami - Methodix, tunis
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)
Le génie de Newton a consisté à dire que la lune tombe alors que tout le monde voit bien qu'elle ne tombe pas.
(Paul Valéry)

methodiX- Admin


- Messages : 811
Inscrit le : 22 Mar 2007
Localisation : marsa - IPEST
Feuille de personnage
Capacité linguistique:


(1000/1000)
Re: Programme pour l’exécution d’un tableau statistique
Timon : je souligne les points les plus importants.
si vous respectez ces consignes ce sera un travail professionnel.
Timon a écrit:D'abord, il faudrait lire les avertissements du compilateur et indenter son code :
Pense aussi à modulariser ton code et à donner à tes variables des noms de plus de trois lettres.
A partir de là, on pourra t'aider.
si vous respectez ces consignes ce sera un travail professionnel.
manianis- Admin


- Messages : 976
Inscrit le : 10 Oct 2007
Localisation : Tunisie
Feuille de personnage
Capacité linguistique:


(999/1000)
Re: Programme pour l’exécution d’un tableau statistique
La compilation du mon turbo C n’a indiquer aucune faute mais la problème c’été dans l’exécution il m’apparais toujours des messages d’erreur.
Mais je veut essayer de faire quelle modification sur ce programme pour qu’il soit un peut plus compréhensible puis je le postera une autre fois
Mais je veut essayer de faire quelle modification sur ce programme pour qu’il soit un peut plus compréhensible puis je le postera une autre fois

TAKTOUK- Membre fondamental




- Messages : 181
Inscrit le : 19 Mar 2008
Age : 21
Localisation : monastir
Feuille de personnage
Capacité linguistique:


(996/1000)
Re: Programme pour l’exécution d’un tableau statistique
TAKTOUK a écrit:La compilation du mon turbo C n’a indiquer aucune faute mais la problème c’été dans l’exécution il m’apparais toujours des messages d’erreur.
C'est un problème récurrent : il faut apprendre à configurer son compilateur pour qu'il affiche tout ce qui lui paraît étrange. Je suppose que Turbo C a une documentation.
Ensuite, voici votre code réindenté (merci AStyle) mais non corrigé :
- Code:
#include<stdio.h>
#include<math.h>
void main()
{
int c, i, n, xmax, xmin, j, so;
float T[20][20], F, X, v;
printf("tapez:\n1 pour travaillé sur un tableau statistique dont les modalités sont discrètes\n2 pour travaillé sur un tableau statistique dont les modalité sont continue");
printf("\n");
scanf("%d", &c);
if (c == 1)
{
printf("\ndonner la taille de la population(N):");
scanf("%d", &n);
for (i = 0;i < n;i++)
{
printf("\ndonner la %d ième modalité:", i + 1);
scanf("%d", &T[0][i]);
printf("\ndonner la %d ième effectif", i + 1);
scanf("%d", &T[1][i]);
}
for (so = 0, i = 0;i < n;i++)
{
so = so + T[1][i];
}
printf("\ncalcule des fréquences ");
for (i = 0;i < n;i++)
{
T[2][i] = T[1][i] / so;
printf("%f", T[2][i]);
}
printf("\ncalcule des fréquences cumulé croissante");
printf("F(%d)=0", T[0][0]);
for (F = 0, i = 1;i < n;i++)
{
F = F + T[2][i];
printf("\tF(%d)=%f", T[0][i]);
}
for (X = 0, i = 0;i < n;i++)
X = X + T[0][i] * T[2][i];
printf("la moyenne arithmétique égale à %f", X);
xmax = T[0][0];
for (i = 1;i < n;i++)
{
if (T[0][i] > xmax)
xmax = T[0][i];
}
xmin = T[0][0];
for (i = 1;i < n;i++)
{
if (T[0][i] < xmin)
xmin = T[0][i];
}
printf("l'etandue ETD=%d-%d=%d", xmax, xmin, xmax - xmin);
for (v = 0, i = 0;i < n;i++)
v = v + T[2][i] * pow(T[0][i] - X, 2);
printf("la variance égale à %f", v);
printf("l'écart type égale à %f", sqrt(v));
}
if (c == 2)
{
printf("donner la taille de la population");
scanf("%d", &n);
for (i = 0, j = 1;i < (n*2);i++);
{
if (j == 1)
{
printf("donner la borne inférieur de la %d ième intervalle", (i + 2) / 2);
scanf("%d", &T[0][i]);
j = 2;
}
else
{
printf("donner la borne supérieur de la %d ième intervalle", (i + 1) / 2);
scanf("%d", &T[0][i]);
j = 1;
}
}
for (i = 0;i < n;i++)
{
printf("donner la %d ième effectif", i + 1 / 2);
scanf("%d", &T[1][i]);
}
for (so = 0, i = 0;i < n;i++)
so = so + T[1][i];
printf("calcule des fréquances");
for (i = 0;i < n;i++)
{
T[2][i] = T[1][i] / so;
printf("%f", T[2][i]);
}
printf("les fréquences cumulé croissantes");
for (j = 0, F = 0, i = 0;i < n;i++)
{
F = F + T[2][i];
T[3][i] = F;
printf("F(%d,%d)=%f", T[0][j], T[0][j+1], F);
j = j + 2;
}
printf("calcule de ci");
for (j = 0, i = 0;i < n;i++)
{
T[4][i] = T[0][j] + T[0][j+1] / 2;
j = j + 2;
}
for (X = 0, i = 0;i < n;i++)
{
X = X + T[4][i] * T[2][i];
printf("la moyenne arithmétique est %f", X);
}
for (v = 0, i = 0;i < n;i++)
v = v + T[2][i] * pow(T[4][i] - X, 2);
printf("la variance égale à %f", v);
printf("l'écart type égale à %f", sqrt(v));
}
}
C'est tout de même plus lisible maintenant, non ?
Quelques nouvelles remarques :
- la fonction main() doit retourner une valeur de type int.
- le type float doit être évité au maximum.
- les noms en majuscules devraient être réservés aux constantes.
- les nombres magiques doivent être cachés.
- le respect de la règle des 80 colonnes est fortement recommandé.
Timon- Membre important


- Messages : 57
Inscrit le : 14 Jan 2008
Localisation : France
Feuille de personnage
Capacité linguistique:


(1000/1000)




