Foros del Web » Programación para mayores de 30 ;) » .NET »

sumador

Estas en el tema de sumador en el foro de .NET en Foros del Web. dada una secuencia de caracteres acabada en #, obtener por pantalla los numeros que aparecen en ella y su suma. Ejemplo: si introducimos el texto ...
  #1 (permalink)  
Antiguo 07/01/2011, 10:28
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 3 meses
Puntos: 0
Pregunta sumador

dada una secuencia de caracteres acabada en #, obtener por pantalla los numeros que aparecen en ella y su suma. Ejemplo: si introducimos el texto "esto es un tex100to de prueba y .74 además 13.82 finaliza con el simbolo#" la salida obtenida será: 100 74 13.82 suma: 187.82
  #2 (permalink)  
Antiguo 07/01/2011, 10:47
Avatar de 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

solo deseas que se sumen todos los numericos, verdad?. Saludos!.
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #3 (permalink)  
Antiguo 07/01/2011, 10:50
 
Fecha de Ingreso: enero-2011
Mensajes: 3
Antigüedad: 13 años, 3 meses
Puntos: 0
Respuesta: sumador

si, los numeros que aparecen entremezclados en una serie de caracteres, pero no se me ocurre la manera de guardarlos para posteriormente sumarlos. tengo que entregar esta tarea y no se ni como empezar TT
  #4 (permalink)  
Antiguo 07/01/2011, 10:54
Avatar de 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

tienes que convertir tu cadena en un arreglo y recorrerlo. Esperame un rato y te mando la solucion explicada por este medio, ando ocupado en el trabajo, espero sepas comprender. Saludos! .
__________________
Internet es tener todo el conocimiento global a tu disposición.
Desarrollo de Software - Ejemplos .Net
  #5 (permalink)  
Antiguo 07/01/2011, 13:59
Avatar de 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

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:47.