• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

will.i.am

[VB6] Erro de compilação

5 mensagens neste tópico

Ando no 11º ano de Informática e tenho que fazer um programa que gere uma chave do euromilhões de cinco números e duas estrelas...Sem números repetidos...

Fiz o seguinte código:

Private Sub btn_euromilhoes_gerar1_Click()

            Dim vec1(5), vec2(2) As Integer

            Dim i, j As Integer

            For i = 0 To 4

                vec1(i) = Int(49 * Rnd + 1)

                numeros_euromilhoes1.Text = vec(i) + " "

            Next

            For j = O To 2

                vec2(j) = Int(8 * Rnd + 1)

                estrelas_euromilhoes.Text = vec(i) + " "

            Next

End Sub

...Mas quando tento correr o programa dá-me este erro: Compile error: sub or function not defined...e a primeira linha de código( Private Sub btn_euromilhoes_gerar1_Click() ) aparece a amarelo...O botão já tem este nome desde o início do programa por isso não vejo o que possa ser.O código tem algum erro?Fico muito grato por qualquer ajuda que me possam dar...

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

se tiveres o código exactamente como tens ai no segundo for tens j = O em vez de j=0 :P

tens também um estrelas_euromilhoes.Text = vec(i) + " " quando devia de ser estrelas_euromilhoes.Text = vec(j) + " "

assim por alto não estou a ver mais nada :hmm:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

olá amigo!

quanto ao erro não sei ....mas deve de ser alguma borreguice que fizestes .... é mais que certo !

quanto ao algoritmo ... bem não estás a eliminar a possibilidade de números repetidos nos sorteios.

Aqui VAI uma das mil e uma forma de resolver o teu problema ... não é a mais elegante nem a mais rápida,

mas acho que é de fácil compreenção !! 

:-)  diverte- te!

Private Sub btn_euromilhoes_gerar1_Click()

Dim vec1(5) As Byte

Dim vec2(2) As Byte

Dim Numero As Byte

Dim bJaSaiu As Boolean

Dim i As Integer

Dim j As Integer

Cls 'limpa o form

i = 0

Do While i < 5

    bJaSaiu = False

    Numero = Int(49 * Rnd) + 1

    For j = 0 To 4

        If Numero = vec1(j) And bJaSaiu = False Then bJaSaiu = True

    Next

    If bJaSaiu = False Then

      vec1(i) = Numero

      i = i + 1

     

    End If

Loop

i = 0

Do While i < 2

    bJaSaiu = False

    Numero = Int(9 * Rnd) + 1

    For j = 0 To 1

        If Numero = vec2(j) And bJaSaiu = False Then bJaSaiu = True

    Next

    If bJaSaiu = False Then

      vec2(i) = Numero

      i = i + 1

     

    End If

Loop

For i = 0 To 4

    Print vec1(i) & " ";

Next

Print

Print vec2(0) & " " & vec2(1)

End Sub

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Já detectei o erro:

As linhas numeros_euromilhoes1.Text = vec(i) + " " e estrelas_euromilhoes1.Text = vec(i) + " " deveriam ser numeros_euromilhoes1.Text = vec1(i) + " " e estrelas_euromilhoes1.Text = vec2(j) + " "

Agora aparece-me esta mensagem: Runtime Error 13: Type Mismatch.

Penso que tenho as variáveis declaradas correctamente.

Alguem sabe o porquê deste erro?

Muito obrigado pela vossa ajuda!  :P

0

Partilhar esta mensagem


Link 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