Example #1
0
/*Atribui o valor do argumento ao parametro (versao para int)*/
void setParametro(char *parametro, int argumento) {
    int entrada;

    entrada = converteString(parametro); 

   if (entrada == converteString("NUM_LINES"))
        numLines = argumento;

    else if (entrada == converteString("NUM_COLUMNS"))
        numColumns = argumento;

    else if (entrada == converteString("NUM_ITERATIONS"))
        numIterations = argumento;

    else if  (entrada == converteString("LEFT_MARGIN_LIMIT"))
        leftMargin = argumento;

    else if (entrada == converteString("RIGHT_MARGIN_LIMIT"))
        rightMargin = argumento;

    else if (entrada == converteString("NSEED"))
        seed = argumento;

    else if (entrada == converteString("REFRESH_RATE"))
        refreshRate = argumento;

    else if (entrada == converteString("MIN_ISLE_DIST"))
        isleDist = argumento;

    else if (entrada == converteString("REPORT_DATA"))
        reportData = argumento;
    
    else
        printf("%s nao e' um argumento valido.", parametro);
}
Example #2
0
// Método que verifica se um string está na trie, retorna 1 caso estejae -1 caso contrário
int Trie::buscaString(string word)
{
    int i = 0;
    Nodo* Aux;																									// Nodo auxiliar
    Aux = raiz;																									// que recebe a raiz da trie

    word = converteString(word);																				// Converte todas as letras para maiúsculas
    while(word[i] != '\0')																						// enquanto não é o fim da string continua procurando
    {
        Aux = Aux->getNodo(word[i]);																			// auxiliar recebe o nodo pra onde aponta o caracter da string

        if (Aux != NULL)																						// Se esse nodo não for nulo é porque até o momento existe a string então tem que seguir procurando
        {
            if ( word[i] == '$')																				// Caso chegou no caracter de fim de string é porque a string está na trie
            {
                return 1;																						// Então retorna 1
            }																									// Se nao for caracter de fim de string apenas segue pro proximo caracter
        }
        else																									// Se o nodo for nulo então é porque não tem o caracter q ta procurando logo a string toda nao da na trie
        {
            return -1;																							// retorna -1
        }
        i++;
    }
}
Example #3
0
// Método que verificar quais são as maiores substrings palíndromas dentro de uma string
void Trie::verificaPalindroma(string word)
{
    word = converteString(word);																				// 1º Converte todas as letras para maiúsculas
    this->criarTrieSufixos(word);																				// 2º Cria a trie de sufixos daquela palavra
    string aux2, aux;																							// strings auxiliares
    // aux - string invertida que é percorrida sempre diminuindo a letra do inicio
    // aux2 - string que recebe a maior substring palimdroma encontra a partir de aux

    aux = inverteString(word);																					// aux recebe a string invertida
    aux.erase(aux.begin());																						// remover o 1º caracter que quando invertido é o '$'
    int tamMaiorPalindroma = 0;																					// tamanho da maior palindroma encontrada
    int i = 0;

    while (aux.compare("$") > 0)																				// Enquanto a string invertida não é '$'
    {

        if (aux.size() >= tamMaiorPalindroma)																	// Se o tamanho da string for menor que a maior palindroma não tem porque seguir procurando
        {   // já que por mais que encontre outra palindroma não tem como ela ser maior ou igual

            aux2 = this->buscaMaiorString(aux);																	// aux2 recebe a maior string encontrada a partir de aux


            if ((aux2.size() == tamMaiorPalindroma) && (aux2.compare(inverteString(aux2)) == 0))				// Se o tamanho for igual e realmente for uma palíndroma
            {   // Então insere na trie de palindromas
                aux2+='$';
                palindromas->insereString(aux2);
            }


            if ((aux2.size() > tamMaiorPalindroma) && (aux2.compare(inverteString(aux2)) == 0))					// Se o tamanho por maior e for realmente uma palíndroma
            {   // Então apaga a trie anterior, cria uma nova e insere a string nela
                free(palindromas);

                palindromas = new Trie();

                aux2+='$';
                palindromas->insereString(aux2);

                tamMaiorPalindroma = aux2.size()-1;															// Nese caso o tamanho da maior palíndroma passa a ser o da string atual
            }
            aux.erase(aux.begin());																				// Remove o 1º caracter da string e recomeça a busca
        }
        // Caso o tamanho da string for maior que a string restante pode sair do laço
        else
        {
            break;
        }
    }

    // Se o tamanho da maior palíndroma for igual a 1 então é porque só encontrou letras separadas como palíndromas nesse caso não encontrou nenhuma palíndroma de verdade
    if (tamMaiorPalindroma == 0)
    {
        cout<< "Não possui nenhuma palindroma"<< endl;
    }
    // Senão imprime a trie de palíndromas
    else
    {
        palindromas->imprimeTrie();
    }
}
Example #4
0
string Card::toString(){
    string carta;
    string resultadoNaipe;
    switch(this->naipe){
        case 0:
            resultadoNaipe = "H";
            break;
        case 1:
            resultadoNaipe = "D";
            break;
        case 2:
            resultadoNaipe = "S";
            break;
        case 3:
            resultadoNaipe = "C";
            break;
        default:
            cout << "Numero invalido!" << endl;
    }
    if(this->valor == 0){
        carta = "NULL";
        return carta;
    }
    carta = resultadoNaipe + converteString(this->valor);
    return carta;
}
Example #5
0
/*Atribui o valor do argumento ao parametro (versao para char)*/
void setParametroc(char* parametro, char argumento) {
    int entrada;

    entrada = converteString(parametro); 

    if (entrada == converteString("DEF_WATER"))
        water = argumento;

    else if (entrada == converteString("DEF_ISLE"))
        isle = argumento;

    else if (entrada == converteString("DEF_EARTH"))
        earth = argumento;

    else
        printf("%s nao e' um argumento valido.", parametro);
}
Example #6
0
/*Atribui o valor do argumento ao parametro (versao para float)*/
void setParametrof(char *parametro, float argumento) {
    int entrada;

    entrada = converteString(parametro); 

    if (entrada == converteString("H20_MAX_SPEED"))
        waterSpeed = argumento;

    else if (entrada == converteString("PROB_GEN_ISLE"))
        isleProb = argumento;

    else if (entrada == converteString("RIVER_FLUX"))
        riverFlux = argumento;

    else
        printf("%s nao e' um argumento valido.", parametro);
}
Example #7
0
// Método que insere um string na trie
void Trie::insereString(string word)
{
    int i = 0;
    Nodo* Aux;																									// Nodo auxiliar
    Aux = raiz;																									// que recebe a raiz da trie
    word = converteString(word);																				// Converte todas as letras para maiusculas

    while(word[i] != '\0')																						// enquanto nao é o fim da string vai adicionando
    {
        if (Aux->getNodo(word[i]) == NULL)																		// Se o nodo for nulo é porque ainda não foi inserido um prefixo igual
        {
            Aux->insere(word[i]);																				// Nesse caso insere um nodo com este prefixo
        }
        Aux = Aux->getNodo(word[i]);																			// E o nodo auxiliar desce um nodo na hierarquia da trie
        i++;
    }
}