detailElement
This commit is contained in:
parent
99036f74f1
commit
cee4fc97a4
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
254
src/periodiq.c
254
src/periodiq.c
|
@ -200,6 +200,7 @@ char *etat[9]={
|
|||
|
||||
extern Font modern;
|
||||
|
||||
#define floor(x) ((int)(x))
|
||||
|
||||
int main()
|
||||
{
|
||||
|
@ -212,10 +213,10 @@ void Mini(char* chaine, int n ) // fonc defini le numero de la fonction
|
|||
{
|
||||
|
||||
short j;
|
||||
|
||||
drect(n*21+2, 56, n*21+20, 63, color_black);
|
||||
|
||||
dtext(n*21+strlen(chaine), 58, chaine);
|
||||
|
||||
drect(n*21+2, 56, n*21+20, 63, color_invert);
|
||||
|
||||
//ML_display_vram();
|
||||
}
|
||||
|
||||
|
@ -297,7 +298,7 @@ text_configure(&modern, color_black);
|
|||
case KEY_UP : y--; break;
|
||||
|
||||
// case KEY_F4 : chang=tableauEleMini(chang); break;
|
||||
//case KEY_F2 : chang=find(chang); break;
|
||||
case KEY_F2 : chang=find(chang); break;
|
||||
// case KEY_F3 : calcul_mole(); break;
|
||||
|
||||
case KEY_F6 : case KEY_EXE : chang=detailsElement(3); break;
|
||||
|
@ -450,7 +451,7 @@ char i=0, y;
|
|||
int detailsElement(int a)
|
||||
{
|
||||
unsigned char buffer[50];
|
||||
int descente=0;
|
||||
unsigned char page = 0;
|
||||
unsigned char i, j = 0;
|
||||
|
||||
|
||||
|
@ -458,77 +459,96 @@ int detailsElement(int a)
|
|||
|
||||
while (1)
|
||||
{
|
||||
|
||||
dclear();
|
||||
|
||||
dprint(20, descente+4, "%s", elements[a].symbol);
|
||||
dprint(20, 2, "%s", elements[a].symbol);
|
||||
dprint(40, 2, "%s", elements[a].nom);
|
||||
dprint((10-a/25), 4, "%d", a+1);
|
||||
dline(0, 10, 128, 10, color_black);
|
||||
|
||||
dprint(40, descente+4, "%s", elements[a].nom);
|
||||
dline(127, 22*page + 12, 127, 22*page + 42, color_black);
|
||||
|
||||
dprint((10-a/25), descente+6, "%d", a+1);
|
||||
|
||||
dprint(1, descente+14, "masse molaire %d.%03d g/mol", elements[a].masse_mol/1000, elements[a].masse_mol % 1000);
|
||||
|
||||
dprint(1, descente + 31, "propriete de base");
|
||||
|
||||
sprintf(buffer, "groupe : %d ", elements[a].groupe);
|
||||
|
||||
if(elements[a].famille==6 || elements[a].famille==7)
|
||||
switch(page)
|
||||
{
|
||||
sprintf(buffer, "groupe inconnu");
|
||||
}
|
||||
case 0 :
|
||||
{
|
||||
dprint(1, 12, "masse molaire %d.%03d g/mol", elements[a].masse_mol/1000, elements[a].masse_mol % 1000);
|
||||
|
||||
dtext(1, descente+41, buffer);
|
||||
dprint(20, 22, "propriete de base");
|
||||
|
||||
sprintf(buffer, "periode : %d ", elements[a].periode);
|
||||
dtext(1, descente+51, buffer);
|
||||
sprintf(buffer, "groupe : %d ", elements[a].groupe);
|
||||
|
||||
j=0;
|
||||
if(elements[a].famille==6 || elements[a].famille==7)
|
||||
{
|
||||
sprintf(buffer, "groupe inconnu");
|
||||
}
|
||||
|
||||
for(i=0; i < 7; i++)
|
||||
{
|
||||
buffer[j++] = elements[a].config_electro[i] + '0';
|
||||
buffer[j++] = '-';
|
||||
dtext(1, 32, buffer);
|
||||
|
||||
}
|
||||
j--;
|
||||
buffer[j]=0;
|
||||
sprintf(buffer, "periode : %d ", elements[a].periode);
|
||||
dtext(1, 42, buffer);
|
||||
|
||||
sprintf(buffer, "couch electro %s", buffer);
|
||||
dtext(1, descente+70, buffer);
|
||||
j=0;
|
||||
|
||||
sprintf(buffer, "famille %s", family[elements[a].famille]);
|
||||
dtext(1, descente+80, buffer);
|
||||
/*
|
||||
sprintf(buffer, "decouvert en %d", ajout[a].annee);
|
||||
dtext(1, descente+90, buffer);
|
||||
for(i = 0; i < strlen(elements[a].config_electro); i++)
|
||||
{
|
||||
if(elements[a].config_electro[i]>=10)
|
||||
{
|
||||
buffer[j++] = (int)elements[a].config_electro[i]/10 + '0';
|
||||
buffer[j++] = elements[a].config_electro[i]%10 + '0';
|
||||
}
|
||||
else
|
||||
{
|
||||
buffer[j++] = elements[a].config_electro[i] + '0';
|
||||
}
|
||||
|
||||
sprintf(buffer, "etat a 293.15 K : %s", etat[ajout[a].etat]);
|
||||
dtext(1, descente+100, buffer);
|
||||
buffer[j++] = '-';
|
||||
}
|
||||
|
||||
dtext(20, descente+120, "reactivite :"); //
|
||||
j--;
|
||||
|
||||
if (elements[a].electro_neg==0)
|
||||
{
|
||||
dtext(1, descente+130, "electro neg inconnue");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buffer, "electro neg : %f ", elements[a].electro_neg);
|
||||
dtext(1, descente+130, buffer);
|
||||
}
|
||||
buffer[j]=0;
|
||||
|
||||
if (elements[a].valence>=0)
|
||||
{
|
||||
sprintf(buffer, "valence : %d ", elements[a].valence);
|
||||
dtext(1, descente+140, buffer);
|
||||
}
|
||||
else
|
||||
{
|
||||
dtext(1, descente+140, "valence inconnue");
|
||||
}
|
||||
sprintf(buffer, "couch electro %s", buffer);
|
||||
dtext(1, 52, buffer);
|
||||
|
||||
Mini("ret", 5);*/
|
||||
break;
|
||||
}
|
||||
|
||||
case 1 :
|
||||
{
|
||||
dprint(1, 12, "famille %s", family[elements[a].famille]);
|
||||
|
||||
dprint(1, 22, "etat a 293.15 K : %s", etat[elements[a].etat]);
|
||||
|
||||
dtext(20, 32, "reactivite :");
|
||||
|
||||
if (elements[a].electro_neg == -1)
|
||||
{
|
||||
sprintf(buffer, "electro neg inconnue");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buffer, "electro neg : %d.%02d ", elements[a].electro_neg/100, elements[a].electro_neg%100);
|
||||
}
|
||||
|
||||
dtext(1, 42, buffer);
|
||||
|
||||
if (elements[a].valence == -1)
|
||||
{
|
||||
sprintf(buffer, "valence inconnue ");
|
||||
}
|
||||
else
|
||||
{
|
||||
sprintf(buffer, "valence : %d", elements[a].valence);
|
||||
}
|
||||
dtext(1, 52, buffer);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Mini("ret", 5);
|
||||
|
||||
dupdate();
|
||||
|
||||
|
@ -536,83 +556,109 @@ int detailsElement(int a)
|
|||
|
||||
switch (key)
|
||||
{
|
||||
case KEY_LEFT : a-=1, descente=0; break;
|
||||
case KEY_RIGHT : a+=1, descente=0; break;
|
||||
case KEY_DOWN : descente-=4; break;
|
||||
case KEY_UP : descente+=4; break;
|
||||
case KEY_LEFT : a-=1; break;
|
||||
case KEY_RIGHT : a+=1; break;
|
||||
case KEY_DOWN : page = (page <= 1 ? 1 : page + 1); break;
|
||||
case KEY_UP : page = (page >=0 ? 0 : page - 1); break;
|
||||
case KEY_F6 : case KEY_EXE : case KEY_EXIT : return a;
|
||||
}
|
||||
|
||||
a=(a<0 ? 117 : a>117 ? 0 : a);
|
||||
descente=(descente>0 ? 0 : descente<-85 ? -85 : descente); // on fixe les limites de la page
|
||||
}
|
||||
}
|
||||
|
||||
unsigned char* input(unsigned char* ask, unsigned char size, unsigned char* char_allowed)
|
||||
{
|
||||
unsigned char buffer[50];
|
||||
unsigned char j,i;
|
||||
|
||||
j=0;
|
||||
|
||||
while(1)
|
||||
{
|
||||
dclear();
|
||||
|
||||
dtext(1, 1, ask);
|
||||
dtext(1, 20, buffer);
|
||||
|
||||
dupdate();
|
||||
key=getkey();
|
||||
|
||||
for(i = 0; i < strlen(char_allowed); i++)
|
||||
{
|
||||
if(char_allowed[i]==key_char(key) && j < size)
|
||||
{
|
||||
buffer[j++] = key_char(key);
|
||||
buffer[j]=0;
|
||||
}
|
||||
}
|
||||
|
||||
if(key == KEY_DEL)
|
||||
{
|
||||
j--;
|
||||
buffer[j]=0;
|
||||
}
|
||||
|
||||
if(key == KEY_EXE || key == KEY_EXIT)
|
||||
{
|
||||
return buffer;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
int find(chang)
|
||||
{/*
|
||||
{
|
||||
|
||||
char *numero=NULL;
|
||||
|
||||
char i=0, j;
|
||||
char i=0, j=0;
|
||||
|
||||
const char buffer[50];
|
||||
unsigned char buffer[50];
|
||||
|
||||
Bdisp_AllClr_DDVRAM();
|
||||
dclear();
|
||||
dtext(10, 1, "Vous cherchez :");
|
||||
dtext(10, 15, "1. numero de l'element");
|
||||
dtext(10, 25, "2. masse molaire");
|
||||
dtext(10, 35, "3. Symbole de l'element");
|
||||
dtext(10, 45, "4. Nom de l'element");
|
||||
dupdate();
|
||||
|
||||
while (1)
|
||||
{
|
||||
|
||||
EI_init();
|
||||
|
||||
EI_manage_config(EI_SET_COLUMN, 1);
|
||||
EI_manage_config(EI_SET_ROW, 3);
|
||||
EI_manage_config(EI_SET_START_MODE, EI_NORMAL);
|
||||
|
||||
GetKey(&key);
|
||||
key=getkey();
|
||||
|
||||
switch(key)
|
||||
{
|
||||
case 72 :
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
Bdisp_AllClr_DDVRAM();
|
||||
dtext(1, 1, "Vous cherchez l'element n :");
|
||||
case KEY_1 :
|
||||
{
|
||||
numero=input("Element num :", 3, "0123456789");
|
||||
|
||||
numero=EI_input_string(3, (const char*)"0123456789");
|
||||
// ça coupe ici
|
||||
if (atoi(numero)>0 && atoi(numero)<119) // ça arrête le curseur
|
||||
{
|
||||
return atoi(numero)-1;
|
||||
}
|
||||
}
|
||||
if (atoi(numero)>0 && atoi(numero)<119)
|
||||
{
|
||||
return atoi(numero)-1;
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 62 :
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
Bdisp_AllClr_DDVRAM();
|
||||
dtext(1, 1, "Vous cherchez une masse");
|
||||
dtext(1, 7, "molaire de :");
|
||||
|
||||
numero=EI_input_string(3, (const char*)"0123456789");
|
||||
case KEY_2 :
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
numero=input("Masse molaire de :", 3, "0123456789");
|
||||
|
||||
for (i=0;i<118;i++)
|
||||
{
|
||||
if (atoi(numero)==floor(elements[i].masse_mol+0.5))
|
||||
if (atoi(numero)==floor(elements[i].masse_mol/1000+0.5))
|
||||
{
|
||||
return i;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
case 52 :
|
||||
/*
|
||||
case KEY_3 :
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
|
@ -638,7 +684,7 @@ while (1)
|
|||
}
|
||||
}
|
||||
|
||||
case 73 :
|
||||
case KEY_4 :
|
||||
{
|
||||
while(1)
|
||||
{
|
||||
|
@ -662,12 +708,12 @@ while (1)
|
|||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
case 47 : return chang;
|
||||
case KEY_EXIT : return chang;
|
||||
|
||||
}
|
||||
}*/
|
||||
}
|
||||
}
|
||||
|
||||
void calcul_mole()
|
||||
|
|
Loading…
Reference in New Issue