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 :

Tableau périodique des éléments multidimensionnel


Sujet :

C++

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Tableau périodique des éléments multidimensionnel
    Bonjour ,

    En expliquant pas a pas ce que je veux faire :

    -Ouvrir un fichier (apparemment un .csv)

    -Ce fichier contient le tableau périodique des éléments avec seulement leur isotope stable (de la forme: 1,1,Hydrogène)

    -Une fois le fichier ouvert, faire une boucle pour lire chacune des lignes et ainsi pouvoir additionner le numéro atomique et la masse de chaque atome. Donc 8,16,Oxygène + 6,12,Carbone = 14,28,Silicium qui est présent dans le fichier et dois impérativement y être.

    -Afficher le résultat.

    Le problème c'est qu'il y a plein de vides ..

    Je débute ^^

    Voici mon code :

    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
     
    #include <iostream>
     
    #include <string>
     
    #include <algorithm>
     
    #include <vector>
    #include <map>
    using namespace std;
    int main()
    {
     
    typedef map<unsigned,string> Isotopes;
     
    vector<Isotopes> element(160);
     
    element[1] = Isotopes{ {1,"Hydrogène"}, {2,"Deutérium"} };
     
    element[2] = Isotopes{ {3,"Hélium-3"}, {4,"Hélium-4"} };
     
    element[3] = Isotopes{ {6,"Lithium-6"}, {7,"Lithium"} };
     
    element[4][9] = "Béryllium";
    element[5][11]="Bore";
    element[6][12] = "Carbone";   //Remplissage de la troisième case
        element[7][14]="Azote";
    element[8][16]= "Oxygene";   //Remplissage de la quatrième case
        element[9][19]="Fluor";
        element[10][20]="Neon";
        element[11][23]="Sodium";
        element[12][24]="Magnesium";
        element[13][27]="Aluminium";
    element[14][28]="Silicium";
     element[15][31]="Phosphore";
          element[16][32]="Soufre";
        element[17][35]="Chlore";
       element[18][40]="Argon";
       element[19][39]="Potassium";
        element[20][40]="Calcium";
        element[21][45]="Scandium";
      element[22][48]="Titane";
         element[23][51]="Vanadium";
        element[24][52]="Chrome";
        element[25][55]="Manganese";
        element[26][56]="Fer";
        element[27][59]="Cobalt";
        element[28][58]="Nickel";
        element[29][63]="Cuivre";
        element[30][64]="Zinc";
        element[31][69]="Gallium";
        element[32][74]="Germanium";
        element[33][75]="Arsenic";
      element[34][80]="Selenium";
         element[35][79]="Brome";
        element[36][84]="Krypton";
        element[37][85]="Rubidium";
        element[38][88]="Strontium";
        element[39][89]="Yttrium";
        element[40][90]="Zirconium";
        element[41][93]="Niobium";
        element[42][98]="Molybdene";
        element[43][98]="Technetium";
        element[44][102]="Ruthenium";
             element[45][103]="Rhodium";
      element[46][106]="Palladium";
         element[47][107]="Argent";
        element[48][114]="Cadmium";
        element[49][115]="Indium";
        element[50][120]="Etain";
        element[51][121]="Antimoine";
        element[52][130]="Tellure";
        element[53][127]="Iode";
        element[54][129]="Xenon";
        element[55][133]="Cesium";
        element[56][138]="Baryum"; 
        element[57][139]="Lanthane";
        element[58][140]="Cerium";
        element[59][141]="Praseodyme";
        element[60][142]="Néodyme";
        element[61][146]="Promethium";
        element[62][152]="Samarium";
        element[63][153]="Europium";
        element[64][158]="Gadolinium";
        element[65][159]="Terbium";
        element[66][164]="Dysprosiom";
        element[67][165]="Holmium";
        element[68][166]="Erbium";
        element[69][169]="Thulium";
        element[70][174]="Ytterbium";
        element[71][175]="Lutenium";
        element[72][180]="Hafnium";
        element[74][184]="Tungstène";
        element[75][187]="Rhenium";
        element[76][192]="Osmium";
        element[77][193]="Iridium";
        element[79][197]="Or";
        element[73][181]="Tantale";
        element[78][195]="Platine";
        element[80][202]="Mercure";
        element[81][205]="Thallium";
        element[82][208]="Plomb";
        element[83][209]="Bismuth";
        element[84][210]="Polonium";
        element[86][222]="Radon";
        element[87][223]="Francium";
        element[88][226]="Radium";
        element[89][227]="Actinum";
     
        element[90][232]="Thorium";
        element[91][231]="Protactinium";
        element[92][238]="Uranium";
        element[93][237]="Neptunium";
        element[94][244]="Plutonium";
        int carbonenum=6;
        int carbonemass=12;
        int oxygene=8;
        int hydrogene=1;
        int lithium=3;
    // isotopes stables pour numAtom
    int i;
    int Transm;
    int Transm1;
     
    for(i=0; i<95;++i)
    {
     
     
        size_t numAtom = i;
     
    for (auto const& isot : element[numAtom])// parcours du map<>
    {
     
    cout<<isot.second<<" + "<<element[6][12]<<" = "<<element[i+6][isot.first+12]<<"\n"<<isot.second<<" + "<<element[8][16]<<" = "<<element[i+8][isot.first+16]<<"\n"<<isot.second<<" + "<<element[1][1]<<" = "<<element[i+1][isot.first+1]<<"\n"<<isot.second<<" + "<<element[3][7]<<" = "<<element[i+3][isot.first+7]<<"\t\n";
    endl(cout);
    }
    }
    }
    Merci d'avance

    Finch23

  2. #2
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2014
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2014
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Voici un autre code :

    Le Header:

    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
    #ifndef TRANSM_H_INCLUDED
    #define TRANSM_H_INCLUDED
     
    struct Isotope
    {
        unsigned p_{};
        unsigned n_{};
        std::string name_{};
    };
    class Mendeleiev
    {
       std::vector<Isotope> table_;
     
    public:
     
     
       Mendeleiev(std::vector<Isotope> const & source)
          :table_{source}{}  // Loaded from file, database...
     
       std::vector<Isotope const *> isotopes(unsigned protons) const{
           std::vector<Isotope const *> result{};
           for(auto const & i : table_){
               // laissé en exercice ...
           }
           return result;
       }
     
       Isotope const * find(unsigned number,unsigned mass) const{
           for(auto const & i : table_){
              if(number == i.p_ && mass == i.p_+i.n_){
                 return &i;
              }
           }
           return nullptr;
       }
     
     
    };
    #endif // TRANSM_H_INCLUDED
    Le Main :

    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
     
    #include <string>
     
    #include <algorithm>
    #include <map>
    #include <iterator>
    #include <iostream>
    #include <fstream>
    #include <sstream>
    #include <vector>
    #include <string>
    #include "Transm.h"
    using namespace std;
    int main ()
    {
       vector<Isotope> isotopes {{1,1,"Hydrogène"},{1,2,"Deutérium"}};
    Mendeleiev mendeleiev{isotopes};
     
     
     
    //Affiche le résultat
     
        constexpr int MaxAtomicNum = 3;
     
    for(int i=1; i<= MaxAtomicNum;i++)
    {
       for (auto isot : mendeleiev.isotopes(i))
       {
          cout << "Nom : "<< isot->name_ << ", Proton : " << isot->p_ << ", Masse Atomique : " << (isot->p_ + isot->n_) << endl;
       }
    }
    }
    Mais rien ne s'affiche et je ne sais pas si je dois mettre des elements du header dans le main...

  3. #3
    Expert éminent
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Décembre 2015
    Messages
    1 565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 1 565
    Points : 7 642
    Points
    7 642
    Par défaut
    Citation Envoyé par Finch23 Voir le message
    Mais rien ne s'affiche et je ne sais pas si je dois mettre des elements du header dans le main...
    Les éléments du header sont biens là où ils sont.
    Rien ne s'affiche, forcément, la fonction isotopes() laisse le result vide. Il faudrait remplir la ligne 23, pour ajouter à result les adresses des isotopes i pour lesquels le nombre de protons vaut proton.

Discussions similaires

  1. [Python 2.X] Projet de tableau périodique des éléments numérique (Python 2.7)
    Par louis54h dans le forum Contribuez
    Réponses: 0
    Dernier message: 11/04/2016, 16h14
  2. [Android] [Gratuit] Tableau Périodique des Eléments
    Par sylsau dans le forum Mon application mobile
    Réponses: 0
    Dernier message: 27/01/2014, 23h14
  3. [dom je pense]accéder à des éléments d un tableau sans id
    Par luta dans le forum Général JavaScript
    Réponses: 10
    Dernier message: 07/02/2006, 15h31
  4. Supprimé des éléments vide d'un tableau
    Par shinux2004 dans le forum Langage
    Réponses: 4
    Dernier message: 04/07/2005, 19h40
  5. Soustraire des éléments de tableau entre eux
    Par syl2095 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/01/2005, 15h29

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