Advertisement
Irma16

Untitled

Nov 19th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.69 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define FILE_IN "f.txt"
  4. #define FILE_OUT "dati.txt"
  5. #define D 10.0
  6. #define PROG "./coulomb" //dobbiamo prendere l'eseguibile del programma
  7. #define STRLEN 256
  8. #define MAX 100
  9. int main (void)
  10. {
  11.     char s[STRLEN];
  12.     FILE*pf;
  13.     float q1,q2,sommaf;
  14.     for (q1=1.0; q1<=100; q1+=1.0)
  15.         {for(q2=1.0; q2<=100; q2+=1.0)// i due cicli sono annidati perchè così ogni volta che ho un valore di q1  avro tutti i 1000 valori di q2
  16.             {
  17.                 pf=fopen(FILE_OUT,"w"); // apro il file dei dati in scrittura per scrivere tutti i valore iterati
  18.                 if (pf==NULL) // CONTROLLO: se non ci sono i permessi o non esiste il file
  19.                     {  
  20.                         printf("Non ho potuto aprire il file %s!\n",FILE_OUT);
  21.                         return EXIT_FAILURE; //dice al sistema operativo che ha fallito nell'apertura del programma
  22.                     }
  23.                
  24.                 else
  25.                     {
  26.                         fprintf(pf,"%.3f\n%.3f\n%.3f\n",q1,q2,D);//scriviamo questi dati reiterati in dati.txt
  27.                         fclose(pf); //chiudiamo il file
  28.                         system(PROG);//Stiamo richiamando il programma precedente che fa il calcolo della forza di coulomb
  29.                         pf=fopen(FILE_IN,"r");// apro il file della forza in lettura per leggermele tutte
  30.                         if (pf==NULL) // CONTROLLO: se non ci sono i permessi o non esiste il file
  31.                             {  
  32.                                 printf("Non ho potuto aprire il file %s!\n",FILE_IN);
  33.                                 return EXIT_FAILURE; //dice al sistema operativo che ha fallito nell'apertura del programma
  34.                             }
  35.                         fscanf(pf,"%s",s);//acquisisco le forze trovate in una stringa
  36.                         fclose(pf);
  37.                         sommaf+=atof(s);//sta accumulando le forze in una variabile numero
  38.                     }
  39.             }
  40.         }          
  41.     printf("La forza media è pari a: %.3f\n",sommaf/(MAX*MAX));
  42.     return EXIT_SUCCESS;
  43. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement