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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Como puedo saber los números que faltan dentro del rango ?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Como puedo saber los números que faltan dentro del rango ?  (Leído 14,501 veces)
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Como puedo saber los números que faltan dentro del rango ?
« en: 18 Enero 2014, 14:06 pm »

Como puedo saber los números que faltan dentro del rango ? tengo esta función que recibe los resultados de tres array donde hago unas sumas: y me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas. es posible ?


Código
  1. Rango 00 al 99
  2.  
  3. ReadOnly MAX As Integer = 99
  4.  
  5. Dim Rand As New Random
  6.        ' Concateno, y...
  7.        ' Elimino duplicados, y...
  8.        ' Selecciono los números inferiores a MAX, y...
  9.        ' Convierto los números mayores a MAX a números aleatorios entre 0 y MAX.
  10.        Dim Result1 As IEnumerable(Of Integer) =
  11.            (Result1.Concat(Result3).Concat(Result3).
  12.        Distinct.
  13.        Select(Function(Value As Integer)
  14.                   Return If(Value < MAX, Value, Rand.Next(0, MAX))
  15.               End Function))
  16.  
  17.        ' Result = 1, RANDOM, 2, 3, 4, 5, RANDOM, 6, 7, 8, 9, 10, 99
  18.  
  19.        ListBox11.Items.AddRange(Result1.Cast(Of Object).ToArray)


Luis

Edito= no se porque no me sale bien el poner el codigo entre el insert codigo ?


« Última modificación: 18 Enero 2014, 15:05 pm por Eleкtro » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #1 en: 18 Enero 2014, 20:22 pm »

?????? ni mi amigo Elektro jejjeje


En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #2 en: 18 Enero 2014, 20:28 pm »

Yo no entiendo muy bien la pregunta "saber los números que faltan dentro del rango".

saludos
En línea



.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #3 en: 19 Enero 2014, 02:58 am »

Yo no entiendo muy bien la pregunta "saber los números que faltan dentro del rango".

saludos

Se referirá a los numeros que no esten entre 0 y 99 !!!CREO!!!
Código
  1. ReadOnly MAX As Integer = 99
  2. Select(Function(Value As Integer)
  3.   Return If(Value < MAX, Value, Rand.Next(0, MAX))
  4. End Function))

Hombre pues asi a bote pronto o hace un if con Value > MAX o en el if añades un else para que cualquier otro resultado que no sea Value < MAX. Iba a dejar code pero de los retos se aprende  ;D ;D

Saludos.
« Última modificación: 19 Enero 2014, 03:00 am por .:Weeds:. » En línea


Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #4 en: 19 Enero 2014, 04:15 am »

Se referirá a los numeros que no esten entre 0 y 99 !!!CREO!!!

Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: 'me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: 'los números que NO están dentro del rango'.

Si tu comprendes lo que significa "un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere.

Saludos
« Última modificación: 19 Enero 2014, 04:20 am por Eleкtro » En línea



luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #5 en: 19 Enero 2014, 09:44 am »

Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: 'me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: 'los números que NO están dentro del rango'.

Si tu comprendes lo que significa "un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere.

Saludos


Hola

No vi anoche el tema jej

Si Elektro si la función ( pondré corto los números)  me da"  2, 4 ,6,8, 9 " y el rango es de 0 al 10  entonces me faltaría el " 1,3, 5, 7 "  ademas de mostrar "  2, 4 ,6,8, 9 "  también quiero mostrar " 1,3, 5, 7 " pero en otro listbox


Luis



En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #6 en: 19 Enero 2014, 09:55 am »

mi solución seria organizar el array y recorrerlo buscando donde se salta :P
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.878



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #7 en: 19 Enero 2014, 17:01 pm »

Si Elektro si la función ( pondré corto los números)  me da"  2, 4 ,6,8, 9 " y el rango es de 0 al 10  entonces me faltaría el " 1,3, 5, 7 "  ademas de mostrar "  2, 4 ,6,8, 9 "  también quiero mostrar " 1,3, 5, 7 " pero en otro listbox

Eso es algo facil de hacer ya sea usando un FOR o usando LINQ, pero como no encontré nada en Google para mostrarte diréctamente un ejemplo parecido al problema que describiste, yo mismo hice una función de uso genérico, aquí la tienes:

Código
  1.  
  2.    ' Get Numbers Not In Range.
  3.    ' ( By Elektro )
  4.    '
  5.    ' Usage Examples:
  6.    '
  7.    ' MsgBox(String.Join(", ", GetNumbersNotInRange({1, 3, 5, 7, 9}, 0, 10).ToArray)) ' Result: 0, 2, 4, 6, 8, 10
  8.    '
  9.    ''' <summary>
  10.    ''' Given a numeric collection, gets all the numbers which are not in a specified range.
  11.    ''' </summary>
  12.    ''' <param name="NumbersInRange">Indicates the numbers collection which are in range.</param>
  13.    ''' <param name="MinRange">Indicates the minimum range.</param>
  14.    ''' <param name="MaxRange">Indicates the maximum range.</param>
  15.    ''' <returns>System.Collections.Generic.IEnumerable(Of System.Int32).</returns>
  16.    Private Function GetNumbersNotInRange(ByVal NumbersInRange As IEnumerable(Of Integer),
  17.                                          ByVal MinRange As Integer,
  18.                                          ByVal MaxRange As Integer) As IEnumerable(Of Integer)
  19.  
  20.        Return From Number As Integer
  21.               In Enumerable.Range(MinRange, MaxRange + 1)
  22.               Where Not NumbersInRange.Contains(Number)
  23.  
  24.    End Function

Ejemplo de uso:

Código
  1.    Private Sub Test(sender As Object, e As EventArgs) Handles MyBase.Shown
  2.  
  3.        Dim NumbersInRange As Integer() = {2, 4, 6, 8, 9}
  4.  
  5.        Dim NumbersNotInRange As Integer() = GetNumbersNotInRange(NumbersInRange, 0, 10).ToArray
  6.  
  7.        MsgBox(String.Join(", ", NumbersNotInRange)) ' Result: 0, 1, 3, 5, 7, 10
  8.  
  9.    End Sub
Saludos
« Última modificación: 19 Enero 2014, 17:12 pm por Eleкtro » En línea



.:Weeds:.

Desconectado Desconectado

Mensajes: 122



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #8 en: 19 Enero 2014, 22:34 pm »

Aquí no es necesario el sarcasmo, primero habla del rango, pero luego según dice: 'me gustaria mostrar en otro listbox los números que " NO " están dentro de estas sumas', como ves no dice: 'los números que NO están dentro del rango'.

Si tu comprendes lo que significa "un número que no está dentro de una suma", me parece bien, aunque digo yo que si sumas 1+1 todo el resto de números existentes estarán fuera de la suma, así que a dudas poco detalladas prefiero preguntar para estar seguro de lo que quiere.

Saludos

No era sarcasmo, puse creo (Lo añadi editando el mensaje) por que no estaba seguro  :¬¬ despues de leer el mensaje 3 o 4 veces mas.

Saludos.
En línea


luis456


Desconectado Desconectado

Mensajes: 551



Ver Perfil
Re: Como puedo saber los números que faltan dentro del rango ?
« Respuesta #9 en: 21 Enero 2014, 16:54 pm »

Nada dos dias y nada no logro hacerlo funcionar  :rolleyes:


Código
  1. Public Class Form1
  2.  
  3.    Dim XMax As Short = 99
  4.    Dim Xmin As Short = 0
  5.    Dim x As Integer = 0
  6.    Dim Número As Double
  7.    Private TextBoxes As TextBox() = {Nothing}
  8.    Private Result1 As Int32(), Result2 As Int32(), Result3 As Int32()
  9.    Private _textBox As Object
  10.    Private _getNumbersNotInRange As Object
  11.  
  12.    Private Property ListBox1Count As Integer
  13.    ReadOnly MAX As Integer = 99
  14.    Private Property Calcular As Object
  15.  
  16.    Private Property TextBox(ByVal TextBoxCount As Short) As Object
  17.        Get
  18.            Return _textBox
  19.        End Get
  20.        Set(ByVal value As Object)
  21.            _textBox = value
  22.        End Set
  23.    End Property
  24.  
  25.  
  26.    ReadOnly Property Num1 As Int32
  27.        Get
  28.            Return CInt(TextBox1.Text)
  29.        End Get
  30.    End Property
  31.  
  32.    ReadOnly Property Num2 As Int32
  33.        Get
  34.            Return CInt(TextBox2.Text)
  35.        End Get
  36.    End Property
  37.    ReadOnly Property Num3 As Int32
  38.        Get
  39.            Return CInt(TextBox3.Text)
  40.        End Get
  41.    End Property
  42.  
  43.    Private Property GetNumbersNotInRange(ByVal Result11 As IEnumerable(Of Integer), ByVal Xmin As Integer, ByVal XMax As Integer) As Object
  44.        Get
  45.            Return _getNumbersNotInRange
  46.        End Get
  47.        Set(ByVal value As Object)
  48.            _getNumbersNotInRange = value
  49.        End Set
  50.    End Property
  51.  
  52.  
  53.    Private Sub Sumar(ByVal sender As Object, ByVal e As EventArgs) Handles Button1.Click
  54.  
  55.  
  56.  
  57.        Result1 = {Num1 + 10, Num1 + 20, Num1 + 30} _
  58.                  .Distinct().ToArray ' Elimino duplicados
  59.  
  60.        Result2 = {Num2 + 10, Num2 + 20, Num2 + 30} _
  61.                  .Distinct().ToArray ' Elimino duplicados
  62.  
  63.        Result3 = {Num3 + 10, Num3 + 20, Num3 + 30} _
  64.                  .Distinct().ToArray ' Elimino duplicados
  65.  
  66.  
  67.        ' primero concatenas y eliminas duplicados en el primer array:
  68.        Dim Result11 As IEnumerable(Of Integer) =
  69.              (Result1.Concat(Result3).Concat(Result3).
  70.              Distinct).ToArray
  71.  
  72.        ' luego instancias un segundo array que obtiene los números que no están dentro del rango 'Xmin'-'Xmax' del primer array:
  73.        Dim NumbersNotInRange As Integer() =
  74.             GetNumbersNotInRange(Result11, Xmin, XMax).ToArray
  75.  
  76.        ' Y por último reemplazas los números que no están en el rango, en el primer array:
  77.       Result11 =Result11.Select(Function(Value As Integer)
  78.                              ReadOnly If(Value < MAX, Value, Rand.Next(0, MAX))
  79.                   End Function))
  80.  
  81.  
  82.        ' y los añades a los listbox:
  83.        ListBox1.Items.AddRange(Result11.Cast(Of Object).ToArray)
  84.        ListBox2.Items.AddRange(NumbersNotInRange.Cast(Of Object).ToArray)
  85.  
  86.  
  87.    End Sub
  88.  
  89.  
  90. End Class

Luis
« Última modificación: 21 Enero 2014, 22:28 pm por Eleкtro » En línea

Que tu sabiduria no sea motivo de Humillacion para los demas
Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

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