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

traduzir algoritmo de C++ para portugol


super slot

Pergunta

Boa noite pessoal

sou iniciante em C++ e estou tentando resolver um trabalho que o prof passou para fazer.

tenho que explicar o que o programa faz e traduzir para o portugol, mas estou com duvidas em alguns pontos e estou precisando da ajuda de todos.

segue o codigo:

class Calc{
      
      public:             
             qint32 cont,j,valorTemp,MaxResult;  // string declaraçoes 
             vector<bool> valorPreenchido;             
             QString temp;
             qint8 euristica,qtdCartas;
             
             Calc(qint8 serie,qint8 nivel,Tabuleiro ** tabuleiro){
                   cont = 0;
                   euristicaDeGeracaoDeFormula(serie,nivel);      
                   srand ( (unsigned)time(0) );                   
                   *tabuleiro = new Tabuleiro(1,qtdCartas);                                      
                   gerarFormulasPai(&(*tabuleiro));                   
             }
             
             ~Calc(){}
             
             void gerarFormulasPai(Tabuleiro ** tabuleiro){   \\ duvida não sei o que faz
                 gerarResultados(&(*tabuleiro));
                 qint8 caso;
                 for(int i = 0; i < (*tabuleiro)->getQtdCartas(); i++){
                     switch(euristica){
                        case 1: gerarFormulaSoma(&(*tabuleiro),i);
                                break;
                        
                        case 2: caso = rand() % 2;//  acho que a função rand divide as duasformulas para poder fazer o sorteio aleatorio e armazenar na string  qint8 euristica.
                                switch(caso){
                                    case 0: gerarFormulaSoma(&(*tabuleiro),i);break;
                                    case 1:    gerarFormulaSub(&(*tabuleiro),i);break;
                                }
                                               

                                               case 3: caso = rand() % 4; //  acho que a função rand divide as quatro formulas para poder fazer o sorteio aleatorio e armazenar na string  qint8 euristica
                                switch(caso){
                                    case 0: gerarFormulaSoma(&(*tabuleiro),i);break;
                                    case 1:    gerarFormulaSub(&(*tabuleiro),i);break;
                                    case 2: gerarFormulaMult(&(*tabuleiro),i);break;
                                    case 3: gerarFormulaDiv(&(*tabuleiro),i);break;
                                }
                                break;






                                                 case 4: caso = rand() % 5;  // a função rand divide as cinco formulas para poder fazer o sorteio aleatorio e armazenar na string  qint8 euristica.
                                switch(caso){
                                    case 0: gerarFormulaSoma(&(*tabuleiro),i);break;
                                    case 1:    gerarFormulaSub(&(*tabuleiro),i);break;
                                    case 2: gerarFormulaMult(&(*tabuleiro),i);break;
                                    case 3: gerarFormulaDiv(&(*tabuleiro),i);break;
                                    case 4: gerarFormulaPercent(&(*tabuleiro),i);break;                    
                                }
                                break;


                        
                 }
             }

             void gerarResultados(Tabuleiro ** tabuleiro){   \\ duvida não sei o que faz
                 qint8 i;
                 valorPreenchido = vector<bool>(MaxResult,false);
                 while(cont < (*tabuleiro)->getQtdCartas()/2){    // acho que aqui preenche de par em par   
                    i = rand() % (*tabuleiro)->getQtdCartas();
                    if( (*tabuleiro)->getResultadoCarta(i) == INT_MIN){
                         valorTemp = rand() % MaxResult;                         
                         while(valorPreenchido.at(valorTemp) == true){valorTemp = rand() % MaxResult;}
                         valorPreenchido.at(valorTemp) = true;
                         (*tabuleiro)->setResultadoCarta(i, valorTemp);
                         j = rand() % (*tabuleiro)->getQtdCartas();
                         while((*tabuleiro)->getResultadoCarta(j) != INT_MIN ){
                               j = rand() % (*tabuleiro)->getQtdCartas();
                         }
                         (*tabuleiro)->setResultadoCarta(j, valorTemp);
                         cont++;       
                    }
                 }                 
             }
             
             void gerarFormulaSoma(Tabuleiro ** tabuleiro, qint8 i){    \\ duvida não sei o que faz                          
                      if ((*tabuleiro)->getResultadoCarta(i) > 0) valorTemp = rand() % (*tabuleiro)->getResultadoCarta(i);
                      else valorTemp = 0;                   
                      temp = QString::number(valorTemp) + " + " + QString::number((*tabuleiro)->getResultadoCarta(i) - valorTemp) + " = "; 
                      (*tabuleiro)->setFormulaCarta(i,temp);                
             }
             
            
                 void gerarFormulaDiv(Tabuleiro ** tabuleiro, qint8 i){     \\ duvida não sei o que faz         
                  vector<qint32> quocientes;                   
                    for(j = 1; j < (*tabuleiro)->getResultadoCarta(i)+1; j++){
                          if( (*tabuleiro)->getResultadoCarta(i) % j == 0) quocientes.push_back(j);                              
                    }                        
                    if(!quocientes.empty()){ 
                          valorTemp = rand() % quocientes.size();                       
                          temp = QString::number((*tabuleiro)->getResultadoCarta(i) * quocientes[valorTemp]) 
                                                + " / " + 
                                 QString::number(quocientes[valorTemp]) + " = ";                          
                    }
                    else temp = "0 * 0 = ";
                    
                    (*tabuleiro)->setFormulaCarta(i,temp);
                    
                    quocientes.clear();                 
             }
             
             void gerarFormulaPercent(Tabuleiro ** tabuleiro, qint8 i){    \\ duvida não sei o que faz                        
                      if ((*tabuleiro)->getResultadoCarta(i) > 0) valorTemp = rand() % (*tabuleiro)->getResultadoCarta(i);
                      else valorTemp = 0;                   
                      temp = QString::number(valorTemp) + " + " + QString::number((*tabuleiro)->getResultadoCarta(i) - valorTemp) + " = "; 
                      (*tabuleiro)->setFormulaCarta(i,temp);       
                        
             }
             
             void euristicaDeGeracaoDeFormula(qint8 serie, qint8 nivel){    //  acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 1             
                 switch(serie){
                    case 1: switch(nivel){
                                case 1:
                                case 2:    euristica = 1; qtdCartas = 4;MaxResult = 5;
                                        break;
                                case 3:
                                case 4: euristica = 2; qtdCartas = 8;MaxResult = 5;
                                        break;
                                case 5: 
                                case 6:
                                case 7: euristica = 2; qtdCartas = 16;MaxResult = 10;
                                        break;
                            }                            
                            
                                        case 2: switch(nivel){   //   acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 2
                                

                                                                case 1:
                                case 2:    euristica = 5; qtdCartas = 4;MaxResult = 100;
                                        break;
                                case 3:
                                case 4: euristica = 5; qtdCartas = 8;MaxResult = 200;
                                        break;
                                case 5: 
                                case 6:
                                case 7: euristica = 5; qtdCartas = 16;MaxResult = 500;
                                        break;
                            }
                            break;
                    
                    case 3: switch(nivel){    //    acho que pega os dados da euristica qint 8 e distribui nestes 7 niveis de dificuldades do jogo 3
                                




                                                                case 1:
                                case 2:    euristica = 5; qtdCartas = 4;MaxResult = 200;
                                        break;
                                case 3:
                                case 4: euristica = 6; qtdCartas = 8;MaxResult = 100;
                                        break;
                                case 5: 
                                case 6:
                                case 7: euristica = 6; qtdCartas = 16;MaxResult = 200;
                                        break;
                            }
                            break;
                 }
                 
             }                      
                 }
                 
             }                      
};

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,2k
    • Posts
      652k
×
×
  • Criar Novo...