Advertisement
samuelo123

ellisse

May 13th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.02 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<stdlib.h>
  3. #include<math.h>
  4.  
  5. #define NOMEFILE "dati.bin"
  6.  
  7. typedef FILE* pfile;
  8. typedef float* pfloat;
  9. typedef double* pdouble;
  10.  
  11.  
  12. int main(void)
  13.  {
  14.   int     nc;
  15.   float   mediax,sigmax;
  16.   double  mediay,sigmay;
  17.   pfile   pf1;
  18.   pfloat  px,pxi;
  19.   pdouble py,pyi;
  20.  
  21.   if((pf1=fopen(NOMEFILE,"rb"))==NULL)
  22.    {
  23.     printf("OPS! Non è stato possibile aprire il file\n");
  24.     return EXIT_FAILURE;
  25.    }
  26.   else printf("tutto a posto, file aperto\n");
  27.   fread(&nc,sizeof(int),1,pf1);
  28.   printf("%d\n",nc);
  29.   if((px=(pfloat)malloc(nc*sizeof(float)))==NULL)
  30.    {
  31.     printf("OPS! Non è stato possibile creare il vettore x\n");
  32.     return EXIT_FAILURE;
  33.    }
  34.   else printf("tutto a posto, vettore x creato\n");
  35.   if((py=(pdouble)malloc(nc*sizeof(double)))==NULL)
  36.    {
  37.     printf("OPS! Non è stato possibile creare il vettore y\n");
  38.     return EXIT_FAILURE;
  39.    }
  40.   else printf("tutto a posto, vettore y creato\n");
  41.  
  42.   fread(px,sizeof(float),nc,pf1);//prima metto l'indirizzo dove voglio mettere le cose, poi specifico la dimensione in byte del singolo elemento, poi quanti ne voglio mettere e poi l'indirizzo del file da cui voglio acquisire i dati.
  43.   fread(py,sizeof(double),nc,pf1);
  44.   fclose(pf1);
  45.  
  46.   //TEST
  47.   for(pxi=px;pxi<(px+nc);pxi++)
  48.    {
  49.     printf("%f ",(*pxi));
  50.    }
  51.   printf("\n");
  52.   for(pyi=py;pyi<(py+nc);pyi++)
  53.    {
  54.     printf("%f ",(*pyi));
  55.    }
  56.   printf("\n");
  57.   //FINE TEST
  58.  
  59.   for(pxi=px,pyi=py+nc-1,mediax=0,mediay=0;pxi<(px+nc);pxi++,pyi--)//non mi serve anche la condizione pyi>(py-nc)
  60.    {
  61.     mediax+=(*pxi);
  62.     mediay+=(*pyi);
  63.    }
  64.   printf("media x=%f\n",(mediax=(mediax/nc)));
  65.   printf("media y=%lf\n",(mediay=(mediay/nc)));  
  66.   for(pxi=px,pyi=py+nc-1,sigmax=0,sigmay=0;pxi<(px+nc);pxi++,pyi--)
  67.    {
  68.     sigmax+=((*pxi)-mediax)*((*pxi)-mediax);
  69.     sigmay+=((*pyi)-mediay)*((*pyi)-mediay);
  70.    }
  71.   printf("devstd x=%f\n",(sigmax=sqrt((sigmax)/(nc-1))));
  72.   printf("devstd y=%f\n",(sigmay=sqrt((sigmay)/(nc-1))));
  73.  
  74.   free(px);
  75.   free(py);
  76.  
  77.  }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement