Periodiq/include/periodiq.h

84 lines
2.1 KiB
C

#ifndef _PERIODIQ_H
#define _PERIODIQ_H
unsigned int key;
struct Element
{
unsigned char nom[14]; // le nom
unsigned char symbol[4]; // le symbole
unsigned char valence; // le nombre de valence
unsigned int groupe : 5; //le groupe //x
unsigned int periode : 3; // la période // y
float electro_neg; // electro negativité
unsigned int masse_mol; // la masse molaire // que l'on divise par 1000
unsigned char config_electro[7];// la config électronique
unsigned int famille : 4;
unsigned int etat : 4;
};
/*# define element_value(GROUP, PERIODE, VALENCE, MASSEMOL) \
(((GROUP) << 29) | ((PERIODE) << 24) | (((VALENCE) + 1) << 19) | (MASSEMOL))
# define group(E) ((E).value >> 29)
# define periode(E) (((E).value >> 24) & 0x1F)
# define massemol(E) ((E).value & 0x7FFFF)
# define valence(E) ((((E).value >> 19) & 0x1F) - 1)
struct Element {
// string information
const uint8_t *nom;
const uint8_t symbol[4];
// values
uint32_t value; // group //x, periode //y, valence, massemol
uint8_t elec[7];
uint16_t elecneg;
uint8_t above, below;
};*/
/* struct Element
{
unsigned char nom[14]; // le nom
unsigned char symbol[4]; // le symbole
unsigned int masse_mol; // la masse molaire // que l'on divise par 1000
unsigned char config_electro[7];// la config électronique
unsigned int groupe : 5; //le groupe //x
unsigned int periode : 3; // la période // y
unsigned char valence; // le nombre de valence
float electro_neg; // electro negativité
unsigned char dessus; // element au dessus de celui actuel
unsigned char dessous; // element en dessous de celui actuel
};*/
//1 : 1
//11 : 3
//111 : 7
//1111 : 15
//11111 : 31
//111111 : 63
//1111111 : 127
//11111111 : 255
struct Detail
{
short annee ;
unsigned int famille : 4;
unsigned int etat : 4;
};
int detailsElement(int); //chang //a
int tableauElement(int); //chang
int tableauEleMini(int); //chang
int find(int); // int : pour le return
void choix_famille(int);
void Mini(char* c, int n);
void calcul_mole(void);
#endif