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; }
/*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); } }
/* 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; } }
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; }
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; }