SEQUENCIA MEGA SENA
GERADOR DE JOGOS DA LOTERIAS CEF - MATRIZ
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=5508
====================================================================
Se vc olhar um volante da mega sena, vai perceber que tem linhas e colunas, diagonais, etc.
01-02-03-04-05-06-07-08-09-10 = LINHAS
11
21
31
41
51 = COLUNAS
eu gostaria de uma funcao para me dizer a sequencia dos numeros
EX.:
02 05 11 12 13 60 = onde 11 12 13 estao em sequencia da linha
11 21 31 35 40 58 = onde 11 21 31 estao em sequencia da coluna
e tambem a distancia entre eles.
EX.:
02 05 = 2 numeros entre eles = 03 04
05 11 = 5 numeros entre eles = 06 07 08 09 10
http://www.vbmania.com.br/vbmania/vbmdetail.php?varID=5508
====================================================================
Se vc olhar um volante da mega sena, vai perceber que tem linhas e colunas, diagonais, etc.
01-02-03-04-05-06-07-08-09-10 = LINHAS
11
21
31
41
51 = COLUNAS
eu gostaria de uma funcao para me dizer a sequencia dos numeros
EX.:
02 05 11 12 13 60 = onde 11 12 13 estao em sequencia da linha
11 21 31 35 40 58 = onde 11 21 31 estao em sequencia da coluna
e tambem a distancia entre eles.
EX.:
02 05 = 2 numeros entre eles = 03 04
05 11 = 5 numeros entre eles = 06 07 08 09 10
A estrutura de dados seria uma matriz, onde I = Linha e J = Coluna.
Neste caso para cada numero do volante estaria em um IJ da matriz
M[i,j] = N no exemplo
M[1,1] = 01 M[1,2] = 02 M[1,3]=03 ....
M[2,1] = 11 ...
.
.
.
Assim pelo indice vc consegue saber o que precisa
Mesma linha = seria os com I iguais
Mesma coluna = seria os com J iguais
A diferença entre elas basta operar com os indices I e J
Neste caso para cada numero do volante estaria em um IJ da matriz
M[i,j] = N no exemplo
M[1,1] = 01 M[1,2] = 02 M[1,3]=03 ....
M[2,1] = 11 ...
.
.
.
Assim pelo indice vc consegue saber o que precisa
Mesma linha = seria os com I iguais
Mesma coluna = seria os com J iguais
A diferença entre elas basta operar com os indices I e J
Olha só, eu fiz pra vc a parte de COLUNAS VERTICAIS
Aproveita a idéia e faz a de horizontais, é só trocar os indices.
Eu to sem tempo agora pra fazer os dois pra vc.
Se quiser testar, basta trocar os valores de sNumeros, pode colocar quantos quiser, ele vai checar mesmo que vc ponha 100 numeros lá.
----------------------------------------------------------------------
Aproveita a idéia e faz a de horizontais, é só trocar os indices.
Eu to sem tempo agora pra fazer os dois pra vc.
Se quiser testar, basta trocar os valores de sNumeros, pode colocar quantos quiser, ele vai checar mesmo que vc ponha 100 numeros lá.
----------------------------------------------------------------------
Dim i As Integer, j As Integer, iQtdeColuna As Integer
Dim sNumeros As String
Dim sVerticais(0 To 9) As String, sHorizontais(0 To 9) As String
Dim Colunas As Variant, Volante As Variant
Const sDelimitador As String = " "
'numeros a checar (separados por ESPAÇO)
sNumeros = "01 05 10 15 23 46"
'grava em array separando por espaço
Volante = Split(sNumeros, sDelimitador)
'verifica os que estão na mesma coluna e joga no indice da vertical
For j = 0 To 9
For i = LBound(Volante) To UBound(Volante)
If Right(Volante(i), 1) = j Then
sVerticais(j) = Trim(sVerticais(j) & " " & Volante(i))
End If
Next
Next
'exibe as colunas que possuem mais de 1 item
For i = LBound(sVerticais) To UBound(sVerticais)
If Not sVerticais(i) = "" Then
Colunas = Split(sVerticais(i), sDelimitador)
iQtdeColuna = (UBound(Colunas) - LBound(Colunas)) + 1
'esta coluna I tem mais de 1 item
If iQtdeColuna > 1 Then
MsgBox sVerticais(i)
End If
End If
Next
Tópico encerrado , respostas não são mais permitidas