Tema: sumador
Ver Mensaje Individual
  #5 (permalink)  
Antiguo 07/01/2011, 13:59
Avatar de Aquaventus
Aquaventus
 
Fecha de Ingreso: junio-2010
Ubicación: Lima-Peru , En el alba de la naturaleza
Mensajes: 2.105
Antigüedad: 13 años, 10 meses
Puntos: 267
Respuesta: sumador

Eh Hombre ya tengo tu codigo, dije que tuvieras paciencia porque andaba ocupado jajaja y tambien despues de varios cabezasos contra el monitor salio perfecto aqui te lo dejo! espero lo estudies porque esta explicado y me costo trabajo . lo trabaje con un textbox, un boton y un label.

Código c#:
Ver original
  1. private void button1_Click(object sender, EventArgs e)
  2.         {
  3.             if (textBox1.Text.Trim().Length == 0)
  4.             {
  5.                 MessageBox.Show("Ingrese cadena");
  6.             }
  7.             else
  8.             {
  9.                 //Declaro las variables numero y suma, donde numero sera el numero
  10.                 //encontrado durante el recorrido, si el que le sigue es otro numero
  11.                 //se concatenará(formando otro numero) sino se asumira que es unico
  12.                 // se sumará con el proximo numero que encuentre.
  13.                 string numero = "";
  14.                 double suma = 0.00;
  15.                 double nn = 0.00;
  16.                 //Toda la cadena ingresada lo almaceno en una variable
  17.                 string s = textBox1.Text.Trim();
  18.                 //La variable creada anteriormente lo convertimos en un arreglo de
  19.                 //caracteres almacenandola en el char "a".
  20.                 char[] a = s.ToCharArray();
  21.                 //Aqui recorremos el arreglo creado.
  22.                 for (int i = 0; i <= s.Length - 1; i++)
  23.                 {
  24.                     //Si el char es un numero
  25.                     if (char.IsNumber(a[i]))
  26.                     {
  27.                         //Si el char siguiente excede el limite de la longitud
  28.                         //del arreglo
  29.                         if (i + 1 > s.Length - 1)
  30.                         {
  31.                             //Concatenamos el numero
  32.                             numero = numero + a[i].ToString();
  33.                             nn = Convert.ToDouble(numero.ToString());
  34.                             //y sumamos
  35.                             suma = suma + nn;
  36.                             numero = "";
  37.                         }
  38.                         //sino excede el limite entonces...
  39.                         else
  40.                         {
  41.                             //si el char siguiente no es numerico
  42.                             if (!char.IsNumber(a[i + 1]))
  43.                             {
  44.                                 //y es un punto
  45.                                 if (a[i + 1].ToString().Equals("."))
  46.                                 {
  47.                                     //y el que le sigue al punto es un numerico
  48.                                     if (char.IsDigit(a[i + 2]))
  49.                                     {
  50.                                         //entonces concatenamos
  51.                                         numero = numero + a[i].ToString();
  52.                                     }
  53.                                     //o no es un punto entonces no juntamos nada
  54.                                     //------
  55.                                 }
  56.                                 //sino es un punto entonces...
  57.                                 else
  58.                                 {
  59.                                     //concatenamos el numero
  60.                                     numero = numero + a[i].ToString();
  61.                                     //lo convertimos a double para sumarlo
  62.                                     nn = Convert.ToDouble(numero.ToString());
  63.                                     //lo sumamos con el numero anterior
  64.                                     suma = suma + nn;
  65.                                     //seteamos para que no se junte todos los numeros
  66.                                     numero = "";
  67.                                 }
  68.                             }
  69.                                 //si es numerico
  70.                             else
  71.                             {
  72.                                 //concatenamos el numero
  73.                                 numero = numero + a[i].ToString();
  74.                             }
  75.                         }
  76.                     }
  77.                     //Si el char no es numerico pero es un PUNTO(.)
  78.                     //entonces...
  79.                     if (a[i].ToString().Equals("."))
  80.                     {
  81.                         //verificamos si el anterior es un numero
  82.                         if (char.IsNumber(a[i - 1]))
  83.                         {
  84.                             //Ahora, tambien verificamos si el posterior es
  85.                             //un numero
  86.                             if (char.IsNumber(a[i + 1]))
  87.                             {              
  88.                                     //concatenamos el numero(2+5=25) o (23.+3=23.3)
  89.                                     numero = numero + a[i].ToString();
  90.                             }
  91.                         }
  92.                     }
  93.                 }
  94.                 //Una vez terminado el recorrido mostramos
  95.                 //la suma total pero antes la convertimos
  96.                 //en cadena para mostrarlo en un label
  97.                 label1.Text = suma.ToString(); ;
  98.             }
  99.         }
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net

Última edición por Aquaventus; 07/01/2011 a las 14:16