Jump to content
Fernatic Dias

Euromilhões

Recommended Posts

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.

Share this post


Link to post
Share on other 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());
		}
	}

Edited by vikcch

Share this post


Link to post
Share on other sites
Fernando Correia 1999

sei que não tem nada a ver mas podes me dizer como inseriste essa imagem aqui?

Share this post


Link to post
Share on other 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!

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.