int main (int argc, char *argv[]) { precint *precincts; /* Vector de precintos */ long np; /* Numero de elementos del vector */ long i, contup, contdown; double sum, avg; /* Comprobamos el número de parametros */ if (argc!=2) { printf("\nUso: %s <filename_precincts_list_in>.",argv[0]); printf("\nfilename_precincts_list = Precincts list IN.\n\n"); exit(0); } /* Calculamos el numero de precintos que contiene la imagen */ np = (MAXROWS/32)*(MAXCOLS/32); /* Reservamos memoria dinámica para el vector de precintos */ precincts = (precint *) malloc (np*sizeof(precint)); /* Leemos la lista de precintos */ readPrecinctsToFile(precincts,&np,argv[1]); sum = 0; for(i=0;i<np;i++) { sum = sum + precincts[i].countDifferences; //printf("\nMSE: %lf",precincts[i].countDifferences); } avg = sum / np; contup = 0; contdown = 0; for(i=0;i<np;i++) { if (precincts[i].countDifferences > (precincts[0].countDifferences/2)) { contup = contup + 1; } else { contdown = contdown + 1; } } printf("\nSum: %lf",sum); printf("\nCont: %ld",np); printf("\nAvg: %lf",avg); printf("\nContUp: %ld",contup); printf("\nContDown: %ld\n",contdown); return 0; }
int main (int argc, char *argv[]) { precint *precincts; /* Vector de precintos */ precint *precinctsFiltrados; /* Vector de precintos filtrados */ long np; /* Numero de elementos del vector */ long npFiltrados; /* Numero de elementos del vector (filtrados) */ long WprecinctSize, HprecinctSize; /* Tamaño del precinto */ long i; double threshold; double max; /* Comprobamos el número de parametros */ if (argc!=6) { printf("\nUso: %s <filename_precincts_list_in DAT> <W_precinct_size> <H_precinct_size> <threshold> <filename_precincts_filtrados TXT>.\n\n",argv[0]); exit(1); } /* Validamos el valor del tamaño de precinto */ WprecinctSize = atoi(argv[2]); HprecinctSize = atoi(argv[3]); threshold = atof(argv[4]); /* Calculamos el numero de precintos que contiene la imagen */ np = (MAXROWS/HprecinctSize)*(MAXCOLS/WprecinctSize); /* Reservamos memoria dinámica para el vector de precintos */ precincts = (precint *) malloc (np*sizeof(precint)); precinctsFiltrados = (precint *) malloc (np*sizeof(precint)); /* Leemos la lista de precintos */ readPrecinctsToFile(precincts,&np,argv[1]); /* Recorremos el vector de precintos */ max = -1; npFiltrados = 0; for(i=0;i<np;i++) { if (precincts[i].countDifferences >= threshold) { precinctsFiltrados[npFiltrados] = precincts[i]; npFiltrados++; } /* Calculamos el MSE máximo */ if (precincts[i].countDifferences > max) { max = precincts[i].countDifferences; } } printf("\nNum. Precincts: %ld\n",npFiltrados); printf("MSE Máximo: %lf\n",max); if (npFiltrados==0) { printf("\nNo se puede crear el archivo de salida porque no hay precintos filtrados.\n"); printf("MSE Máximo: %lf \t Threshold: %lf.\n\n",max, threshold); exit(1); } /* Guardamos la nueva lista de precintos en disco */ writePrecinctsToFileTXT(precinctsFiltrados,0,npFiltrados,argv[5]); return 0; }
int main (int argc, char *argv[]) { precint *precincts; /* Vector de precintos */ precint *precinctsFiltrados; /* Vector de precintos filtrados */ long np; /* Numero de elementos del vector */ long npFiltrados; /* Numero de elementos del vector (filtrados) */ long WprecinctSize, HprecinctSize; /* Tamaño del precinto */ long i; double mediana, suma, media, min, max; /* Comprobamos el número de parametros */ if (argc!=4) { printf("\nUso: %s <filename_precincts_list_in DAT> <W_precinct_size> <H_precinct_size>.\n\n",argv[0]); exit(1); } /* Validamos el valor del tamaño de precinto */ WprecinctSize = atoi(argv[2]); HprecinctSize = atoi(argv[3]); /* Calculamos el numero de precintos que contiene la imagen */ np = (MAXROWS/HprecinctSize)*(MAXCOLS/WprecinctSize); /* Reservamos memoria dinámica para el vector de precintos */ precincts = (precint *) malloc (np*sizeof(precint)); precinctsFiltrados = (precint *) malloc (np*sizeof(precint)); /* Leemos la lista de precintos */ readPrecinctsToFile(precincts,&np,argv[1]); /* Recorremos el vector de precintos */ npFiltrados = 0; for(i=0;i<np;i++) { if (precincts[i].countDifferences > 0) { precinctsFiltrados[npFiltrados] = precincts[i]; npFiltrados++; } } if (npFiltrados==0) { mediana = -1; media = -1; min = -1; max = -1; } else { /* Calculamos la media, min y max */ suma = precinctsFiltrados[0].countDifferences; min = precinctsFiltrados[0].countDifferences; max = precinctsFiltrados[0].countDifferences; for(i=1;i<npFiltrados;i++) { if (precinctsFiltrados[i].countDifferences > max) { max = precinctsFiltrados[i].countDifferences; } if (precinctsFiltrados[i].countDifferences < min) { min = precinctsFiltrados[i].countDifferences; } suma = suma + precinctsFiltrados[i].countDifferences; } media = suma/npFiltrados; /* Calculamos la mediana */ if (npFiltrados%2!=0) { mediana = precinctsFiltrados[npFiltrados/2].countDifferences; } else { mediana = (precinctsFiltrados[npFiltrados/2].countDifferences + precinctsFiltrados[(npFiltrados/2)-1].countDifferences)/2; } } printf("\nNum. Precincts: %ld\n",npFiltrados); printf("[Threshold] Mediana: %lf\n",mediana); printf("[Threshold] Media: %lf\n",media); printf("[Threshold] Min: %lf\n",min); printf("[Threshold] Max: %lf\n",max); return 0; }
int main (int argc, char *argv[]) { precint *precinctsUp; precint *precinctsDown; precint *precinctsOut; long npUp; long npDown; long i, j; int readOK, writeOK; if (argc!=4) { printf("\nUso: %s <in_filename_precincts_list_A_dat> <in_filename_precincts_list_B_dat> <out_filename_precincts_dat>.\n\n",argv[0]); exit(0); } /* Reservamos memoria dinámica para los vectores de precintos */ precinctsUp = (precint *) malloc (MAX*sizeof(precint)); precinctsDown = (precint *) malloc (MAX*sizeof(precint)); precinctsOut = (precint *) malloc (2*MAX*sizeof(precint)); readOK = readPrecinctsToFile(precinctsUp, &npUp, argv[1]); if (!readOK) { printf("\nError al abrir el archivo: %s.\n",argv[1]); exit(1); } readOK = readPrecinctsToFile(precinctsDown, &npDown, argv[2]); if (!readOK) { printf("\nError al abrir el archivo: %s.\n",argv[2]); exit(1); } for(i=0;i<npUp;i++) { precinctsOut[i] = precinctsUp[i]; } for(j=0;j<npDown;j++) { precinctsOut[i] = precinctsDown[j]; i++; } OrdenarSeleccionDirecta(precinctsOut, i); writeOK = writePrecinctsToFile(precinctsOut, i, argv[3]); if (!writeOK) { printf("\nError al abrir el archivo: %s.\n",argv[3]); exit(1); } else { printf("\nEl archivo: %s se creó con éxito.\n",argv[3]); } return 0; }