xDefo

Risolutore equazioni e disequazioni di secondo grado

Oct 13th, 2020
634
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdio.h>
  2. #include <math.h>
  3. void main(void)
  4. {
  5.     float a,b,c,x1,x2,delta,x_im,x_re;
  6.     char select;
  7.     char option=' ';
  8.     x1=0.0;
  9.     x2=0.0;
  10.     select=' ';
  11.     printf("Digitare e per risolvere un equazione di secondo grado, digitare d per risolvere una disequazione di secondo grado e h per aprire l'help: ");
  12.     scanf("%c",&select);
  13.    
  14.     if(select=='e')
  15.     {
  16.         printf("Inserire coefficienti equazione secondo grado: ");
  17.         scanf("%f %f %f",&a,&b,&c);
  18.    
  19.         delta=b*b-4*a*c;
  20.         if(delta<0)
  21.         {
  22.             delta=-delta;
  23.             x_re=-b/(2*a);
  24.             x_im=sqrtf(delta)/(2*a);
  25.             printf("Le soluzioni complesse sono: x1=%f-i%f x2=%f+i%f",x_re,x_im,x_re,x_im);
  26.         }
  27.         else
  28.         {
  29.             x1=(-b+sqrtf(delta))/(2*a);
  30.             x2=(-b-sqrtf(delta))/(2*a);
  31.             printf("Le soluzioni sono x1=%f x2=%f",x1,x2);
  32.         }
  33.         //funziona
  34.     }
  35.  
  36.     else if(select=='d')
  37.     {
  38.         printf("Inserire coefficienti equazione secondo grado e\n> per maggiore\n< per minore\nse si vuole aggiungere l'uguagliana scrivere u altrimenti n\nEsempio input: 1 1 1 > u\n");
  39.         scanf("%f %f %f %c %c",&a,&b,&c,&select,&option);
  40.         if(select!='>' || select!='<')
  41.         {
  42.             goto errore_input;
  43.         }
  44.         if(option!='u' || option!='n')
  45.         {
  46.             goto errore_input;
  47.         }
  48.         if(a>0)
  49.         {
  50.             delta=b*b-4*a*c;
  51.             if(delta<0)
  52.             {
  53.                 if(select=='>')
  54.                 {
  55.                     printf("La soluzione e' qualunque x in R");
  56.                 }
  57.                 else
  58.                 {
  59.                     printf("Non ammette soluzioni");
  60.                 }
  61.             }
  62.             else if(delta>0)
  63.             {
  64.                 x1=(-b-sqrtf(delta))/(2*a);
  65.                 x2=(-b+sqrtf(delta))/(2*a);
  66.                 if (option=='u')
  67.                 {
  68.                     if(select=='>')
  69.                     {
  70.                         printf("La soluzione e' x<=%f U x>=%f",x1,x2);
  71.                     }
  72.                     else
  73.                     {
  74.                         printf("La soluzione e' %f<=x<=%f",x1,x2);
  75.                     }
  76.                 }
  77.                 else
  78.                 {
  79.                     if(select=='>')
  80.                     {
  81.                         printf("La soluzione e' x<%f U x>%f",x1,x2);
  82.                     }
  83.                     else
  84.                     {
  85.                         printf("La soluzione e' %f<x<%f",x1,x2);
  86.                     }  
  87.                 }
  88.             }
  89.             else
  90.             {
  91.                 x1=-b/(2*a);
  92.                 if (option=='u')
  93.                 {
  94.                     if(select=='>')
  95.                     {
  96.                         printf("La soluzione e' qualunque x in R");
  97.                     }
  98.                     else
  99.                     {
  100.                         printf("La soluzione e' x=%f",x1);
  101.                     }
  102.                 }
  103.                 else
  104.                 {
  105.                     if(select=='>')
  106.                     {
  107.                         printf("La soluzione e' x!= %f",x1);
  108.                     }
  109.                     else
  110.                     {
  111.                         printf("Impossibile");
  112.                     }  
  113.                 }
  114.             }
  115.         }
  116.         else
  117.         {
  118.             a=-a;b=-b;c=-c;
  119.             if(select=='>')
  120.             {
  121.                 select='<';
  122.             }
  123.             else
  124.             {
  125.                 select='>';
  126.             }
  127.             delta=b*b-4*a*c;
  128.             if(delta<0)
  129.             {
  130.                 if(select=='>')
  131.                 {
  132.                     printf("La soluzione e' qualunque x in R");
  133.                 }
  134.                 else
  135.                 {
  136.                     printf("Non ammette soluzioni");
  137.                 }
  138.             }
  139.             else if(delta>0)
  140.             {
  141.                 x1=(-b-sqrtf(delta))/(2*a);
  142.                 x2=(-b+sqrtf(delta))/(2*a);
  143.                 if (option=='u')
  144.                 {
  145.                     if(select=='>')
  146.                     {
  147.                         printf("La soluzione e' x<=%f U x>=%f",x1,x2);
  148.                     }
  149.                     else
  150.                     {
  151.                         printf("La soluzione e' %f<=x<=%f",x1,x2);
  152.                     }
  153.                 }
  154.                 else
  155.                 {
  156.                     if(select=='>')
  157.                     {
  158.                         printf("La soluzione e' x<%f U x>%f",x1,x2);
  159.                     }
  160.                     else
  161.                     {
  162.                         printf("La soluzione e' %f<x<%f",x1,x2);
  163.                     }  
  164.                 }
  165.             }
  166.             else
  167.             {
  168.                 x1=-b/(2*a);
  169.                 if (option=='u')
  170.                 {
  171.                     if(select=='>')
  172.                     {
  173.                         printf("La soluzione e' qualunque x in R");
  174.                     }
  175.                     else
  176.                     {
  177.                         printf("La soluzione e' x=%f",x1);
  178.                     }
  179.                 }
  180.                 else
  181.                 {
  182.                     if(select=='>')
  183.                     {
  184.                         printf("La soluzione e' x!= %f",x1);
  185.                     }
  186.                     else
  187.                     {
  188.                         printf("Impossibile");
  189.                     }  
  190.                 }
  191.             }
  192.         }
  193.     }
  194.     else if(select=='h')
  195.     {
  196.         printf("Il programma risolve equazioni e disequazioni di secondo grado nella forma ax^2+bx+c\n");
  197.         printf("Il primo input selezionera se risolvere un equazione o una disequazione.In caso di errore il programma si arresta\n");
  198.         printf("Se si e' selezionato l'equazione il programma chiedera di inserire i cofficienti(inserire 3 numeri decimali o interi separati ognuno da uno spazio)\n");
  199.         printf("Se si e' selezionato la disequazione il proramma chiedera di inserire i coefficienti il simbolo della disuguaglianza e un parametro per l'uguaglianza o no(andranno inseriti separati da uno spazio)\n");
  200.         printf("In caso di errore negli input il programma termina\n");
  201.         printf("Arresto!Riavviare per usare!");
  202.     }
  203.     else
  204.     {
  205.         printf("Errore nella selezione\n");
  206.     }
  207.  
  208.  
  209.     printf("\n");
  210.     errore_input: printf("Errore nell'input. Arresto!");
  211.    
  212. }
RAW Paste Data