Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <float.h>
- #include <math.h>
- #define STRLEN 1024
- #define FILEDIR "./filetxt/"
- #define FILEDIR_BIN "./filebin/"
- #define FILENAME "ciccio"
- #define NUM_IN 2
- #define NUM_OUT 3
- #define PERC 80.0
- #define MIN(A,B) (A<B)?A:B
- #define MAX(A,B) (A<B)?B:A
- typedef int* pint;
- typedef float* pfloat;
- typedef FILE* pfile;
- typedef FILE** ppfile;
- int main(void)
- {
- ppfile ppfr,ppfw;
- unsigned nval,i,prova;
- char dati[STRLEN],s[STRLEN];
- float temp,sum,sumq,var,min1,max1,min2,max2,c,l;
- if ((ppfr=(ppfile)malloc(sizeof(pfile)*NUM_IN))==NULL) goto err_mem;
- if ((ppfw=(ppfile)malloc(sizeof(pfile)*NUM_OUT))==NULL) goto err_mem;
- for (i=nval=prova=0;i<NUM_IN;i++) /*apre file in lettura e legge il primo numero. lo somma a n_val che indica il numero totale di dati*/
- {
- sprintf(dati,"%s%s.%d.bin",FILEDIR_BIN,FILENAME,i);
- if ((ppfr[i]=fopen(dati,"rb"))==NULL) goto err_file;
- fread(&prova,sizeof(unsigned),1,ppfr[i]);
- nval+=prova;
- printf("File %u aperto in lettura\nval=%u, prova=%u\n",i,nval,prova);
- }
- for (i=0;i<NUM_OUT;i++)
- {
- sprintf(dati,"%s%s.%d.txt",FILEDIR,FILENAME,i);
- if ((ppfw[i]=fopen(dati,"w"))==NULL) goto err_file;
- printf("File %u aperto in scrittura\n",i);
- }
- printf("Misure:\n");
- for (i=0,sum=0,sumq=0,temp=0,min1=FLT_MAX,max1=FLT_MIN;i<nval;i++)
- {
- fread(&temp,sizeof(float),1,ppfr[i%NUM_IN]);
- sum+=temp;
- sumq+=(temp*temp);
- min1=MIN(temp,min1);
- max1=MAX(temp,max1);
- fprintf(ppfw[i%NUM_OUT],"%.1f",temp);
- printf("\t%u) %.1f debug, sum=%f, sumq=%f\n",i,temp,sum,sumq);
- }
- sum/=nval;
- var=(sumq/nval)-(sum*sum);
- c=(max1+min1)/2;
- printf("c %f\n",c);
- l=(max1-c)*(PERC/100);
- max2=c+l;
- min2=c-l;
- printf("Media: %.5f\nDevst: %.5f\nIntervallo 1 [%.2f,%.2f]\nIntervallo ridotto [%.2f,%.2f]\n",sum,sqrt(var),min1,max1,min2,max2);
- return 0;
- err_mem:
- printf("ERRORE: Memoria insufficiente.\n");
- return 1;
- err_file:
- printf("ERRORE: File non trovato\n");
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment