Logo elrincondelc.com
curso de programación en c
Foros de programación en C
Inicio :: Código fuente

Valoración
1

Calculos quimicos

codigo enviada por: brians444
aqui les dejo un prog que ingresando las variables q disponemos calcula concentraciones y otros en una solucion..
espero que a algun quimico le pueda servir..
escucho cualkier comentario
#include <iostream.h>
#include <stdlib.h>

struct datos
	{
   double molaridad;
   double normalidad;
   double grsoluto;
   double pesosolu;
   double pesovol;
   double pesopeso;
   double densidad;
   double pesomolec;
   double numcargas;
   }*a;

//funciones prototipo

void menu(int *);
void inicializar(struct datos *);
void ingresar(struct datos *, int );
void calcular(struct datos *);
void resultados(struct datos *);

//funcion principal

int main()
	{
   a = new datos;
   inicializar(a);
   int opc;
   do{
   menu(&opc);
 	if(opc!=9&&opc!=10)
   {
   ingresar(a, opc);
   }
   else if(opc==9)
   {
   calcular(a);
   resultados(a);
   }
   }while(opc!=10);
   delete a;
   return 0;
   }


//funciones

void menu(int *o)
	{
   system("cls");
   cout<<"Ingrese un numero segun los datos que dispone :"<<endl;
   cout<<"1 - Molaridad"<<endl;cout<<"2 - Normalidad"<<endl;
   cout<<"3 - Peso molecular (gr/mol)"<<endl;cout<<"4 - Densidad (gr/ml)"<<endl;
   cout<<"5 - Gramos de soluto"<<endl;cout<<"6 - Gramos de solucion"<<endl;
   cout<<"7 - Peso/Volumen de solucion (ml)"<<endl;cout<<"8 - Numero de cargas, protones u oxidrilos"<<endl;
   cout<<"9 - Resultados"<<endl;cout<<"10 - Salir"<<endl;
   cin>>*o;
   if(*o!=9||*o!=10)

   system("cls");
   }

void inicializar(struct datos *s)
	{
   s->molaridad=NULL;
   s->normalidad=NULL;
   s->pesovol=NULL;
   s->pesopeso=NULL;
   s->grsoluto=NULL;
   s->pesosolu=NULL;
   s->densidad=NULL;
   s->pesomolec=NULL;
   s->numcargas=NULL;
   }

void ingresar(struct datos *b, int op)
	{
   switch(op)
   	{
      case 1:
      cout<<"Ingrese la molaridad de la solucion :"<<endl;
      cin>>b->molaridad;
      break;
      case 2:
      cout<<"Ingrese la normalidad de la solucion :"<<endl;
      cin>>b->normalidad;
      break;
      case 3:
      cout<<"Ingrese el peso molecular del compuesto :"<<endl;
      cin>>b->pesomolec;
      break;
      case 4:
      cout<<"Ingrese la densidad de la solucion :"<<endl;
      cin>>b->densidad;
      break;
      case 5:
      cout<<"Ingrese los gramos de soluto en la solucion :"<<endl;
      cin>>b->grsoluto;
      break;
      case 6:
      cout<<"Ingrese el peso de la solucion :"<<endl;
      cin>>b->pesosolu;
      break;
      case 7:
      cout<<"Ingrese el peso volumen de la solucion :"<<endl;
      cin>>b->pesovol;
      break;
      case 8:
      cout<<"Ingrese el numero de cargas, protones u oxidrilos del compuesto"<<endl;
      cin>>b->numcargas;
      break;
      }
   }

void calcular(struct datos *c)
	{
    if(!c->molaridad)
    	{
      if(c->normalidad!=NULL&&c->numcargas!=NULL)
      c->molaridad= c->normalidad/c->numcargas;
      else if(c->grsoluto!=NULL&&c->pesomolec!=NULL)
      c->molaridad= c->grsoluto/c->pesomolec;
      }
    if(!c->normalidad)
    	{
      if(c->molaridad!=NULL&&c->numcargas!=NULL)
      c->normalidad=c->molaridad*c->numcargas;
      }
    if(!c->grsoluto)
    	{
      if(c->pesosolu!=NULL)
      c->grsoluto= c->pesosolu*10;
      else if(c->molaridad!=NULL&&c->pesomolec!=NULL)
      c->grsoluto=c->molaridad*c->pesomolec;
      }
    if(!c->pesosolu)
    	{
      if(c->densidad!=NULL)
      c->pesosolu=c->densidad*1000;
      }
    if(!c->pesovol)
    	{
      if(c->grsoluto!=NULL)
      c->pesovol= c->grsoluto/10;
      }
    if(!c->pesopeso)
    	{
      if(c->grsoluto!=NULL&&c->pesosolu!=NULL)
      c->pesopeso= (c->grsoluto/c->pesosolu) *100;
      }
    if(!c->densidad)
    	{
      if(c->pesosolu!=NULL)
      c->densidad=c->pesosolu*1000;
      }
    if(!c->numcargas)
    	{
      if(c->normalidad!=NULL&&c->molaridad!=NULL)
      c->numcargas= c->normalidad/c->molaridad;
      }
    }

void resultados(struct datos *d)
	{
   system("cls");
   cout<<"Los datos calculables son los siguientes:"<<endl;
   if(d->molaridad)
   {
   cout<<"Molaridad = "<<d->molaridad<<endl;
   }
   if(d->normalidad)
   {
   cout<<"Normalidad = "<<d->normalidad<<endl;
   }
   if(d->grsoluto)
   {
   cout<<"Gramos de soluto = "<<d->grsoluto<<endl;
   }
   if(d->pesosolu)
   {
   cout<<"Peso de la solucion = "<<d->pesosolu<<endl;
   }
   if(d->pesovol)
   {
   cout<<"Concentracion P/V = "<<d->pesovol<<endl;
   }
   if(d->pesopeso)
   {
   cout<<"Concentracion P/P = "<<d->pesopeso<<endl;
   }
   if(d->densidad)
   {
   cout<<"Densidad(gr/ml) = "<<d->densidad<<endl;
   }
   if(d->numcargas)
   {
   cout<<"Numero de cargas, oxidrilos o protones = "<<d->numcargas<<endl;
   }
   system("pause");
   }

Para enviar comentarios debes estar registrado.

(c) ElRincondelC.com

Un proyecto de Urlan Heat : proyectos de Internet y soporte para el comercio electrónico.