Hinamarth

F1

Feb 24th, 2012
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <math.h>
  4.  
  5. #define m 0.004
  6. #define a 13.5
  7. #define vmax 327
  8. #define consumo 0.07
  9. #define densita 0.72
  10.  
  11. void stampa(double[], double, int);
  12.  
  13. void stampa(double massa[], double Icarburante, int i){
  14.   FILE *fp;
  15.   if((fp=fopen("report.txt", "w"))==NULL){
  16.     printf("Errore nell'apertura del file report.txt\n");
  17.     exit(EXIT_FAILURE);
  18.   }
  19.   fprintf(fp, "Carburante imbarcato = %lf l \nMassa finale = %lf kg \nMassa dell'auto a metà del percorso = %lf kg\n", Icarburante, massa[i-1]-80, massa[i/2]-80);
  20. }
  21.  
  22. main(){
  23.   int i;
  24.   double carburante, Icarburante, dvt=0., dt, dv, mt=605., massa[300]={0}, velocita[300]={0};
  25.   srand48(time(0));
  26.   printf("Inserisci la quantita' di carburante che vuoi inserire nella vettura e ricorda che il valore deve variare tra 0 l e 195 l.\n carburante = ");
  27.     scanf("%lf", &carburante);
  28.   while(carburante<0 || carburante>195){
  29.     printf("Il valore inserito è errato. Inseriscilo nuvamente.\n carburante = ");
  30.     scanf("%lf", &carburante);
  31.   }
  32.   Icarburante=carburante;
  33.   for(i=0, dt=0.; dvt<vmax && carburante>0.; dt+=0.1, i++){
  34.     massa[i]=mt+carburante*densita;
  35.     dvt=(a - m*(mt+carburante*densita))*dt*(((double)lrand48()/RAND_MAX)*0.2+0.9);
  36.     carburante=carburante-consumo/(10.*densita);
  37.     velocita[i]=dvt;
  38.   }
  39.   printf("Velocità raggiunta = %lf m/s \nTempo trascorso = %lf s \n", dvt, (dt*10.));
  40.   stampa( massa, Icarburante, i );
  41. }
Advertisement
Add Comment
Please, Sign In to add comment