Programme pour l’exécution d’un tableau statistique

Voir le sujet précédent Voir le sujet suivant Aller en bas

Programme pour l’exécution d’un tableau statistique

Message par TAKTOUK le Dim 23 Mar - 20:11

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
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));
}
}
avatar
TAKTOUK
Entier Relatif
Entier Relatif

Masculin
Nombre de messages : 187
Age : 30
Localisation : monastir
Réputation : -1
Points : 3503
Date d'inscription : 19/03/2008

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

http://developpeurs.o-n.fr

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par Timon le Dim 23 Mar - 23:04

D'abord, il faudrait lire les avertissements du compilateur et indenter son code :
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
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par methodiX le Dim 23 Mar - 23:08

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)
_____
Cliquer ici: Voir les nouveaux messages depuis votre dernière visite
Cliquer ici: Astuce: Utiliser l'outil "Recherche" du forum
avatar
methodiX
Admin
Admin

Masculin
Nombre de messages : 1260
Localisation : Le couloir de l'école polytechnique de Tunis
Réputation : 68
Points : 4665
Date d'inscription : 22/03/2007

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par manianis le Lun 24 Mar - 0:19

Timon : je souligne les points les plus importants.

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
Nombre Réel
Nombre Réel

Masculin
Nombre de messages : 975
Localisation : Tunisie
Réputation : 4
Points : 3666
Date d'inscription : 11/10/2007

Feuille de personnage
Capacité linguistique:
999/1000  (999/1000)

http://manianis.sitesled.com/

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par TAKTOUK le Lun 24 Mar - 0:53

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
avatar
TAKTOUK
Entier Relatif
Entier Relatif

Masculin
Nombre de messages : 187
Age : 30
Localisation : monastir
Réputation : -1
Points : 3503
Date d'inscription : 19/03/2008

Feuille de personnage
Capacité linguistique:
996/1000  (996/1000)

http://developpeurs.o-n.fr

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par Timon le Lun 24 Mar - 1:18

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
Entier Naturel
Entier Naturel

Masculin
Nombre de messages : 61
Localisation : France
Réputation : 0
Points : 3573
Date d'inscription : 14/01/2008

Feuille de personnage
Capacité linguistique:
1000/1000  (1000/1000)

http://tm.timon.free.fr

Revenir en haut Aller en bas

Re: Programme pour l’exécution d’un tableau statistique

Message par Contenu sponsorisé


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum