bollywood actresses hair loss hair rehab london contact number cheap hair extensions brazilian curly hair with closure hair extension fails human hair wigs black ponytail hairstyles 2018 sunny hair extensions uk hair extensions remy hair extensions weft koko one piece hair extensions clip hair
Soma contínua em consultas, com eficiência
Sorteio Lotofácil, Lotomania e Mega-Sena

Nota importante: para ter acesso aos vídeos e arquivos exemplos deste site, adquira um dos planos apresentados abaixo. Você pode comprar em até 2x no Cartão de Crédito. 

Veja como comprar e saiba mais sobre o material oferecido,  clicando aqui.

Open v3

 

Resolvi desenvolver um simulador da Lotomania e obviamente precisei criar um código para gerar os sorteios.    Quem já assistiu a um sorteio, sabe que se segue a seguinte ordem:

- As bolas são posicionadas em recipiente acima do globo.

- As bolas são liberadas para dentro do globo e este começa a girar.

- Após alguns giros do globo, uma bola é sorteada.  Até a bola descer e se posicionar no recipiente inferior, o globo fica girando.  As próximas bolas sorteadas seguem o mesmo processo de giro e sorteio.

Montei a lógica de programação, a mais fiel possível ao procedimento real do sorteio.  Observe atentamente aos comentários do código.

Veja que o código já foi preparado para sortear também a Lotofácil e a Mega-sena:

Option Compare Database

Public Enum sTipo
   Lotofacil = 15
   Lotomania = 20
   Mega_sena = 6
End Enum
 
------------------------------------------------------------------
Public Function fncSorteio(Tipo As sTipo)
Dim n() As Integer
Dim j%
Dim bolas$
Dim b, g, r
Dim PosicaoSorteada As Byte

ReDim n(Tipo) 'Redimensiona a matriz, conforme o tipo de sorteio

'Coloca as bolas no recipiente que fica acima do globo
Select Case Tipo
    Case 15 'Lotofácil
        For j = 1 To 25
            bolas = bolas & " " & j
        Next
    Case 20 'Lotomania
        For j = 0 To 99
            bolas = bolas & " " & j
        Next
    Case 6 'Mega-sena
        For j = 1 To 60
            bolas = bolas & " " & j
        Next
End Select

Randomize 'Limpa a memória para um novo sorteio

'Loop até completar o sorteio
For j = 1 To Tipo
    'Coloca as bolas no globo
    b = Split(Trim(bolas), " ") 
    'Gira o globo 15 vezes e sorteia
    For g = 1 To 15
	'Em cada giro do globo, uma bola é sorteada para cair
        PosicaoSorteada = Int(Rnd * (UBound(b) + 1))
	'Ao chegar no décimo quinto giro, deixa a bola cair do globo
        If g = 15 Then 
            'Passa a bola sorteada para a bandeja das sorteadas
            n(j) = b(PosicaoSorteada)
            'Retira a bola sorteada do globo, para o novo sorteio
            bolas = ""
            For r = 0 To UBound(b)
                If b(r) <> n(j) Then
                    bolas = bolas & " " & b(r) 'Somente as bolas não sorteadas
                End If
            Next
        End If
    Next
Next
'Ordena os números sorteados
Call fncOrdenarArray(n)
'Formata os números sorteados com duas casas
bolas = ""
For j = 1 To Tipo
    bolas = bolas & " " & Format(n(j), "00")
Next
'Apresenta as bolas sorteadas
fncSorteio = Trim(bolas)
End Function
 
-----------------------------------------------------------------------
 
Public Sub fncOrdenarArray(Prova)
Dim i%, j%, uB%, Temp, temp2
uB = UBound(Prova)
For i = LBound(Prova) To uB - 1
   For j = i + 1 To uB
      If Val(Prova(i)) > Val(Prova(j)) Then
         Temp = Prova(j)
         Prova(j) = Prova(i)
         Prova(i) = Temp
      End If
   Next j
Next i
End Sub

Testando a função:

fncSorteio(Lotomania)
03 06 08 11 25 27 30 33 35 42 46 50 51 52 58 62 67 69 72 86
 
fncSorteio(Lotofacil)
01 04 05 06 07 08 10 11 12 13 15 17 19 22 23
 
fncSorteio(Mega_sena)
03 22 29 49 54 55

A função Split()

A função Split() transforma uma seqüência em uma Matriz.  Por exemplo, a variável bolas recebe da Lotomania, a seguinte seqüência:

bolas = "0 1 2 3 4 5 6 7 8 9 10 .... 97 98 99"

Ao passar a seqüência da variável bolas na função Split()

b= Split(bolas," ")

temos os valores passados para a matriz b:

b(0) = 0

b(1) = 1

...

b(98) = 98

b(99) = 99

A  função Ubound()

A função Ubound(matriz) retorna o comprimento da matriz.

uBound(b) ::::> 99

A função Rnd()

A função Rnd() retorna a números aleatórios fracionados.  Exemplo:

0,7747401
0,301948
0,2895625


Ao multiplicar por 100, temos :

(Rnd * 100)

77,47401
30,1948
28,95625


Usamos a função INT() para extrair somente a parte inteira:

int(Rnd * 100)

77
30
28

 

Bom estudo!


 

 


7 comentário(s)

Eduardo   01/04/2017 06:41:01

muito boa matéria!! parabéns !!! sucesso!!

Nélio   30/03/2017 08:37:04

Meus parabéns mestre, sou seu fã! Quando eu crescer quero ser assim!

Nick BEthencourt   30/03/2017 07:46:44

Avelino você é um cara inspirador!

MARCOS HENRIQUE   30/03/2017 05:55:46

Não consegui localizar o arquivo exemplo para realizar o Download.

pcnet   29/03/2017 13:16:02

Obrigado por partilhar o seu conhecimento.
O seu trabalho é notável!

Muitos parabéns e os maiores sucessos!

Gilson   29/03/2017 10:00:00

Muito bom. Excelente

Ricardo Abreu   29/03/2017 08:25:10

Excelente


Envie seu comentário: