示例#1
0
 public Eulers()
 {
     Argumento   = ArgDefecto;
     Potencia    = new PotenciaEntera(Simbolo, Argumento);
     Contenido   = Simbolo + Potencia.Simbolo + Argumento;
     Foco        = SimboloExtendido + ArgDefecto + Cl;
     Coeficiente = "1";
     Operar();
 }
示例#2
0
 protected override void Operar()
 {
     Potencia = new PotenciaEntera(Foco);
     if (double.TryParse(Argumento, out number))
     {
         Result = new PotenciaEntera(Valor, Argumento).Result;
     }
     else
     {
         Result = new ProductoEntero(Coeficiente, Potencia.Result).Result;
     }
 }
示例#3
0
        private static void TEST_Consola_Potencia()
        {
            string Entrada = "{{{{x}^{2x}}^{2}}^{3x}}";

            Entrada = "sen<e^{x+2}>";
            Entrada = "2^{sen<e^{x+2}>}";
            Console.WriteLine($"ENTRADA = {Entrada}");
            PotenciaEntera POTENCIA = new PotenciaEntera(Entrada);

            Console.WriteLine(POTENCIA.Nombre);
            Console.WriteLine(POTENCIA.Result);
            Console.WriteLine("----------------------------------");
            Console.ReadKey();
        }
示例#4
0
        public Derivadas(Monomios MONO, Variables Var)
        {
            if (!MONO.Result.Contains(Var.Nombre))
            {
                Result = "0";
            }
            else
            {
                List <string> DerivadasIndividuales = new List <string>();

                foreach (var item in MONO.Elementos)
                {
                    if (!item.Result.Contains(Var.Nombre))
                    {
                        DerivadasIndividuales.Add(item.Result);
                    }
                    else
                    {
                        //PULIR BIEN SUMAS PARA QUE RETORNE LO NECESARIO POR ESTA CLASE
                        string NewExponente   = new SumaEntera(item.Exponente, "-1").Result;
                        string NewCoeficiente = item.Exponente;
                        string NewPotencia    = new PotenciaEntera(item.Base, NewExponente).Result;

                        DerivadaInterna = new ProductoEntero(NewCoeficiente, NewPotencia).Result;
                        DerivadasIndividuales.Add(DerivadaInterna);
                    }
                }

                Result = "1";
                foreach (var item in DerivadasIndividuales)
                {
                    Result = new ProductoEntero(Result, item).Result;
                }

                //Result = OperarSignos(Result);
            }
        }
示例#5
0
        //FIN MANEJO DE DATOS

        public string Procesar(string Expresion, string NombreVariable, string Operacion)
        {
            //IDENTIFICAR OPERACIONES A REALIZAR E IR ALMACENANDO PASOS (CUANDO AL INGRESAR POR UNA FUNCION RETORNE ALGO DIFERENTE AL INCICIAL
            Variables Var = new Variables(NombreVariable);

            Conexion.Open();
            Funcion_id   = DAL.SiguienteFuncion();
            Resultado_id = DAL.SiguienteResultado();
            Conexion.Close();

            LPasos    = new List <Pasos>();
            Entrada   = Expresion;
            Polinomio = new Polinomios(Entrada);
            CrearFuncion(Funcion_id, Polinomio.Nombre, Expresion);

            RegistrarPaso(Entrada, Polinomio.Result, Polinomio.Nombre);

            if (Operacion.Contains("Der"))
            {
                Derivada = new Derivadas(Polinomio, Var);

                RegistrarPaso(Polinomio.Result, Derivada.Result, Derivada.Nombre);

                Salida = Derivada.Result;
                CrearResultado(Resultado_id, Derivada.Nombre, Derivada.Result, Estado);
                //SE DEFINE EL RESULTADO
            }
            else if (Operacion.Contains("Simp"))
            {
                string Temp = "";
                foreach (var mono in Polinomio.Elementos)
                {
                    Op = new ProductoEntero(mono.Result);
                    if (!Op.Result.Equals(mono.Result))
                    {
                        CrearResultado(Resultado_id, Op.Nombre, Op.Result, Estado);

                        RegistrarPaso(mono.Result, Op.Result, Op.Nombre);
                    }
                    Temp = Op.Result;

                    Op = new PotenciaEntera(Op.Result);
                    if (!Op.Equals(Temp))
                    {
                        CrearResultado(Resultado_id, Op.Nombre, Op.Result, Estado);

                        RegistrarPaso(mono.Result, Op.Result, Op.Nombre);
                    }
                    Temp = Op.Result;

                    Op = new CocienteEntero(Op.Result);
                    if (!Op.Equals(Temp))
                    {
                        CrearResultado(Resultado_id, Op.Nombre, Op.Result, Estado);

                        RegistrarPaso(mono.Result, Op.Result, Op.Nombre);
                    }
                    Temp = "";
                }
                //SE DEFINE EL RESULTADO
            }

            //LISTOS ELEMENTOS NECESARIOS PARA GUARDAR REGISTROS
            return(Resultado.Contenido);
        }
示例#6
0
        protected override void ObtenerElementos(string Expresion)
        {
            Elementos.Clear();

            //TENER EN CUENTA CUANDO NIVELES ES VACIO, ESTA SENTENCIA IF PARECE SOLUCIONARLO
            if (!Niveles.Contains("0"))
            {
                Elementos.Add(new PotenciaEntera(Contenido));
                ObtenerPartes();
                Result = Contenido;
            }
            else
            {
                char   FirstNivel = Orden.ElementAt(Orden.Length - 1);
                string Foco;
                int    Inicio, i, j, k;
                i = 0; Inicio = 0;
                bool Seguir;

                foreach (var nivel in Niveles)
                {
                    ++i;
                    Seguir = true;
                    if (nivel.Equals(FirstNivel))
                    {
                        j = 0; k = 0;
                        while (Seguir)
                        {
                            if (Contenido.ElementAt(k).Equals(Simbolo))
                            {
                                ++j;
                            }

                            if (j == i)
                            {
                                Seguir = false;
                            }
                            else
                            {
                                ++k;
                            }
                        }

                        Foco   = Contenido.Substring(Inicio, (k - Inicio));
                        Inicio = k + 1;

                        Potencia = new PotenciaEntera(Foco);
                        Elementos.Add(Potencia);
                    }
                }

                //TOMA EL ULTIMO ELEMENTO
                Foco     = Contenido.Substring(Inicio);
                Potencia = new PotenciaEntera(Foco);
                Elementos.Add(Potencia);
                //FIN DE TOMA

                ObtenerPartes();
                //PULIR PRODUCTO PARA RESPONDER CORRECTAMENTE A ESTE PROBLEMA
                Operacion = new ProductoEntero(Coeficiente, ParteLiteral);
                Result    = Operacion.Result;
            }
        }