Erick8497

Perimetro e Area

Oct 14th, 2020 (edited)
725
174 days
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <stdio.h>
  2. #include <math.h>
  3. #include <float.h>
  4.  
  5. /*
  6.  Programma che calcola il perimetro e l'area di una figura geometrica, dati i lati o   tra:
  7.  -Quadrato;
  8.  -Rettangolo;
  9.  -Pentagono.
  10.  -
  11.  */
  12.  
  13. void main(void)
  14.     {
  15.  
  16.     char indice;
  17.  
  18.     float base,altezza,lato,latopenta,apotema,area,perimetro,pi,raggio;
  19.  
  20.     area=0.0;
  21.     perimetro=0.0;
  22.     indice=' ';
  23.     pi=3.1416;
  24.    
  25.     printf("Benvenuto nel calcolatore di Area e Perimetro\n");
  26.    
  27.     /* Indice di selezione del tipo di figura geometrica */
  28.    
  29.     printf("Digita:\n-'a' se vuoi calcolare Area e Perimetro del Quadrato\n");
  30.     printf("-'b' se vuoi calcolare Area e Perimetro del rettangolo\n");
  31.     printf("-'c' se vuoi calcolare Area e Perimetro del Pentagono\n");
  32.     printf("-'d' se vuoi calcolare Area e Perimetro della Circonferenza\n");
  33.     scanf( "%c" , &indice);
  34.    
  35.     if ( indice=='a' ) { /* If di scelta del Quadrato */
  36.         printf("Perfetto, vuoi calcolare l'area del Quadrato, per favore digita qui la misura del lato:\n");
  37.         scanf( "%f", &lato);
  38.        
  39.         if ( lato<0 ) { /* Errore di scelta di un numero negativo*/
  40.             printf("Per favore digita un numero >= di 0\n");
  41.         }
  42.         else { /* Numero positivo => Calcolo area e perimetro */
  43.            
  44.             perimetro = lato*4; /* Calcola il perimetro */
  45.             area = lato*lato; /* Calcola l'area */
  46.        
  47.             if ( perimetro<0 || area<0 ) { /* Se il perimetro o l'area dovessero essere negativi allora c'e' un problema di OVERFLOW */
  48.                 printf("ERRORE: C'e' stato un OVERFLOW!\n");
  49.             }
  50.             else {
  51.                 printf("Il perimetro del tuo Quadrato vale: %f\n", perimetro);
  52.                 printf("L'area del tuo Quadrato vale: %f\n", area);
  53.             }
  54.         }
  55.     }
  56.     else if ( indice=='b' ) { /* If di scelta del Rettangolo */
  57.         printf("Perfetto, vuoi calcolare l'area del rettangolo, per favore digita qui la misura della base e dell'altezza:\n");
  58.         scanf( "%f %f", &base, &altezza);
  59.  
  60.         if ( base<0 || altezza<0 ) { /* Errore di scelta di un numero negativo tra base o altezza*/
  61.             printf("Per favore digita due numeri >= di 0\n");
  62.         }
  63.         else { /* Numero positivo => Calcolo area e perimetro */
  64.             perimetro = (base + altezza)*2;
  65.             area = base*altezza;
  66.  
  67.             if (perimetro<0 || area<0){ /* Se il perimetro o l'area dovessero essere negativi allora c'e' un problema di OVERFLOW */
  68.                 printf("ERRORE: C'e' stato un OVERFLOW!\n");
  69.             }
  70.             else {
  71.                 printf("Il perimetro del tuo rettangolo vale: %f\n", perimetro);
  72.                 printf("L'area del tuo rettangolo vale: %f\n", area);
  73.             }
  74.         }
  75.     }
  76.     else if ( indice=='c' ) { /* If di scelta del Pentagono */
  77.         printf("Perfetto, vuoi calcolare l'area e il perimetro del Pentagono, per favore digita qui la misura del lato:\n");
  78.         scanf( "%f", &latopenta);
  79.        
  80.         if ( latopenta<0 ) { /* Errore che spunta nel caso in cui il lato dovesse essere negativo */
  81.             printf("Per favore digita un numero >= 0\n");
  82.         }
  83.         else {
  84.             apotema = latopenta*0.668; /* Calcolo l'apotema */
  85.             perimetro = latopenta*5; /* Calcolo il perimetro del Pentagono */
  86.             area = (perimetro*apotema)/2; /* Calcolo l'area del Pentagono */
  87.        
  88.             if ( apotema<0 || perimetro<0 || area<0 ) {
  89.                 printf("ERRORE: C'e' stato un OVERFLOW!\n");
  90.             }
  91.             else {
  92.                 printf("Il perimetro del tuo Pentagono vale: %f\n", perimetro);
  93.                 printf("L'area del tuo Pentagono vale: %f\n", area);
  94.             }
  95.         }
  96.     }
  97.     else if ( indice=='d' ) { /* If di scelta della Circonferenza */
  98.         printf("Perfetto, vuoi calcolare l'area e il perimetro di una Circonferenza, per favore scrivi qui il valore del raggio:\n");
  99.         scanf( "%f", &raggio);
  100.        
  101.         if ( raggio<0 ) { /* Errore che spunta nel caso in cui il raggio dovesse essere negativo */
  102.             printf("Per favore digita un numero >= 0\n");
  103.         }
  104.         else { /* Valore positivo => calcolo area e perimetro */
  105.             perimetro = 2*pi*raggio; /* Calcolo il perimetro della Circonferenza */
  106.             area = pi*raggio*raggio; /* Calcolo l'area della Circonferenza */
  107.        
  108.             if ( apotema<0 || perimetro<0 || area<0 ) {
  109.                 printf("ERRORE: C'e' stato un OVERFLOW!\n");
  110.             }
  111.             else {
  112.                 printf("Il perimetro della tua Circonferenza vale: %f\n", perimetro);
  113.                 printf("L'area della tua Circonferenza vale: %f\n", area);
  114.             }
  115.         }
  116.     }
  117.     /* Errore che spunta in caso si digiti una letta diversa da a, b,c o d */
  118.     else {
  119.         printf("ERRORE: Hai digitato un carattere che non combacia con quelli presentati.\n");
  120.     }
  121.    
  122.     printf("Grazie per avermi usato :)\n");
  123.    
  124.     }
  125.  
RAW Paste Data