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

... Assinatura do site por 1 ano + Kit MontaRibbons + 3 Livros em PDF + Diversas Revistas (pdf) de brinde, por apenas R$100,00
(
podendo parcelar em até 10 vezes no cartão de crédito)...

Clique aqui e obtenha mais detalhes do nosso kit completo e de como comprar.


Sorteio Lotofácil, Lotomania e Mega-Sena

Antes de iniciar sua leitura, clique aqui e cadastre-se para receber comunicados sobre novos artigos.

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)

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

Excelente

Gilson   29/03/2017 10:00:00

Muito bom. Excelente

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!

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

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

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

Avelino você é um cara inspirador!

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

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

Eduardo   01/04/2017 06:41:01

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


Envie seu comentário: