Ajuda em Visual Basic

willie22

I'm cool cuz I Fold
O que se passa é o seguinte...O meu prof de TP(Técnicas de Programação) mandou-me fazer um trabalho que consiste na realização de um programa que simule um gerador de apostas do Totoloto e do Euromilhões...E eu tenho tido algumas dificuldades(já postei alguns tópicos para tirar as dúvidas) porque parte da matéria exigida para este trabalho ele não a deu.E está a fazer o trabalho a alguns colegas meus durante as aulas.Colégio "semi-privado" é assim :lol: ...Já fiz a interface do programa ( http://img512.imageshack.us/img512/3117/printscreenaw9.jpg ) e o código respectivo para uma aposta, mas está-me a dar este erro ao corrê-lo ( http://img264.imageshack.us/img264/9532/printscreen2cf2.jpg ).Se conseguir pôr o código a funcionar para uma aposta depois é provável que o consiga pôr também a funcionar para as apostas múltiplas...O código que fiz é o seguinte :
Código:
 Private Sub btn_gerar_Click(Index As Integer)
            Dim vec_en1(4), vec_ee1(1) As Integer
            Dim ja_saiu As Boolean

            If (opt_euromilhoes = True And opt_euromilhoes_uma_aposta = True) Then
            Cls 'Limpa o Form
            i = 0
            Do While i < 4
               ja_saiu = False
               n = Int(49 * Rnd) + 1
               For j = 0 To 4
                   If n = vec_en1(j) And ja_saiu = False Then ja_saiu = True
               Next
               If ja_saiu = False Then
                  vec_en1(i) = n
                  i = i + 1
               End If
               Loop
            i = 0
            Do While i < 2
               ja_saiu = False
               n = Int(9 * Rnd) + 1
               For j = 0 To 1
                   If n = vec_ee1(j) And ja_saiu = False Then ja_saiu = True
               Next
               If ja_saiu = False Then
                  vec_ee1(i) = n
                  i = i + 1
               End If
            Loop
            txt_euromilhoes_numeros1.Text = vec1(0) & " " & vec1(1) & " " & vec1(2) & " " & vec1(3) & " " & vec1(4)
            txt_euromilhoes_estrelas1.Text = vec2(0) & " " & vec2(1)
End Sub
Agradeço desde já toda a ajuda que me possam dar :)
 
humm... parece-me que estas a chamar um função, a qual necessita de argumentos e não lhos deste.. algo como function gerar(o_que as string)

se chamares a função apenas como gerar() e não como gerar("o_que") ele vai dar-te esse erro, tenta fazer um debug com alguns breakpoints para perceberes em que linha esta o erro. e depois se não conseguires resolver, mostra a linha em que deu erro.

abraço.
 
Ai tens o meu programa

código fonte

Código:
Public Class Form1

    Dim totoarray(5) As Label
    Dim euro_numero_array(4) As Label
    Dim euro_estrela_array(1) As Label

    Dim euro(4) As Integer   'array para os numeros do euromilhões
    Dim estrela(1) As Integer ' 'array para os numeros das estrelas
    Dim toto(5) As Integer 'array para os numeros do totoloto

    Private Sub Form1_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated


        ' indexar os arrays das labels do totoloto
        totoarray(0) = Me.Lbl_toto_1
        totoarray(1) = Me.Lbl_toto_2
        totoarray(2) = Me.Lbl_toto_3
        totoarray(3) = Me.Lbl_toto_4
        totoarray(4) = Me.Lbl_toto_5
        totoarray(5) = Me.Lbl_toto_6

        ' indexar os arrays das labels do numeros do euromilhões
        euro_numero_array(0) = Me.Lbl_euro_1
        euro_numero_array(1) = Me.Lbl_euro_2
        euro_numero_array(2) = Me.Lbl_euro_3
        euro_numero_array(3) = Me.Lbl_euro_4
        euro_numero_array(4) = Me.Lbl_euro_5

        'indexar os arrays das labels do numeros das estrelas do euro_estrela_array(0) = Me.lbl_estrela_1
        euro_estrela_array(0) = Me.lbl_estrela_1
        euro_estrela_array(1) = Me.lbl_estrela_2



        For i As Integer = 0 To 5
            totoarray(i).Visible = False
        Next


        For i As Integer = 0 To 4
            euro_numero_array(i).Visible = False
        Next

        Me.lbl_estrela_1.Visible = False
        Me.lbl_estrela_2.Visible = False



    End Sub



    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    End Sub

    Private Sub Btn_sair_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_sair.Click
        Close()

    End Sub

    ' prenche qualquer array com qualquer dimensão
    'l ---- numeros

    ' função generica 
    Sub escolher(ByRef a() As Integer, ByVal l As Integer)

        ' ubound - dá a ultima possição de um array 
        'cint - converte para inteiro

        Randomize()

        For i As Integer = 0 To UBound(a)


            a(i) = CInt(1 + Rnd() * l)

            ' a - array
            ' a(i) numero escolhido
            'i- possição

            If existe_numero(a, a(i), i) Then
                ' temos de decrementar uma posição para voltar a anterior
                ' pois aquela em que nos encontramos é a do numero repetido
                i -= 1
            End If

        Next



    End Sub

    Private Sub btn_gera_totoloto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_gera_totoloto.Click



        For i As Integer = 0 To 5
            totoarray(i).Visible = True

        Next


     

        escolher(toto, 49)

        For i As Integer = 0 To 5


            totoarray(i).Text = toto(i)
        Next

    End Sub

    Private Sub btn_gera_euro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_gera_euro.Click

       


        For i As Integer = 0 To 4
            euro_numero_array(i).Visible = True
        Next

        Me.lbl_estrela_1.Visible = True
        Me.lbl_estrela_2.Visible = True


        escolher(euro, 50)
        escolher(estrela, 9)

        For i As Integer = 0 To 4

            euro_numero_array(i).Text = euro(i)
        Next

        For i As Integer = 0 To 1

            euro_estrela_array(i).Text = estrela(i)
        Next
    End Sub

    ' p - possição no array para um numero n
    'num - numero a ser escolhido

    ' função generica 
    Function existe_numero(ByVal a() As Integer, ByVal num As Integer, ByVal pos As Integer) As Boolean
        existe_numero = False
        ' percorre da primeira possição ate a possição -1
        ' decolve verdadeiro se num existe e falso caso não

        For i As Integer = 0 To pos - 1

            If num = a(i) Then
                existe_numero = True
            End If
        Next

    End Function

    'ordena por ordem crescente (função generica )


    Sub ordenar(ByRef a() As Integer)
        Dim menor, aux As Integer

        For i As Integer = 0 To UBound(a) - 1
            menor = a(i)
            For j As Integer = i + 1 To UBound(a)
                If menor > a(j) Then
                    aux = menor
                    menor = a(j)
                    a(j) = aux
                End If

            Next
            a(i) = menor
        Next

    End Sub

    Private Sub Btn_ordenar_toto_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn_ordenar_toto.Click

        ordenar(toto)

        For i As Integer = 0 To 5


            totoarray(i).Text = toto(i)
        Next

    End Sub

    Private Sub Btnordenar_Euro_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btnordenar_Euro.Click
        ordenar(estrela)
        ordenar(euro)

        For i As Integer = 0 To 4

            euro_numero_array(i).Text = euro(i)
        Next

        For i As Integer = 0 To 1

            euro_estrela_array(i).Text = estrela(i)
        Next
    End Sub
End Class
______________________________________________________________________________

Nome dos Objectos do formulário


Código:
nome dos objectos

zona_totoloto

botão gerar - btn_gera_totoloto

botão ordenar -Btn_ordenar_toto


label 1 -Lbl_toto_1
label 2 -Lbl_toto_2
label 3 -Lbl_toto_3
label 4 -Lbl_toto_4
label 5 -Lbl_toto_5
label 6 -Lbl_toto_6

_______________________________________________


zona euromilhões

botão gerar -btn_gera_euro

botão ordenar -Btnordenar_Euro

chave euromilhões

label 1 -Lbl_euro_1
label 2 -Lbl_euro_2
label 3 -Lbl_euro_3
label 4 -Lbl_euro_4
label 5 -Lbl_euro_5

estrelas

label 1 -lbl_estrela_1
label 2 -lbl_estrela_2
____________________________________________________________

Imagem do formulário do programa

Clica na imagem para a veres maior




atenção este codigo esta feito em vb2005

mas as diferenças não são muitas ou quase nehumas

no no botão sair onde está close(), penso que é unload me em vb6

nota: este programa gera totoloto e euromilhões, no totoloto so gera os 6 algarismos, não gera o suplementar ,foi um esquecimento.

mas com isso tdo feito é facil so alterar para isso

espero que ajude
 
Última edição:
Euromilhões em VB

Boas pessoal!:-D

Foi-me pedido fazer um programa para o euromilhões mas nao estou a conseguir. Ja tenho a interface feita e algum código mas quando ponho 'gerar chave' encontro alguns numeros repetidos. Gostaria que me ajudassem a por os 5 números sem estarem repetidos. Estou a fazer em vb 2005. Alguma ajuda gostaria que me mandassem para o mail ([email protected]).

Obrigado pela ajuda. No que puder ajudar também...:)

Miguel
 
Back
Topo