-florian66-

calcul de masse

Mar 28th, 2015
353
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.92 KB | None | 0 0
  1. void calcul_mole()
  2. {
  3. char *str = NULL;
  4. char *p=str;
  5. char characts[20]={'\0'};
  6. short i;
  7. float result=0, masse;
  8. const char buffer[50]={0};
  9.  
  10. Bdisp_AllClr_DDVRAM();
  11.  
  12. PrintMini(1,1,"Entrez votre formule : ",0);
  13.  
  14. EI_init();
  15.  
  16. EI_manage_config(EI_SET_COLUMN, 1);
  17. EI_manage_config(EI_SET_ROW, 3);
  18. EI_manage_config(EI_SET_START_MODE, EI_NORMAL);
  19.  
  20. str=EI_input_string(13,(const char*)"0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz");
  21.                
  22.  
  23. while(*str) // on va jusqu'a la fin de la chaine
  24.         {
  25.         for(i=0;i<20;++i)
  26.             characts[i]='\0';
  27.        
  28.             i=0;
  29.            
  30.         while(!isdigit(*str)) // on prends seulement les lettres
  31.                 {
  32.                 characts[i]=*str; // on copie la lettre dans characts
  33.                 ++i;
  34.                 str++;
  35.                 }
  36.        
  37.            characts[0]=toupper(characts[0]); // on met le 1er caractère en majuscule
  38.                
  39.             for (i = 1 ; characts[i] ; i++)
  40.                 {
  41.                 characts[i] = tolower(characts[i]); // on met certains caractères en minuscule pour la recherche
  42.                 }
  43.  
  44.         for(i=0;i<118;i++) // on se déplace dans les éléments de la structure
  45.                 {
  46.  
  47.                 if(!strcmp(characts,elements[i].symbol))
  48.                         {
  49.                         masse=elements[i].masse_mol; // on a notre masse molaire
  50.                         break;
  51.                         }
  52.                 }
  53.        
  54.                                
  55.         for(i=0;i<4;++i)
  56.             characts[i]='\0';
  57.        
  58.         i=0;
  59.        
  60.        while(isdigit(*str)) // on prends seulement les chiffres
  61.                 {
  62.                 characts[i]=*str; // on copie la lettre dans characts      
  63.                 ++i;
  64.                 str++;
  65.                 }
  66.                                
  67.         result += atoi(characts)*masse;
  68.         }
  69.        
  70. free(p);
  71. sprintf(buffer,"masse molaire %.3f g/mol",result);
  72. PrintMini(1,40,buffer,0);
  73. GetKey(&key);
  74.  
  75. return;
  76. }
Advertisement
Add Comment
Please, Sign In to add comment