Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Fernatic Dias

Euromilhões

Mensagens Recomendadas

Fernatic Dias

Olá, estou a tentar, refazer um exercísio que me tinha dado o meu professor há uns anos. Que consiste em criar umas 7 textbox e dois buttons, (Gerar/Limpar)!

Algo assim:

http://www.mediafire.com/view/w0xwkvn1ab112ps/2016-04-28.png#

Ao clicar no buttons gerar, preenche 5 textbox com numero aliatório de 1-50 e as ultimas duas de 1-11 problema, repete os numero e só coloca os numeros 50/11. O meu problema é esse. O código que tenho é:

private void button1_Click(object sender, EventArgs e)
 {
	 for (int i = 1; i <= 50; i += 1)
	 {
		 textBox1.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 50; i += 1)
	 {
		 textBox2.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 50; i += 1)
	 {
		 textBox3.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 50; i += 1)
	 {
		 textBox4.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 50; i += 1)
	 {
		 textBox5.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 11; i += 1)
	 {
		 textBox6.Text = Convert.ToString(i);
	 }

	 for (int i = 1; i <= 11; i += 1)
	 {
		 textBox7.Text = Convert.ToString(i);
	 }
 }

Tenho cada textbox independente e tenho que fazer de maneira a que cada textbox seja diferente das outras, sem repetir numeros.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
vikcch

for (int i = 1; i <= 50; i += 1)
{
textBox1.Text = Convert.ToString(i);
}

estás a escrever o valor da int i (1,2,3,4...) 50 vezes na textbox... quando acaba o ciclo fica lá o ultimo numero que é 50... não tem nada de aleatório aqui...

podes fazer mais ou menos assim:

		private void button1_Click(object sender, EventArgs e)
	{
		// Cria uma lista, e preenche com numeros de 1 a 50
		var disponiveis = new List<int>();
		for (int i = 1; i <= 50; i++)
		{
			disponiveis.Add(i);
		}
		// a lista fica com 50 elementos

		Random rnd = new Random();

		// Corre o ciclo 5 vezes, uma para cada textbox
		for (int i = 0; i < 5; i++)
		{
			// rnd.Next(0, 10) -> Sorteia um numero de 0 a 9
			// rnd.Next(0, 2)  -> Sorteia um numero de 0 a 1 (0 ou 1)

			// disponiveis.Count -> Nr de elementos da lista
			// 1ª -> 50; 2ª -> 49; 3ª -> 48; etc... porque vai removendo							  
			int index = rnd.Next(0, disponiveis.Count);

			// saca o nr de dentro da lista consuante o index que foi gerado
			int n = disponiveis[index];

			// remove o elemento do respectivo index
			disponiveis.RemoveAt(index);

			// mostra o resultado
			MessageBox.Show(n.ToString());
		}
	}

Editado por vikcch

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Fernatic Dias

Boa tarde, tenho que exprimentar e ver como corre. Em relação há como colocar a imagem, fiz uploud para o mediafire, e copiei o link de partilha, para a descrição!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.