IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Problème de tableau


Sujet :

C

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Problème de tableau
    J'aurai besoin d'aide pour un exercice.
    J'ai créé un tableau ECHF2 dans lequel j'y ai mis les résultats d'un tirage au sort sans remise répété 50 fois de 200 individus.
    Mais je n'arrive pas à remplir le tableau des proportion pour chaque type d'individus à chaque echantilonnage isolément.

    Je vous met le code complet que j'ai fait pour le calcul des types "PAS_ENFANT":

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    #include <stdio.h>
    #include <stdlib.h>
    #include <math.h>
    #include <time.h>
     
    #define NB_FEMMES 1000
    #define ECHANTILLON 200
    #define TIRAGE 50
     
    /* Definition des types de femmes */
    enum
    {
       PAS_ENFANT = 0,
       UN_ENFANT = 1,
       DEUX_ENFANTS = 2,
       TROIS_ENFANTS = 3,
       CODES_FEMMES
    };
     
    static void affichagetab (int nb, int tab[])
    {
       int i;
       for (i = 0; i < nb; i++)
          printf ("%i ", tab[i]);
    }
     
    static float SommePropfemmes_0 (float PROP0[], float tailletableau)
    {
       float SumPROPfemmes_0 = 0;
       int i;
       for (i = 0; i < tailletableau; i++)
       {
          SumPROPfemmes_0 = SumPROPfemmes_0 + PROP0[i];
       }
       return SumPROPfemmes_0;
    }
     
    static float SommeCARREPropfemmes_0 (float carrePROP0[], float tailletableau)
    {
       float SumCARREPROPfemmes_0 = 0;
       int i;
       for (i = 0; i < tailletableau; i++)
       {
          SumCARREPROPfemmes_0 = SumCARREPROPfemmes_0 + carrePROP0[i];
       }
       return SumCARREPROPfemmes_0;
    }
     
    int main (void)
    {
       int i = 0, j = 0, k = 0, n = 0, o = 0;
       enum
       { NB_FEMMES2 = TIRAGE * ECHANTILLON };
       int hasard;
       int T1F[NB_FEMMES] = { 0 };
       int EchF2[NB_FEMMES2];
       double PROPfemmes_hasard2[CODES_FEMMES];
       int NBfemmes_0, PROPfemmes_0;
       float PROP0[50];
       float carrePROP0[50];
       float SumPROPfemmes_0 = 0;
       float SumCARREPROPfemmes_0 = 0;
       float tailletableau = 1000;
     
       srand (time (NULL));
     
    /* Creation de T1F */
     
       for (k = 0; k < 200; k++)
          T1F[k] = 0;
       for (k = 200; k < 500; k++)
          T1F[k] = 1;
       for (k = 500; k < 900; k++)
          T1F[k] = 2;
       for (k = 900; k < 1000; k++)
          T1F[k] = 3;
     
    /* Creation de 50 tirages aléatoires de 200 femmes dans T1F et enregistrement
       dans EchF2 */
     
       for (n = 0; n < TIRAGE * ECHANTILLON; n++)
       {
          for (j = 0; j < ECHANTILLON; j++)
          {
             hasard = (rand () % (NB_FEMMES));
             if (T1F[hasard] != 999)
                EchF2[n] = T1F[hasard];
             o++;
             T1F[hasard] = 999;
     
             if (EchF2[hasard] == PAS_ENFANT)
             NBfemmes_0++;
             PROPfemmes_0 = (NBfemmes_0 / 200);
             PROP0[i] = PROPfemmes_0;
             carrePROP0[i] = (PROPfemmes_0 * PROPfemmes_0);
          }
     
          for (k = 0; k < 200; k++)
             T1F[k] = 0;
          for (k = 200; k < 500; k++)
             T1F[k] = 1;
          for (k = 500; k < 900; k++)
             T1F[k] = 2;
          for (k = 900; k < 1000; k++)
             T1F[k] = 3;
       }
     
    /* ____________________________________________________________ */
     
     /*Affichage du tableau general du tirage au sort*/
       printf ("  \n");
       printf (" EchF2 : \n");
       affichagetab (NB_FEMMES2, EchF2);
       printf ("  \n");
       printf (" \n");
     
     
    /* Affichage du tableau des 50 proportions de femmes ayant 0 enfant et calcul
    de la moyenne et de la variance : */
     
       for (i = 0; i < 50; i++)
       {
          printf ("%f ", PROP0[i]);
       }
     
       printf (" \n");
       printf (" \n");
       SumPROPfemmes_0 = SommePropfemmes_0 (PROP0, tailletableau);
       printf
          ("La moyenne des proportions de femmes ayant 0 enfant est egale a : %f ",
           SumPROPfemmes_0 / 50);
       printf (" \n");
       printf (" \n");
       SumCARREPROPfemmes_0 = SommeCARREPropfemmes_0 (carrePROP0, tailletableau);
       printf
          ("La variance des proportions de femmes ayant 0 enfant est egale a : %f ",
           (SumCARREPROPfemmes_0 / 49) -
           ((SumPROPfemmes_0 / 50) * (SumPROPfemmes_0 / 50) * 50) / 49);
       printf (" \n");
     
       return 0;
    }

  2. #2
    Membre averti

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2006
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 242
    Points : 354
    Points
    354
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    enum
    {
       PAS_ENFANT = 0,
       UN_ENFANT = 1,
       DEUX_ENFANTS = 2,
       TROIS_ENFANTS = 3,
       CODES_FEMMES
    };
    Ca compile peut être, mais ne pas donner de nom à une énumération, cest pas très pratique si on veut s'en servir après. La syntaxe d'un enum est:

    enum nomdutype liste_variables;

    généralement suivi d'un typedef bien pratique...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    enum
       { NB_FEMMES2 = TIRAGE * ECHANTILLON };
    celui aussi est louche ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    static float SommePropfemmes_0 (float PROP0[], float tailletableau)
    {
       float SumPROPfemmes_0 = 0;
       int i;
       for (i = 0; i < tailletableau; i++)
       {
          SumPROPfemmes_0 = SumPROPfemmes_0 + PROP0[i];
       }
       return SumPROPfemmes_0;
    }
    une taille de tableau en float ? Plutot bizarre, en général on met un int.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    static float SommeCARREPropfemmes_0 (float carrePROP0[], float tailletableau)
    {
       float SumCARREPROPfemmes_0 = 0;
       int i;
       for (i = 0; i < tailletableau; i++)
       {
          SumCARREPROPfemmes_0 = SumCARREPROPfemmes_0 + carrePROP0[i];
       }
       return SumCARREPROPfemmes_0;
    }
    Cette fonction est identique à la précédente , si ce nest par les noms de variables ! Autant faire une seule fonction qui réalise la somme de tous les éléments d'un tableau.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    PROP0[i] = PROPfemmes_0;
    Il vient d'ou le "i" ?? Il est bien initialisé, mais jamais changé dans ta fonction.
    Est ce bien ce que tu veux ? Peut être c'est "j" à la place ?

Discussions similaires

  1. Débutant en Javascript : problème de tableau !
    Par bluheim dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 06/11/2005, 15h03
  2. [XHTML] problème de tableau
    Par virgul dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 28/04/2005, 07h18
  3. Problème de tableau
    Par tom06440 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 3
    Dernier message: 26/04/2005, 20h30
  4. Problème de tableau
    Par krfa1 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 08/02/2005, 11h09

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo