Advertisement
Guest User

Area_cerchio

a guest
Mar 21st, 2019
110
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.32 KB | None | 0 0
  1. #include <stdio.h>      /*per printf*/
  2. #include <stdlib.h>     /*per rand()*/
  3. #include <time.h>       /*per srand*/
  4.  
  5. #define N 100000
  6. #define PI 3.14
  7.  
  8. void main (void)
  9.     {
  10.         unsigned int i,n_hits;
  11.         float r, area, x, y;
  12.  
  13.         time_t t;       /*per la srand*/
  14.  
  15.         /*Devo inizializzare il seme per avere valori diversi*/
  16.  
  17.         srand((unsigned)time(&t));
  18.  
  19.         i=0;
  20.         n_hits=0;
  21.  
  22.         printf("Ti calcolero' l'area del cerchio usando metodi statistici\nInserisci il raggio del cerchio\n");
  23.  
  24.         /*quando imparerai ad usare LE STRINGHE dovrai usare la scanf solo con LE STRINGHE*/
  25.  
  26.         scanf ("%f",&r);
  27.  
  28.  
  29.             /*Considero il quadrato che contiene il cerchio
  30.             quadrato di lato 2*r
  31.             (uso come sistema di riferimento quello la cui
  32.             origine e' il centro del cerchio*/
  33.         while (i<N)
  34.             {
  35.                 /*la rand ritorna valori INTERI casuali tra 0 e RAND_MAX*/
  36.                 x=(((float)(rand()))/(RAND_MAX))*2*r-r;
  37.                 y=(((float)(rand()))/(RAND_MAX))*2*r-r;
  38.                 if ((x*x+y*y)<r*r)
  39.                     {
  40.                         n_hits++; /*incrementa di uno la variabile*/
  41.                     }
  42.                 i++;
  43.             }
  44.         printf ("Il valore stimato dell'area del cerchio e' pari a: %f\n",(((float)(n_hits))*4*r*r)/N);
  45.         /*(((float)(n_hits))*4*r*r)/N sto costringendo il risultato ad essere float, senza avevo problemi*/
  46.         printf ("Il valore dell'area del cerchio usando la formula pi_greco*r*r e' pari a: %f\n",PI*r*r);
  47.  
  48.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement