• Lunes 29 de Abril de 2024, 21:02

Autor Tema:  Separar termino de un string y hacer distributiva  (Leído 1198 veces)

Yakuza

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Separar termino de un string y hacer distributiva
« en: Sábado 7 de Mayo de 2011, 05:47 »
0
Necesito hacer 2 procedimientos, uno hara una distributiva con un numero por lo q esta dentro de un parentesis, eso del parentesis y el numero iran en el parametro, pero para poder hacer esa distributiva seria mejor antes hacer pasar el string de los numeros en el parentesis por otro procedimiento para q separe cada numero y los devuelva en un array. Con eso se haria mas facil la distributiva pienso.
Estoy trabajando con strings asique habra q convertir.

La idea es hacerlo algo asi:

Código: C#
  1.  
  2. public double Distributiva(double mult, string sParentesis)
  3. {
  4.     string[] terminos = sTerminos(sParentesis);
  5.     double resultado = 0;
  6.  
  7.   foreach (string term in terminos)
  8.    {
  9.       resultado += double.Parse(term) * mult;
  10.    }
  11.  
  12.     return resultado;
  13. }
  14.  
  15. public string[] sTerminos(string sParentesis)
  16. {
  17.  
  18. // cri cri, cri cri xD
  19.  
  20. }
  21.  
  22.  

Recien me inspire y ya hice el primero CREO y lo hice aca no se si esta bien.

Espero q alguien me complete el otro y ya queda

Ejemplo:  mult = 2  y sParentesis = "6+5+4-2+3-7+8"

Haria: (2*+6) + (2*+5) + ....

Nadie me ayuda a completar ese codigo?
Quedaria completar la funcion sTerminos() y si pueden ver como hacer en la distributiva, en el bucle foreach ese si term es igual a un string q sea con x por ejemplo "4x", ahi da error asique habria que hacerle un if por ahi y talvez q vaya a otro procedimiento para hallar 3 por 4x por ejemplo.

Espero que uno este muy aburrido para ayudarme por favor

alexg88

  • Miembro activo
  • **
  • Mensajes: 37
    • Ver Perfil
Re: Separar termino de un string y hacer distributiva
« Respuesta #1 en: Sábado 7 de Mayo de 2011, 15:20 »
0
Esta podría ser una solución, aunque se puede mejorar, pero funciona.

Código: C#
  1.  
  2. public static string[] sTerminos(string sParentesis)
  3.         {
  4.  
  5.             List<string> cadenas = new List<string>();
  6.             string cadenaaux;
  7.             int indiceant = 0, indicepos = 0, total = 0;
  8.             total = sParentesis.Length;
  9.  
  10.             if (sParentesis.Length == 0)
  11.                 return null;
  12.             indicepos = sParentesis.IndexOfAny(new Char[] { '+', '-' }, 1);
  13.             if (indicepos != -1)
  14.             {
  15.                 cadenas.Add(sParentesis.Substring(0, indicepos));
  16.                 indiceant = indicepos;
  17.  
  18.                 while (total > indiceant)
  19.                 {
  20.                     indicepos = sParentesis.IndexOfAny(new Char[] { '+', '-' }, indiceant + 1);
  21.                     if (indicepos != -1)
  22.                     {
  23.                         cadenas.Add(sParentesis.Substring(indiceant, indicepos - indiceant));
  24.                         indiceant = indicepos;
  25.                     }
  26.                     else
  27.                     {
  28.                         cadenas.Add(sParentesis.Substring(indiceant, total - indiceant));
  29.                         indiceant = total;
  30.                     }
  31.                 }
  32.             }
  33.             else cadenas.Add(sParentesis);
  34.            
  35.            
  36.             return cadenas.ToArray();          
  37.            
  38.         }
  39.  
  40.  

Yakuza

  • Nuevo Miembro
  • *
  • Mensajes: 5
    • Ver Perfil
Re: Separar termino de un string y hacer distributiva
« Respuesta #2 en: Sábado 7 de Mayo de 2011, 19:01 »
0
Gracias loco! sos un genio!, quedaria lo de multiplicar cuando hay x en la parte del procedimiento Distributiva pero veo si puedo hacerlo yo, pero si te aburres.. ya sabes je, gracias!