Ejemplo n.º 1
11
int main(int argc, char *argv[])
{
    clock_t start, end, elapsed;
    FILE *entrada, *entrada2, *copia, *consulta, *saida;
    Words *words=NULL, *aux=NULL;
    char linha[1024],linha2[1024];
    char delimiters[] = " .,;:!?'\n'-*";
    char *token=NULL, *cp, c, n,aspas=(char)39,tab=(char)9;
    int i=0, ok=0,okay=0;



    if (argc != 5)         //numero de parametros corretos
    {
        printf("Numero incorreto de parametros.\n Sintaxe: copia arq_origem arq_destino\n");
        return 1;
    }

    entrada = fopen(argv[1], "r");       //abre o primeiro arquivo (arquivo de entrada)
    copia = fopen("facil.txt", "w");     //arquivo auxiliar
    consulta = fopen(argv[2], "r");      //abre o arquivo de consulta
    saida = fopen (argv[3], "w");        //abre ou cria ou arquivo de saida

    if(!entrada)                         //caso arquivos não existam
    {
        printf("ERRO\n");
        return 1;
    }
    if(!consulta)
    {
        printf("ERRO\n");
        return 1;
    }

    while(!feof(entrada))                //cria arquivo auxiliar a ser usado sem pontos, e caracteres separadores especiais
    {
        c=fgetc(entrada);
        if((c==',')||(c==':')||(c==';')||(c=='.')||(c=='-')||(c==EOF)||(c=='!')||(c=='?')||(c=='"')||(c=='*')||(c==aspas)||(c=='(')||(c==')')||(c=='_') || c==tab)
            c=' ';

        fputc(tolower(c),copia);
    }

    fclose(entrada);
    fclose(copia);


    entrada = fopen("facil.txt", "r");
    entrada2 = fopen("facil.txt", "r");

    if(!entrada)
        printf("ERRO\n");

    ///AQUI COLOCA OS ELEMENTOS NA ABP
    else
    {
        while(fgets(linha,1024, entrada))
        {

            stolower(linha);   //função que transforma tudo para minusculo

            cp = strdup(linha);

            token = strtok (cp, delimiters);    //pega tokens (usa cp como auxiliar para caso o ponteiro fique iinvalido em algum momento)
            while(token!=NULL)
            {
                words = abp(words,token);          //insere na abp
                token = strtok (NULL, delimiters); //pega proximo token

            }
        }
    }
    words = abp(words, "(NULL)");  //insere a palavra "(NULL)" na abp, para ser apontada pela ultima palavra do texto


    aux = words;                   //ponteiro aux fixo no inicio da ABP
    fseek(entrada, 0, SEEK_SET);
    n=fscanf(entrada2,"%s",linha2);//inicia o arquivo auxiliar uma palavra na frente


    ///AQUI COLOCA OS ELEMTTOS NO CAMPO LISTA DO NÓ DA ABP
    while(n != EOF)
    {
        words = aux;

        n=fscanf(entrada2,"%s",linha2);
        c=fscanf(entrada,"%s",linha);

        if(n == EOF)
        {
            words=busca(words,linha);                               //caso seja a ultima palavra do texto, busca ela na árvore
            words->vizinhos=insere_lista(words->vizinhos,"(NULL)"); //insere ela apontando também para ("NULL")
            break;
        }

        words=busca(words,linha);                             //busca a palavra no texto

        words->vizinhos=insere_lista(words->vizinhos,linha2); //insere ela apontando para sua sucessora
    }

   // printf("iuti");
    fclose(entrada2);
    fclose(entrada);
    moda(aux,aux);  //calcula a medida estatística para cada elemento da lista
    ordena(aux);    //ordena a lista pelo valor de sua "moda"

    ///AQUI FAZ A BUSCA E GERA SAIDA
    start=clock();
    fseek(consulta,0,SEEK_SET);
    while(fgets(linha,1023,consulta))
    {

        words=aux;                     //volta para o inicio da árvore
        strcpy(linha, strtok(linha,delimiters)); //paga pegar a linha correta
        words=busca(words,linha);      //vai para o lugar da arvore daquela palavra

        if(words!=NULL)
        {
            fputs("Consulta: ", saida);
            fputs(words->id, saida);
            fputs("\n", saida);

            i=0;
            while(words->vizinhos!=NULL && i<atoi(argv[4]))
            {
                fprintf(saida,"Sugestao: %s",words->vizinhos->id);  //printa tudo bonitinho
                okay=strlen(words->vizinhos->id);
                for(ok=0; ok<30-okay; ok++)
                    fprintf(saida," ");
                fprintf(saida,"(%lf)\n",words->vizinhos->moda);
                words->vizinhos = words->vizinhos->prox;
                i++;
            }
            fputs("\n", saida);

        }
    }

    fputs("\n", saida);
    end=clock(); //lê o tempo final
    elapsed = 1000 * (end - start) / (CLOCKS_PER_SEC);
    fprintf(saida,"Gasto: %ld ms", elapsed); //mostra o tempo final em ms

    fclose(consulta);
    fclose(saida);

    //Desenha(aux,1);

    deltree(aux);

    return 0;
}
Ejemplo n.º 2
0
/*Calcula a relação estatística para cada um dos elementos da lista*/
void moda(Words* a,Words* aux)
{
    if(a!= NULL)
    {
        calcula(a->vizinhos,a->freq, aux);
        moda(a->esq, aux);
        moda(a->dir,aux);
    }
}
Ejemplo n.º 3
0
/* Initialize array x[N] with harmonic H */
static void init(COMPLEX *x, int N, int H)
{
    float TWOPI = 6.2831853071795864769f, phase;
    int n;

    for (n = 0; n < N; n++)
    {
        phase  = moda(n,H,N) / N;
        ((float*)&x[n])[0] = cosf( TWOPI * phase ) / N;
        ((float*)&x[n])[1] = sinf( TWOPI * phase ) / N;
    }
}
Ejemplo n.º 4
0
main () {
 clrscr();
int a[]={8,7,8,8,2,1};
int f[10]={0};

void promedio (int []);//Prototipo
void mediana (int []);//Prototipo
void moda (int [],int []);//Prototipo

promedio (a);
mediana (a);
moda (f,a);

getch();
}
/// Testbench
int sc_main(int argc, char *argv[]) {
  
  GS_INIT_STANDARD_GREENCONTROL;
  
  {
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "report_message_file1.txt"; 
    cnf.msgconfig_starttime_en = true;
    cnf.msgconfig_starttime = sc_core::sc_time(13, sc_core::SC_NS);
    cnf.msgconfig_endtime = sc_core::sc_time(23, sc_core::SC_NS);
    cnf.msgconfig_dbglvl = gs::report::dbg_msg_L9;
    cnf.msgconfig_printfile = true;
    cnf.msgconfig_module_id.push_back("ModuleA"); // ModuleA
    cnf.msgconfig_module_id.push_back(""); // top-level
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  {
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "stdout"; 
    cnf.msgconfig_dbglvl = gs::report::dbg_msg_L6;
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  {
    // system message output with new cnf object
    gs::report::msg_configuration cnf;
    cnf.msgconfig_name = "SC_REPORT_INFO"; 
    cnf.msgconfig_info_en = true;
    gs::report::MessageStreamer::apply_configuration(cnf);
  }
  
  
  ModuleA moda("ModuleA");
  ModuleA modz("ModuleZ");
  
  sc_core::sc_start();
    
  return EXIT_SUCCESS; 
  
}
Ejemplo n.º 6
0
 SEXP modaC(SEXP asaveP, SEXP aP, SEXP insampP) {
     return moda(asaveP, aP, insampP);
 }
int main() {
    printf("%s\n", sillaba("casa operosa"));
    printf("%s\n", moda("casa operosa"));
    return 0;
}