//Llamar a la funcion
main ()
{
	float a,b;
   cout<<"Operacion Suma"<<endl;
	cout<<"Dar Num_uno"<<endl;
	cin>> a;
	cout<<"Dar Num_dos"<<endl;
	cin>> b;
	cout<<"El resultado es "<<Suma (a,b)<<endl;
   cout<<" "<<endl;

   float c,d;
   cout<<"Operacion Resta"<<endl;
	cout<<"Dar Num_uno"<<endl;
	cin>> c;
	cout<<"Dar Num_dos"<<endl;
	cin>> d;
	cout<<"El resultado es "<<Resta (c,d)<<endl;
   cout<<" "<<endl;

   float g,h;
   cout<<"Operacion Producto"<<endl;
	cout<<"Dar Num_uno"<<endl;
	cin>> g;
	cout<<"Dar Num_dos"<<endl;
	cin>> h;
	cout<<"El resultado es "<<Producto (g,h)<<endl;
   cout<<" "<<endl;

   float i,j;
   cout<<"Operacion Division"<<endl;
	cout<<"Dar Num_uno"<<endl;
	cin>> i;
	cout<<"Dar Num_dos"<<endl;
	cin>> j;
	cout<<"El resultado es "<<Division (i,j)<<endl;
   cout<<" "<<endl;

	getch ();
}
// PROGRAMA PRINCIPAL
int main(){
	bind_textdomain_codeset ("calculadora", "UTF-8");
	setlocale(LC_ALL,"");
	bindtextdomain("calculadora", "idioma");
	textdomain("calculadora");	
	
	double a, b, resultado;
	long resexp;
	int Opcion;
	char buffer[9];

    while(1){
	printf(_("\n\t\tCALCULATOR\n\n"));
	printf(_("\t 1.- Sum\n"));
	printf(_("\t 2.- Subtraction\n"));
	printf(_("\t 3.- Multiplication\n"));
	printf(_("\t 4.- Division\n"));
	printf(_("\t 5.- Square Root\n"));
	printf(_("\t 6.- Pow\n"));
	printf(_("\t 7.- Natural Logarithm\n"));
	printf(_("\t 8.- Sine\n"));
	printf(_("\t 9.- Cosine\n"));
	printf(_("\t 10.-Tangent\n"));
	printf(_("\t 11.-arc sine\n"));
	printf(_("\t 12.-Arc Cosine\n"));
	printf(_("\t 13.-Arc Tangent\n"));
	printf(_("\t 14.-Ceil\n"));
	printf(_("\t 15.-Arc Tangent (two parameters\n"));
    printf(_("\t 16.-Hyperbolic Cosine\n"));
    printf(_("\t 17.-Hyperbolic Sine\n"));
    printf(_("\t 18.-Hyperbolic Tangent\n"));
    printf(_("\t 19.-Exponential\n"));
    printf(_("\t 20.-Frexp\n"));
    printf(_("\t 21.-Idexp\n"));
    printf(_("\t 22.-Logarithm base ten\n"));
    printf(_("\t 23.-Modf\n"));
    printf(_("\t 24.-Absolute value\n"));
    printf(_("\t 25.-Floor\n"));
    printf(_("\t 26.-Fmod\n"));
	printf(_("\t\t Choose your option: "));
    

    scanf("%s", buffer);

    if( validar_es_entero(buffer, &Opcion) != true )
        Opcion = 999;

    resultado = 0.0;
	switch (Opcion)
	{
	   case 1:
		   resultado = Suma (a, b);
	   break;

  	   case 2:
	   	resultado = Resta (a, b);
	   break;


	   case 3:
	   	resultado = Multiplicacion (a, b);
	   break;


	   case 4:
	   	resultado = Division (a, b);
       break;

       case 5:
	   	resultado = Raiz_cuadrada (a);
 	   break;
      
      case 6:
	   	resexp = Potencia (a, b);
		printf(_("\n The result of the chosen option: "));
		printf(" %ld ",resexp);
 	   break;
      
      case 7:
	   	resultado = Logaritmo (a);
 	   break;
 	   
 	   case 8:
	   	resultado = Seno (a);
 	   break;
 	   
 	   case 9:
	   	resultado = Coseno (a);
 	   break;
 	   
 	   case 10:
	   	resultado = Tangente (a);
 	   break;
 	   
 	   case 11:
	   	resultado = Arcseno (a);
 	   break;
 	   
 	   case 12:
	   	resultado = Arccoseno(a);
 	   break;

           case 13:
	   	resultado = Arctangente(a);
 	   break;
 	   
 	   case 14:
	   	resultado = Ceil(a);
 	   break;
	   case 15:
	   	resultado = ArcoTangente2(a,b);
 	   break;
           case 16:
	   	resultado = CosenoHiperbolico(a);
 	   break;

           case 17:
	   	resultado = SenoHiperbolico(a);
 	   break;
           case 18:
	   	resultado = TangenteHiperbolico(a);
 	   break;
           case 19:
	   	resultado = Exponencial(a);
 	   break;
 	   
 	   case 20:
	   	resultado = Frexp(a,b);
 	   break;
 	   
 	   case 21:
	   	resultado = Idexp(a,b);
 	   break;
 	   
 	   case 22:
	   	resultado = LogB10(a);
 	   break;
 	   
 	   case 23:
	   	resultado = Modf(a,b,resultado);
 	   break;
 	   
 	   case 24:
	   	resultado = ValorAbsoluto(a);
 	   break;
 	   
 	   case 25:
	   	resultado = Fmod(a,b, resultado);
 	   break;
 	  
	   case 26:
	   	resultado = Floor(a);
 	   break; 
 	   
       default:
          Opcion = 999;
         printf(_("Invalid option , try again only digits."));
	   }

       if(Opcion<999)
            printf(_("\n The result of the chosen option: "));
		printf("%lf \n",resultado);		
  
  }

    
  

}