Ir ao conteúdo
  • Cadastre-se

Programa para a Lotomania - dificuldades


sphgf

Posts recomendados

Olá, preciso uma ajuda do inicio ao fim pra este soft abaixo (não precisa um ambiente grafico cheio de coisas).

AJUDA = Construção do soft pagando por ele, claro!

O programa que tenho em mente pode ser pensado como "uma forma controlada de pular cartões" ou "uma espécie de Bruta Force".

O programa será para 100 dezenas em cartão de 50 apostas.

:confused:

Vou dar um exemplo do programa que voce pode fazer usando esta ideia:

Vamos supor que num determinado jogo eu tenha 12 dezenas (1 a 12) e quero

fazer cartões com 7 dezenas por cartão (x1, x2, x3, x4, x5, x6, x7) posição

de 1 a 7, que podem ser ocupadas até um certo limite: X1 (só pode ter

valores 1 a 6), x2 (2 a 7), x3 (3 a 8), x4 (4 a 9), x5 (5 a 10), x6 (6 a 11),

x7 (7 a 12). Esta é a 1a condição do exemplo (detalhar os limites das dezenas

nas posições) Tudo isso em ordem crescente.

2a Condição: Quase ficou explicita na primeira. São 7 posições que não podem ter a mesma dezena, logo: p7 > p6 > p5 > p4 > p3 > p2 > p1 > 0 e

( p7 dif p6 dif p5 dif p4 dif p3 dif p2 dif p1 dif 0 ) dif = diferente.

3a Condição: Qual a relação/diferença de um cartão pra outro?? (Exemplo:

Outras combinações(K-subsets) com menos de 5 dz repetidas/iguais ao anterior, (vamos chamar variavel N) ).

4a Condição: INPUT ---> Qual o cartão Inicial ?? Opção 1 = Cartão primeiro,

cartão 1. Opção 2 = Digitar as dezenas do cartão inicial.

Vou tentar explicar a condição 3:

Se na resposta do input começar por cartão 1 e na condição 3 for solicitado

N = 5 então na resposta deve sair:

teste.txt = 11

01 02 03 04 05 06 07 (cartão primeiro)

01 02 03 04 08 09 10 (cartão segundo)

01 02 03 05 08 11 12 (cartão terceiro)

01 02 04 06 09 11 12 (cartão quarto)

01 02 05 07 09 10 11 (cartão quinto)

01 02 06 07 08 10 12 (cartão sexto)

01 03 04 07 10 11 12 (cartão setimo)

01 03 05 06 09 10 12 (cartão oitavo)

01 03 06 07 08 09 11 (cartão nono)

01 04 05 06 08 10 11 (cartão decimo)

01 04 05 07 08 09 12 (cartão decimo primeiro)

Existem softs muito bons que fazem isso, mas não pra lotomania pois não são rápidos. Entendo que estes softs funcionam da seguinte forma: Dada a lista de dezenas, o soft gera o primeiro cartão com as dezenas na ordem que são apresentadas (no caso as 7 primeiras do grupo de 12 dezenas, depois gera o segundo cartão mudando 1 dezena de cada vez e compara/confere com a combinação 1 gerada e armazenada na lista do programa, se tiver N-1 (no nosso caso 5 dzs) dezenas repetidas, joga a combinação fora e faz a proxima, se a condição for satisfeita armazena na lista e faz nova combinação e compara agora com as duas combinações lá presentes, até se esgotarem todas as combinações possiveis no caso 792, portanto estes softs geram TODAS as combinações.

Vou tentar explicar a condição 4: Iniciar a "fabricação" a partir do cartão 1 ou

digitar as 7 dezenas (que devem estar entre as 12) e a partir desta combinação

gerar os proximos cartões que não possuem N dezenas repetidas, que no nosso programa após ser digitadas as 7 dezenas o programa DEVE classifica-las em ordem crescente. (1o BUG).

A ROTINA ALTERADA / NOVA FORMA / O PSEUDO ALGORITMO:

INPUT 1 : Qtd de numeros ( 10 a 100 ) = 12

INPUT 2 : Dzs por cartão ( 02 a 50 ) = 7

INPUT 3 : Qtd de repetidos ( 0 a 49 ) > 5

INPUT 4 : Qual o cartão Inicial (opção 1 --> Cartão 1

(opção 2 --> Digitar cartão ) = 1

INPUT 5 : Qual nome do arquivo para salvar = teste.txt

Note que após respondida a entrada 1 dependendo da resposta ( 12 ) deve-se impor no INPUT 2 a opção ( 2 a 12 ) e não mais (2 a 50) = 2o BUG. Após ser respondida o INPUT 2 ( 7 ) deve-se impor no INPUT 3 a opção ( 0 a 11 ) e não mais (0 a 49) = 3o BUG.

A geração dos cartões:

Como foi escolhido as opções - 12, 7 , 5 , 1.

O primeiro cartão é:

01 02 03 04 05 06 07 (cartão primeiro)

Já o segundo cartão será feito da seguinte forma:

Como foi digitado input 3 = 5

o programa copia as (N-1) 4 primeiras dezenas do cartão primeiro

e adiciona a unidade 1 ao valor que está na posição x4 para fazer a posição x5

que fica assim (01 02 03 04 05)

depois confere/compara estas 5 dezenas com o cartão primeiro e

verifica que existem 5 dezenas repetidas do cartão anterior

repetidas = 5.

Se isso ocorre então ele adiciona mais 1 unidade na posição x5

ficando agora cartão 2 = (01 02 03 04 06)

depois confere novamente com o cartão primeiro e verifica que

dezs repetidas maior que N-1 , se isso ocorre então o programa

adiciona 1 unidade na posição x5 que passa para valor 07

ficando agora cartão 2 = (01 02 03 04 07)

depois confere novamente com o cartão primeiro e verifica que

dezs repetidas maior que N-1 = 5 , se isso ocorre então o programa

adiciona 1 unidade na posição x5 que passa para valor 08

ficando agora cartão 2 = (01 02 03 04 08)

depois confere novamente com o cartão primeiro e verifica que

não ha mais que N-1 dzs repetidas então ele passa a calcular a posição x6 da

seguinte maneira: Primeiro pega a posição x5 e adiciona 1

unidade e fica assim (01 02 03 04 08 09)

então compara/confere com o cartão primeiro e verifica que dez

repetidas não é maior que N-1 então aceita x6 e adiciona 1

unidade em x6 para fazer x7 e fica assim (01 02 03 04 08 09 10)

depois confere novamente com o cartão primeiro e verifica que

dezs repetidas não é maior que N-1 então aceita o cartão 2 e

adiciona na lista. cartão 2 = (01 02 03 04 08 09 10)

Note que nesta passagem o programa deixou de fabricar/gerar

os cartões:

01 02 03 04 05 06 08

01 02 03 04 05 06 09

01 02 03 04 05 06 10

01 02 03 04 05 06 11

01 02 03 04 05 06 12

01 02 03 04 05 07 08

01 02 03 04 05 07 09

01 02 03 04 05 07 10

01 02 03 04 05 07 11

01 02 03 04 05 07 12

01 02 03 04 05 08 09

01 02 03 04 05 08 10

01 02 03 04 05 08 11

01 02 03 04 05 08 12

01 02 03 04 05 09 10

01 02 03 04 05 09 11

01 02 03 04 05 09 12

01 02 03 04 05 10 11

01 02 03 04 05 10 12

01 02 03 04 05 11 12

01 02 03 04 06 07 08

01 02 03 04 06 07 09

01 02 03 04 06 07 10

01 02 03 04 06 07 11

01 02 03 04 06 07 12

01 02 03 04 06 08 09

01 02 03 04 06 08 10

01 02 03 04 06 08 11

01 02 03 04 06 08 12

01 02 03 04 06 09 10

01 02 03 04 06 09 11

01 02 03 04 06 09 12

01 02 03 04 06 10 11

01 02 03 04 06 10 12

01 02 03 04 06 11 12

01 02 03 04 07 08 09

01 02 03 04 07 08 10

01 02 03 04 07 08 11

01 02 03 04 07 08 12

01 02 03 04 07 09 10

01 02 03 04 07 09 11

01 02 03 04 07 09 12

01 02 03 04 07 10 11

01 02 03 04 07 10 12

01 02 03 04 07 11 12

Portanto pulou apenas os 45 cartões que não se encaixavam na CONDIÇÃO...

Já o cartão seguinte (3) será criado assim:

Como foi digitado input 3 = 5

o programa copia as 4 primeiras dezenas do cartão SEGUNDO

e adiciona a unidade 1 na posição x4 para fazer a posição x5

que fica assim (01 02 03 04 05)

Depois confere esta combinação parcial de 5 dezenas com a lista

no caso ainda o cartão 1 e o 2.

Verifica que ha mais que N-1 dez repetidas então adiciona 1 ao valor que está

em x5 e repete todo o processo, mas no final encontra um problema todas as

condições foram executadas mas não encontrou a combinação pois a ultima

que o programa encontrou foi (01 02 03 04 10) e com 10 em x5 seu limite ao

conferir com a lista percebeu que as repetidas eram maior que N-1

e ele não pode fazer x5=11 então agora ele deve passar a calcular a posição

anterior pois esgotou-se x5 então deve pegar a posição x4 e adicionar 1 ficando agora cartão 3 = (01 02 03 05) ai ele compara com a lista (cartão 1 e 2) e aceita x4 = 05 repete todo o processo e encontra cartão 3 = (01 02 03 05 08 11 12).

Dai recomeça o processo para os demais cartões, até que ele encontra o cartão limite = ( 06 07 08 09 10 11 12 ) compara com a lista e o rejeita, como todos os limites para os xis (x1 a x7) foram encontrados o programa encerra.

Perceba que eu pulei talvez a parte mais importante do programa que é como fazer!!

Entretanto por isso estou chamando um pseudo bruta force o programa vai e depois volta, eu não sei como fazer loops, muito menos com condiçoes assim.

Mas acredito que você pode conseguir, e eu gostaria muito de te ajudar a ganhar na lotomania, tenha paciencia com meu programa, licencie uma cópia pra mim, voce pode registrar o programa em seu nome como quiser, espero que não desista de tentar e conte comigo pra o que precisar, como disse sei muito pouco de programação e lógica de programação.

Acredito plenamente que este programa vai fazer muitos mais cartões do que qualquer outro soft faz, porque não conclui os cartões e se uma dezena não se encaixa ele parte pra outra.

Um abraço,

Paulo Henrique Gomes Ferreira.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!