Autor Tema: [CCS] Obtener el numero de cifras validas de un dato y concatenar (lenguajec)  (Leído 2373 veces)

berto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Ejemplo :

dato=0009...resultado debe ser...1
dato=0025...2
dato=0109...3
dato=4830...4

También me gustaría hacer lo siguiente, no se si  tendrá  un nombre matemático yo lo desconozco.

dato1=25; dato2=109....resultado debe ser....25109 

Lo que mas me gustaría es un ejemplo de codigo o saber si hay alguna funcion en C que desempeñe esto, mas su correspondiente #libreria pero agradeceria tambiénel nombre matemático de ambas para saber que tengo que buscar.
« Última modificación: 29 de Diciembre 2015, 23:18 por Ogramar »

Ogramar

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2660
    • Ver Perfil
Re:[CCS] Obtener el numero de cifras validas de un dato
« Respuesta #1 en: 29 de Diciembre 2015, 23:17 »
Buenas berto un valor como 0009 no es un valor numérico válido, por tanto tienes que tratarlo como una cadena. Para determinar el número válido dentro de la cadena tendrías que recorrer el array (arreglo) de caracteres que es la cadena comprobando dónde aparece el primer carácter distinto de cero. Los siguientes caracteres de la cadena se corresponderían con el valor numérico. El número de dígitos válidos sería el número de caracteres a partir del primer carácter distinto de cero.

Las bases para hacer todo esto las tienes explicadas en el curso http://aprenderaprogramar.com/index.php?option=com_content&view=category&id=82&Itemid=210

En el segundo caso a partir de 25 y 109 obtener 25109 tienes que pensar si quieres hacerlo trabajando en modo numérico o en modo cadenas de texto. Si quieres hacerlo de forma numérica tendrás que usar matemáticas, si quieres hacerlo como cadenas de caracteres la operación se llama "concatenación".

Salu2

berto

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 4
    • Ver Perfil
Gracias por el aporte pero pasar a cadenas, tratar con arrays es lo ultimo que quería yo hasta ahora no he utilizado char en ccs. Tampoco me convence algo que he visto a base de meter bucles for para concatenar enteros (por el tiempo de ejecución)

Creo que esto seria mas rápido

if (dato1>99){ multiplica=1000; }//Esto es lo mas probable que se cumpla
else { if(dato1>9) { multiplica=100; }
else { multiplica=10; } }

resultado = dato1+(dato2*multiplica);//dto2 concatenacion dato1
« Última modificación: 03 de Enero 2016, 13:34 por Ogramar »

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".