1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Ajuda em Visual Basic

Discussão em 'Programação' iniciada por willie22, 31 de Maio de 2007. (Respostas: 4; Visualizações: 2469)

  1. willie22

    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 :)
     
  2. msdevweb

    msdevweb Power Member

    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.
     
  3. alfinete

    alfinete Power Member

    é em vb 6, ou 2005

    se for em 2005 tenho um feito e podia-te arranjar
     
  4. alfinete

    alfinete Power Member

    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

    [​IMG]


    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: 1 de Junho de 2007
  5. 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
     

Partilhar esta Página