euromilhões public class

2
Pretende-se um programa em Visual Basic para gerar chaves para o Euro milhões. Podem ser geradas de 1 a 5 chaves com 5 números de 1 a 50 e dois números de 1 a 9 que representam as estrelas. Atenção: Os números não podem ser repetidos e as chaves devem vir ordenadas. Public Class Form1 Dim vchaves As Integer Dim vnumeros(4) As Integer Dim vestrelas(1) As Integer Private Sub btngerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btngerar.Click Dim i, j, h As Integer txtnumeros.Text = "" vchaves = nudchaves.Value Randomize() For i = 1 To vchaves For j = 0 To 4 vnumeros(j) = Math.Floor(Rnd() * 50 + 1) If saiu_numero(vnumeros, vnumeros(j), j) Then j = j - 1 End If Next Array.Sort(vnumeros) For j = 0 To (j - 1) txtnumeros.Text &= vnumeros(j) & " " Next txtnumeros.Text &= vbNewLine For h = 0 To 1 vestrelas(h) = Math.Floor(Rnd() * 9 + 1) If saiu_numero(vestrelas, vestrelas(h), h) Then h = h - 1 End If Next Array.Sort(vestrelas) For h = 0 To (h - 1) txtestrelas.Text &= vestrelas(h) & " " Next txtestrelas.Text &= vbNewLine Next End Sub Um ciclo For para gerar o número de apostas que vêm de NUD, e dentro deste ciclo serão gerados dois ciclos For para completarem os vectores dos números e das estrelas Atenção: Os números não podem ser e as chaves devem vir O array.sort vem na biblioteca do programa e ordena os valores da respectiva variável, um array para ordenar os num eros e um array para ordenar as estrelas Para não repetir números usa-se uma função que foi anteriormente declarada depois do endsub. se saiu um numero da variável que se repetiu dentro desse vector, então esse numero é eliminado e substituído por outro Só no fim de os valores estarem ordenados e sem repetições é que se mostra os números na txt. Mostra o vector Mostra uma nova linha

Upload: rui-bexiga

Post on 25-Jul-2015

742 views

Category:

Documents


4 download

DESCRIPTION

Public Class da programação em Visual Basic para o exercício de Euromilhões

TRANSCRIPT

Page 1: euromilhões public class

Pretende-se um programa em Visual Basic para gerar chaves para o Euro milhões. Podem ser geradas de 1 a 5 chaves com 5 números de 1 a 50 e dois números de 1 a 9 que representam as estrelas. Atenção: Os números não podem ser repetidos e as chaves devem vir ordenadas.

Public Class Form1 Dim vchaves As Integer Dim vnumeros(4) As Integer Dim vestrelas(1) As Integer Private Sub btngerar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btngerar.Click Dim i, j, h As Integer txtnumeros.Text = "" vchaves = nudchaves.Value Randomize() For i = 1 To vchaves For j = 0 To 4 vnumeros(j) = Math.Floor(Rnd() * 50 + 1) If saiu_numero(vnumeros, vnumeros(j), j) Then j = j - 1 End If Next Array.Sort(vnumeros) For j = 0 To (j - 1) txtnumeros.Text &= vnumeros(j) & " " Next txtnumeros.Text &= vbNewLine For h = 0 To 1 vestrelas(h) = Math.Floor(Rnd() * 9 + 1) If saiu_numero(vestrelas, vestrelas(h), h) Then h = h - 1 End If Next Array.Sort(vestrelas) For h = 0 To (h - 1) txtestrelas.Text &= vestrelas(h) & " " Next txtestrelas.Text &= vbNewLine Next End Sub

Um ciclo For para gerar o número de apostas que vêm de NUD, e dentro deste ciclo serão gerados dois ciclos For para completarem os vectores dos números e das estrelas

Atenção: Os números não podem ser e as chaves devem vir

O array.sort vem na biblioteca do programa e ordena os valores da respectiva variável, um array para ordenar os num eros e um array para ordenar as estrelas

Para não repetir números usa-se uma função que foi anteriormente declarada depois do endsub.

se saiu um numero da variável que se repetiu dentro desse vector, então esse numero é eliminado e substituído por outro

Só no fim de os valores estarem ordenados e sem repetições é que se mostra os números na txt.

Mostra o vector

Mostra uma nova linha

Page 2: euromilhões public class

Private Sub btnlimpar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnlimpar.Click txtestrelas.Text = "" txtnumeros.Text = "" nudchaves.Value = 1 ‘ remete a nud para o valor inicial End Sub Function saiu_numero(ByVal a() As Integer, ByVal vnumeros As Integer, ByVal p As Integer) As Boolean saiu_numero = False ' percorre da primeira posição até à posição -1 ' devolve verdadeiro se número existe no vector e falso caso não exista For j = 0 To p - 1 If vnumeros = a(j) Then saiu_numero = True End If Next End Function Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load End Sub End Class