AJUDA COM NÚMEROS RANDOM REPETIDOS

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM NÚMEROS RANDOM REPETIDOS

C#

 Compartilhe  Compartilhe  Compartilhe
#478712 - 27/12/2017 23:16:02

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Última edição em 27/12/2017 23:17:41 por RDPISA

olá estou com dificuldade para fazer listViews não aceitar números repetidos gerado por Gerador Random segue o código
a cada 1 segundo gera um número e add na listViews

  private void timer1_Tick(object sender, EventArgs e)
        {
            Random gerador = new Random();
for (int m = 0; m < 1; m++)
                {  
                    int valor = gerador.Next(0, 100);
                  
                
                       listView2.Items.Add(valor.ToString());
                        SoundPlayer simpleSound = new SoundPlayer(@"C:\BancoDados\bol.wav");
                        simpleSound.Play();
}
}


Rogério De Pinto

Resposta escolhida #478713 - 27/12/2017 23:52:36

JABA
CABO FRIO
Cadast. em:Agosto/2005


Crie uma lista de inteiros para armazenar os números sorteados. Na hora do sorteio, verifique se esse número está nessa lista. Se não estiver, é só jogar no listView.

_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478714 - 27/12/2017 23:56:09

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Citação:
:
Crie uma lista de inteiros para armazenar os números sorteados. Na hora do sorteio, verifique se esse número está nessa lista. Se não estiver, é só jogar no listView.

Poderia explicar com código de como criar lista de inteiros
é que não entendi direito.

Rogério De Pinto

#478726 - 28/12/2017 01:34:18

JABA
CABO FRIO
Cadast. em:Agosto/2005


Cara, com certeza deve existir um algorítimo melhor, testa aí e vê se isso aqui resolve pra ti.

dotnetfiddle.net/QLix0s

using System;
using System.Collections.Generic;
                    
public class Program
{
    public static void Main()
    {
        List<int> lista = new List<int>();
        Random gerador = new Random();
        
        while (lista.Count < 100)
        {
            int valor = gerador.Next(0, 100);
            
            if (existe(valor, lista))
                Console.WriteLine("O Numero " + valor + " já existe na lista");
            else
            {
                lista.Add(valor);
                Console.WriteLine(valor);
            }    
        }
    }

    public static bool existe(int valor, List<int> lista)
    {
        for(int i=0; i < lista.Count; i++)
        {
            if (valor == lista[i]) return true;
        }
        return false;        
    }
}


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478727 - 28/12/2017 01:51:25

JABA
CABO FRIO
Cadast. em:Agosto/2005


Uma outra forma mais rápida e mais elegante seria assim:

dotnetfiddle.net/FRYPD8

using System;
using System.Collections.Generic;
                    
public class Program
{
    public static void Main()
    {
        
        List<int> lista = new List<int>();
        
        for(int i=0; i <= 100; i++)
        {
            lista.Add(i);    
        }
                    
        Random gerador = new Random();        
        while (lista.Count > 0)
        {
            int valor = gerador.Next(0, lista.Count);
            Console.WriteLine(lista[valor]);
            lista.RemoveAt(valor);
        }
    }    
}


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478768 - 29/12/2017 17:05:30

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Última edição em 29/12/2017 17:26:09 por RDPISA

Citação:
:
Uma outra forma mais rápida e mais elegante seria assim:

dotnetfiddle.net/FRYPD8

using System;
using System.Collections.Generic;
                    
public class Program
{
    public static void Main()
    {
        
        List<int> lista = new List<int>();
        
        for(int i=0; i <= 100; i++)
        {
            lista.Add(i);    
        }
                    
        Random gerador = new Random();        
        while (lista.Count > 0)
        {
            int valor = gerador.Next(0, lista.Count);
            Console.WriteLine(lista[valor]);
            lista.RemoveAt(valor);
        }
    }    
}



ok até ai blz
mas como add os numeros da lista para a listView?
listView2.Items.Add(lista ????);

Estou usando Visual Studio 2013




Rogério De Pinto

#478770 - 29/12/2017 17:44:56

JABA
CABO FRIO
Cadast. em:Agosto/2005


Citação:
mas como add os numeros da lista para a listView?


listView2.Items.Add(lista[valor]);


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478771 - 29/12/2017 17:51:17

RDPISA
CATANDUVA
Cadast. em:Junho/2017


 Anexos estao visíveis somente para usuários registrados

Citação:
:
mas como add os numeros da lista para a listView?

listView2.Items.Add(lista[valor]);

Citação:
:
mas como add os numeros da lista para a listView?

listView2.Items.Add(lista[valor]);


dá erro


Rogério De Pinto

#478772 - 29/12/2017 18:43:47

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 29/12/2017 18:53:21 por JABA

Converta-o para String. Só lembrando que você está mandando adicionar o valor depois de remove-lo. Tem que fazer isso antes.

listView2.Items.Add(lista[valor].ToString());


O código abaixo deverá ser executado apenas uma vez, tem que colocá-lo em algum ponto especifico do seu código para não perder os valores. Do jeito que você está fazendo, vai repetir número.

        List<int> lista = new List<int>();
        
        for(int i=0; i <= 100; i++)
        {
            lista.Add(i);    
        }


_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



#478775 - 30/12/2017 00:28:30

RDPISA
CATANDUVA
Cadast. em:Junho/2017


Última edição em 30/12/2017 00:32:41 por RDPISA

Citação:
:
Converta-o para String. Só lembrando que você está mandando adicionar o valor depois de remove-lo. Tem que fazer isso antes.

listView2.Items.Add(lista[valor].ToString());


O código abaixo deverá ser executado apenas uma vez, tem que colocá-lo em algum ponto especifico do seu código para não perder os valores. Do jeito que você está fazendo, vai repetir número.

        List<int> lista = new List<int>();
        
        for(int i=0; i <= 100; i++)
        {
            lista.Add(i);    
        }


mas se eu mudar o ponto da erro
ja fiz de tudo e não consegui.. fica repetindo os numeros
tem como verificar se o  numero gerado já existe na lisview. fiz assim,  if(listView2.Items.ToString() ==valor.ToString())
                {
                    listView2.Items.RemoveAt(-1);
                }
mas nao deu..
preciso por um timer para que apareça um numero a cada segundo até completar 50 numeros na listviews e não todos de uma vez entendeu até ai ta blz , só que repete numeros...


Rogério De Pinto

#478776 - 30/12/2017 01:09:09

JABA
CABO FRIO
Cadast. em:Agosto/2005


Última edição em 30/12/2017 01:13:19 por JABA

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Teste_CSharp
{

    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        List<int> lista = new List<int>();

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i <= 100; i++)
            {
                lista.Add(i);
            }
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            if (lista.Count >= 50)
            {
                Random gerador = new Random();
                int valor = gerador.Next(0, lista.Count);
                listView1.Items.Add(lista[valor].ToString());
                lista.RemoveAt(valor);
            }
        }
    }
}



_______________________________________________________________________________________________

Se a alma ou espírito são imateriais, como eles fazem para se localizarem quando o corpo está em movimento?



 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por RDPISA em 02/01/2018 16:49:33