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 Monomios(Contenido)); Result = Contenido; } else { Elementos.Clear(); 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; Monomio = new Monomios(Foco); Elementos.Add(Monomio); } } //TOMA EL ULTIMO ELEMENTO Foco = Contenido.Substring(Inicio); Monomio = new Monomios(Foco); Elementos.Add(Monomio); //FIN DE TOMA ObtenerResultado(); } }
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; } }