#include #include #include #include #define N_ATOMS 500 #define R 1 void WriteAndMinMax(double distanza[], int MinMax[]); void FractionInCrown(double distanza[], double R1, double R2); main(){ double R1, R2; double Dist, x,y,z; double pos[N_ATOMS][3], distanza[N_ATOMS]; int MinMax[2]={0}; int seed=time(0); int Npart,Ndim; srand48(seed); printf("\nCalcoliamo la frazione di atomi di un gas perfetto contenuti nella corona sferica\n" "definta da R1=R) printf("R2 deve essere minore di R\n"); }while(R2<=0 || R2>=R); printf("\nInserire il valore di R1 (=R2) printf("R1 deve essere minore di R2\n"); }while(R1<=0 || R1>=R2); for(Npart=0;Npart=R); pos[Npart][0]=x; pos[Npart][1]=y; pos[Npart][2]=z; distanza[Npart]=Dist; } WriteAndMinMax(distanza,MinMax); printf("\n\nL'indice dell'atomo a distanza minima dall'origine e' Imin=%d \n",MinMax[0]); printf("Le coordinate di quest atomo sono: (%lf,%lf,%lf)\n\n", pos[MinMax[0]][0],pos[MinMax[0]][1],pos[MinMax[0]][2]); printf("\n\nL'indice dell'atomo a distanza massima dall'origine e' Imax=%d \n\n",MinMax[1]); printf("Le coordinate di quest atomo sono: (%lf,%lf,%lf)\n\n", pos[MinMax[1]][0],pos[MinMax[1]][1],pos[MinMax[1]][2]); FractionInCrown(distanza, R1, R2); } void WriteAndMinMax(double Data[],int Vec[]){ double min, max; int i; FILE *pwrite; pwrite=fopen("distanze.dat","w"); for (i=0; imax){ max=Data[i]; Vec[1]=i; } } } void FractionInCrown(double Data[], double r1, double r2){ int i,Count=0; double Frac; for(i=0;i