elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


Tema destacado: (TUTORIAL) Aprende a emular Sentinel Dongle By Yapis


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Poner varios números y que los separe
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Poner varios números y que los separe  (Leído 2,001 veces)
SlayerBur

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Poner varios números y que los separe
« en: 26 Mayo 2017, 23:25 »

Hola.

Sucede que quiero hacer un programa que una persona coloque varios numeros, y que el programa los separe, y comience a contarlos.

El programa ya cuenta los numeros ingresados del 0 al 9, y los agrega a una variable a cada uno. Pero la persona tiene que ingresar numero por numero. Quiero saber como se haría para que la persona ingrese por ejemplo: 998742567850
Y lo que haga sea separar los números, y sume +1 a su correspondiente variable.
No se si me explico correctamente..


En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #1 en: 27 Mayo 2017, 13:07 »

No se si me explico correctamente..

Pues yo creo que no he entendido nada.

Tienes este número: 998742567850 (+1) y supuestamente quieres "desglosar" los dígitos para convertir el valor a un array, pues bien, puedes hacerlo así:

Código
  1. Dim value As Long = (998742567850 + 1)
  2.  
  3. Dim arr As Integer() =
  4.    Array.ConvertAll(Of Char, Integer)(value.ToString().ToCharArray(), Function(s As String) CInt(s))
  5.  
  6. Debug.WriteLine(String.Join(", ", arr))

Resultado de ejecución:
Cita de: Visual Studio Debug Output Console
9, 9, 8, 7, 4, 2, 5, 6, 7, 8, 5, 1

PD: También puedes hacerlo con LINQ.

Saludos


« Última modificación: 27 Mayo 2017, 13:09 por Eleкtro » En línea


NEBIRE


Desconectado Desconectado

Mensajes: 2.328


Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #2 en: 27 Mayo 2017, 15:00 »

Esta pregunta, (al menos la primera parte), es idéntica a la que ya se respondió en:
http://foro.elhacker.net/programacion_cc/ayuda_algoritmo_para_calcular_el_numero_de_veces_que_una_cifra_se_repite-t470039.0.html

Lo que me fuerza a sospechar que:
- O el tema es una tarea del cole, que varios alumnos tienen que resolver...
- O el usuario emanuek, es también SlayerBur (¿para qué un registro duplicado?). Supongo que los moderadores podrán verificar si la IP de estos usuarios coincide, y por ende deducir que se trata del mismo usuario...

Básicamente la mayor parte de problemas, es de doble dirección, es decir: si avanzas x, giras a la derecha y, subes z, avanzas n, bajas t, giras a derecha s, subes k.... ir desde el final al comienzo, es hacer el camino inverso...

Lo que quiere decir, que si el problema anterior se resolvió tomando la unidad, y dividiendo entre 10, dentro de un bucle....esto se resuelve igualmente siguiendo el bucle... y si antes dividíamos entre 10, ahora multiplicamos por 10 y si antes extraíamos las unidades, ahora la sumamos...

No se debe resolver problemas a base de preguntar, porque entonces jamás en la vida termina uno de preguntar cada cosa, cada día. Hay que pensar un mínimo, y no rendirse a los dos minutos, porque a fin de cuentas este problema son matemáticas de 9-10 años... y programarlo, es básicamente "darle nombre" a cada operación.

p.d.: aunque releyendoel mensaje de nuevo, al final no queda claro, si quieres separar separar las cifras sueltas, o unirlas tras recibirlas sueltas.
...Si es separarlas y llevar la cuenta de cada una, ya se explicó en el enlace proporcionado... y siguen siendo matemáticas de 10 años... y un simple toque de programación.
« Última modificación: 27 Mayo 2017, 15:05 por NEBIRE » En línea

SlayerBur

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #3 en: 27 Mayo 2017, 20:39 »


Código
  1. Dim value As Long = (998742567850 + 1)
  2.  
  3. Dim arr As Integer() =
  4.    Array.ConvertAll(Of Char, Integer)(value.ToString().ToCharArray(), Function(s As String) CInt(s))
  5.  
  6. Debug.WriteLine(String.Join(", ", arr))

Resultado de ejecución:
PD: También puedes hacerlo con LINQ.

Saludos

Gracias, eso separa los números, pero necesito una vez separado esos números contabilizarlos, lo que tendría que asignar cada número en una variable, ¿No es así?

---


NEBIRE: El enlace que me has mostrado, es como contabilizar los números, y eso lo tengo echo. Esa parte se me es fácil. Lo que estoy buscando mas bien es separar los números, y luego esos números poder utilizarlos en otra cosa.

En cuanto a lo de pensar un mínimo, llevo varios días buscando la forma, y pensando en como conseguirlo. Tengo hasta el SeudoCodigo echo, pero no logro encontrar la forma de separar los números y poder utilizarlos.

Gracias :)
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.709



Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #4 en: 27 Mayo 2017, 20:58 »

eso separa los números, pero necesito una vez separado esos números contabilizarlos, lo que tendría que asignar cada número en una variable, ¿No es así?

Con el código que te he mostrado ya tienes cada número en una "variable" distinta: los índices del Array. . .

Código:
arr(0) = numero1
arr(1) = numero2
arr(2) = numero3
etc...

Saludos!
« Última modificación: 27 Mayo 2017, 21:00 por Eleкtro » En línea


NEBIRE


Desconectado Desconectado

Mensajes: 2.328


Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #5 en: 27 Mayo 2017, 22:12 »

NEBIRE: El enlace que me has mostrado, es como contabilizar los números, y eso lo tengo echo. Esa parte se me es fácil.
Sigo sin entenderte... a mi me dices esto...
Pero luego a electro, le respondes esto otro:
Gracias, eso (el código de Electro) separa los números, pero necesito una vez separado esos números contabilizarlos, lo que tendría que asignar cada número en una variable, ¿No es así?
Así que no hay quien entienda a veces que rayos pedís...

De todos hay un código mucho más fácil para convertir un número en un array, de los valores que lo componen...
Código
  1. Private Function Splitter(ByVal X As Integer) As Char()
  2.    Return x.ToString().ToArray()
  3. End Function
  4.  


Y en la imagen la llamada, y un despliegue del resultado:


En cuanto a lo de pensar un mínimo, llevo varios días buscando la forma, y pensando en como conseguirlo. Tengo hasta el SeudoCodigo echo, pero no logro encontrar la forma de separar los números y poder utilizarlos.
Varios días, ayyyyy... habría que ver el pseudocódigo que has hecho.

De todos modos el código del enlace que te daba, también separa los números (tanto si luego los cuentas como si no). De hecho, la conversión a array (ue hace VB, tras convertirlo a string, es más lento que esto: tomar las unidades del número y dividir entre 10, tomar las unidades, y dividir entre diez,  tomar las unidades del número y dividir entre 10, tomar las unidades del número y dividir entre 10... hasta que el valor a dividir sea 0... indicativo de que ya no hay más cifras...
« Última modificación: 27 Mayo 2017, 22:19 por NEBIRE » En línea

SlayerBur

Desconectado Desconectado

Mensajes: 43



Ver Perfil
Re: Poner varios números y que los separe
« Respuesta #6 en: 28 Mayo 2017, 20:45 »

Muchas gracias a ambos :)

Logré solucionar ese problema, y poder continuar con mi "programa" :D
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines