Autor
|
Tema: Poner varios números y que los separe (Leído 4,130 veces)
|
SlayerBur
Desconectado
Mensajes: 92
|
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
Mensajes: 9.885
|
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í: Dim value As Long = (998742567850 + 1) Dim arr As Integer() = Array.ConvertAll(Of Char, Integer)(value.ToString().ToCharArray(), Function(s As String) CInt(s)) Debug. WriteLine(String. Join(", ", arr ))
Resultado de ejecución: 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 pm por Eleкtro »
|
En línea
|
|
|
|
Serapis
|
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.htmlLo 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 pm por NEBIRE »
|
En línea
|
|
|
|
SlayerBur
Desconectado
Mensajes: 92
|
Dim value As Long = (998742567850 + 1) Dim arr As Integer() = Array.ConvertAll(Of Char, Integer)(value.ToString().ToCharArray(), Function(s As String) CInt(s)) 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
Mensajes: 9.885
|
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. . . arr(0) = numero1 arr(1) = numero2 arr(2) = numero3 etc... Saludos!
|
|
« Última modificación: 27 Mayo 2017, 21:00 pm por Eleкtro »
|
En línea
|
|
|
|
Serapis
|
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... Private Function Splitter(ByVal X As Integer) As Char() Return x.ToString().ToArray() End Function
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 pm por NEBIRE »
|
En línea
|
|
|
|
SlayerBur
Desconectado
Mensajes: 92
|
Muchas gracias a ambos Logré solucionar ese problema, y poder continuar con mi "programa"
|
|
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Varios modos de poner contraseñas
« 1 2 »
.NET (C#, VB.NET, ASP)
|
Meta
|
11
|
8,232
|
26 Noviembre 2009, 00:35 am
por Skeletron
|
|
|
Reemplazar varios caracteres por numeros
.NET (C#, VB.NET, ASP)
|
Crazy.sx
|
2
|
2,920
|
22 Abril 2013, 06:44 am
por Crazy.sx
|
|
|
Como imprime este programa varios números sin bucles ni recursión
Programación C/C++
|
geeke
|
3
|
2,438
|
15 Septiembre 2015, 23:21 pm
por geeke
|
|
|
Publicados varios números que empleaban ilegalmente SMS Premium tras ser ...
Noticias
|
wolfbcn
|
0
|
1,044
|
13 Enero 2016, 14:14 pm
por wolfbcn
|
|
|
[MASM] ¿Cómo hacer que un DWORD con un texto se separe en varios objetos?
ASM
|
TheFerydra
|
2
|
2,826
|
21 Mayo 2018, 02:50 am
por TheFerydra
|
|