Ir para conteúdo
Fórum Script Brasil
  • 0

Duvidas em Algoritmo Dupla Sena


Isaac Falcao

Pergunta

estou com duvidas em fazer um algoritmo sobre a dupla sena.

o exercício diz o seguinte

escreva um programa que simule a geração de 5mil cartões da dupla sena com jogo de 7 numeros (numeros aleatórios compreendido de 1 a 50)

o programa deve executar o sorteio do jogo indicando os cartões premiados com 4 5 ou 6 dezenas (1 a 5mil cartões).

deve conter os seguintes métodos

método para gerar um cartão

método para gerar crescentemente o cartão

método para gerar a matriz com 5mil cartões

método para gerar o sorteio

método para conferir os ganhadores.

Queria uma ajuda para poder desenvolver este programa, pois estou aprendendo e queria uma ajuda.

se alguém poder me ajudar fico grato.

ainda tentei fazer mas não saiu muito bom o programa não sai nada. na hora de executar aparece apenas para aperta enter para sair.

fiz com o dev-c++

CODE

#include<iostream>
using namespace std;
int main(){
    
int l=5000,c=9,g=0;
int m[l][c],s[8];
srand(time(NULL));
for (int i=0;i<l;i++) {
    for (int j=0;j<8;j++) {
     m[i][j]=rand()%50+1;
        }
    }
    for (int i=0;i<8;i++){
        s[i]=rand()%50+1;
        }
for(int i=0;i<l;i++){
         for( int k=0;k<8;k++) {
              if (m[i][k]==s[k]){
              g==g+1;
              }
         }
         m[i][8]=g;
}
    for (int i=0;i<l;i++) {
            if (m[i][8]>=4) {
        cout<<"A Cartela de numero"<<i+1<<"acertou"<<m[i][8]<<"numeros"<<'\n';
        }
}
system("pause");
}

meu pensamento foi o seguinte fazer uma matriz com 5mil linhas e 8 colunas.

nas 7 colunas de cada linha deixaria os numeros de cada cartão e a oitava coluna deixei em 0 para futuramente armazenar o numeros acertados em relação ao sorteio. e mostraria as cartelas que acertaram mais que quatro numeros. <=4

tentei fazer mas não funcionou queria uma ajuda e se possível a implementação correta deste exercício.

Meu Algoritmo é Fail

As cartelas do jogo podem dar numeros iguais

ele só esta mostrando as cartelas de 4700 a 5000

ta mostrando numeros muito grande ao invés de mostra numeros somente quantos numeros acertou e qual cartela acertou

queria que alguém pudesse resolver isso para mim ou me ajudar ou algo do tipo.

É a Segunda Vez que posto e ainda não consegui resolver.

Obrigado

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
estou com duvidas em fazer um algoritmo sobre a dupla sena.

o exercício diz o seguinte

escreva um programa que simule a geração de 5mil cartões da dupla sena com jogo de 7 numeros (numeros aleatórios compreendido de 1 a 50)

o programa deve executar o sorteio do jogo indicando os cartões premiados com 4 5 ou 6 dezenas (1 a 5mil cartões).

deve conter os seguintes métodos

método para gerar um cartão

método para gerar crescentemente o cartão

método para gerar a matriz com 5mil cartões

método para gerar o sorteio

método para conferir os ganhadores.

Queria uma ajuda para poder desenvolver este programa, pois estou aprendendo e queria uma ajuda.

se alguém poder me ajudar fico grato.

ainda tentei fazer mas não saiu muito bom o programa não sai nada. na hora de executar aparece apenas para aperta enter para sair.

fiz com o dev-c++

CODE

#include<iostream>
using namespace std;
int main(){
    
int l=5000,c=9,g=0;
int m[l][c],s[8];
srand(time(NULL));
for (int i=0;i<l;i++) {
    for (int j=0;j<8;j++) {
     m[i][j]=rand()%50+1;
        }
    }
    for (int i=0;i<8;i++){
        s[i]=rand()%50+1;
        }
for(int i=0;i<l;i++){
         for( int k=0;k<8;k++) {
              if (m[i][k]==s[k]){
              g==g+1;
              }
         }
         m[i][8]=g;
}
    for (int i=0;i<l;i++) {
            if (m[i][8]>=4) {
        cout<<"A Cartela de numero"<<i+1<<"acertou"<<m[i][8]<<"numeros"<<'\n';
        }
}
system("pause");
}
meu pensamento foi o seguinte fazer uma matriz com 5mil linhas e 8 colunas. nas 7 colunas de cada linha deixaria os numeros de cada cartão e a oitava coluna deixei em 0 para futuramente armazenar o numeros acertados em relação ao sorteio. e mostraria as cartelas que acertaram mais que quatro numeros. <=4 tentei fazer mas não funcionou queria uma ajuda e se possível a implementação correta deste exercício. Meu Algoritmo é Fail As cartelas do jogo podem dar numeros iguais ele só esta mostrando as cartelas de 4700 a 5000 ta mostrando numeros muito grande ao invés de mostra numeros somente quantos numeros acertou e qual cartela acertou queria que alguém pudesse resolver isso para mim ou me ajudar ou algo do tipo. É a Segunda Vez que posto e ainda não consegui resolver. Obrigado
Você nem alterou o que o Willian te indicou. você deve usar apenas um = para que o g recebe o valor d g+1
ele só esta mostrando as cartelas de 4700 a 5000
Isto é do próprio C ele tem um limite para mostrar na tela. Você pode salvar este arquivo em txt e depois abrir e ver Eu fiz um programa parecido com o seu mais foi pra LotoFacil onde ele imprime todos os cartões (caso você queria). mais tem uma funcao que retira os cartoes que tem numeros em sequencia, onde você pode limitar as sequencia. Mais o programa é em C
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
  int y, r1, r2, pts;
  int n[15]; //matriz onde fica os numeros possiveis para marcar os cartoes
  int r[15] = { 1, 2, 4, 6, 7, 12, 13, 14, 17, 18, 20, 22, 23, 24, 25};    // resultado para conferir
  int c = 1, c1 = 1, i,  pts15 = 0, pts14 = 0, pts13 = 0, pts12 = 0 , pts11 = 0; //alguns contadores e resultados com 15, 14, 13, 12, 11 pontos
  
      for (n[0 ]= 1    ; n[0 ]<12; n[0 ]++)
       for (n[1 ]= n[0 ]+1; n[1 ]<13; n[1 ]++)
        for (n[2 ]= n[1 ]+1; n[2 ]<14; n[2 ]++)
         for (n[3 ]= n[2 ]+1; n[3 ]<15; n[3 ]++)
          for (n[4 ]= n[3 ]+1; n[4 ]<16; n[4 ]++)
           for (n[5 ]= n[4 ]+1; n[5 ]<17; n[5 ]++)
            for (n[6 ]= n[5 ]+1; n[6 ]<18; n[6 ]++)
             for (n[7 ]= n[6 ]+1; n[7 ]<19; n[7 ]++)
              for (n[8 ]= n[7 ]+1; n[8 ]<20; n[8 ]++)
               for (n[9 ]= n[8 ]+1; n[9 ]<21; n[9 ]++)
                for (n[10]= n[9 ]+1; n[10]<22; n[10]++)
                 for (n[11]= n[10]+1; n[11]<23; n[11]++)
                  for (n[12]= n[11]+1; n[12]<24; n[12]++)
                   for (n[13]= n[12]+1; n[13]<25; n[13]++)
                    for (n[14]= n[13]+1; n[14]<26; n[14]++)
      {
          y = verificaSequencia(n);
          if (y == 1){
                           for (i = 0; i < 15; i++) printf("%d-", n[i]); 
                           printf(" [%d]\n", c);
                           c++;  
                          
                          pts = 0;
                          
                          for (r1 = 0; r1 < 15; r1++){
                              for(r2 = 0; r2 < 15; r2++){
                                     if (n[r1] == r[r2]) pts++;
                              }
                          }
                          if ( pts == 15 ) pts15++;
                          if ( pts == 14 ) pts14++;
                          if ( pts == 13 ) pts13++;
                          if ( pts == 12 ) pts12++;
                          if ( pts == 11 ) pts11++;  
             }
          
      }
      
      printf("15 [%d] - 14 [%d] - 13 [%d] - 12 [%d] - 11 [%d]\n", pts15, pts14, pts13, pts12, pts11);
      printf("Premio Total %d\n", pts=(pts11*2.5+pts12*5+pts13*12.5));

  system("PAUSE");    
  return 0;
}
//Verificador de sequencia de numero
/*
Verifica se o cartao existe um sequencia de numero 
Ex.: v = 3 se o cartao tiver uma sequencia de 3 numeros ele não vai ser impresso
[1 - 2 - 3] sequencia não imprime
[1 - 2 - 4] não tem sequencia cartao impresso na tela
*/
int verificaSequencia(int n[]){
    
    int v = 3, qtdverificacao, j, i = 0, seq, x;
    
    qtdverificacao = (15 - v)+1;
    
    x = (i+v-1);
    
    for (j = 0; j < qtdverificacao; j++){
        seq = 0;
        for (i; i < x; i++){
            if (n[i+1] == n[i]+1)seq++;
        }
        
        if(seq == v-1) return 0;
        
        i = j+1;
        x++;
        //system("Pause");
    }
    
    return 1;
}

Espero q ajude.

Qualquer duvida sobre o codigo pode postar ai que lhe explico.

Editado por jrsilvamg
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...