Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.79 KB | None | 0 0
  1. #include <stdio.h>
  2. float temp2;
  3. int a, b, c;
  4. double delta, pdelta, err, temp, x1r, x2r, x1u, x2u;
  5.  
  6. int main(int argc, char* argv[])
  7. {
  8.     //opis rĂłwnania
  9.     a = 1;
  10.     b = 1;
  11.     c = 1;
  12.     err = 0.0001;
  13.  
  14.     //wyĹ›wietlanie rĂłwnania
  15.     printf("RĂłwnanie ma postać:\n");
  16.     if (a == 0 && b == 0 && c == 0)
  17.     {
  18.         printf("0");
  19.     }
  20.     else
  21.     {
  22.         if (a > 0) printf("%dxx", a);
  23.         else if (a < 0) printf("(%d)xx", a);
  24.  
  25.         if (a != 0 && (b != 0 || c != 0)) printf(" + ");
  26.  
  27.         if (b > 0) printf("%dx", b);
  28.         else if (b < 0) printf("(%d)x", b);
  29.  
  30.         if (b != 0 && c != 0) printf(" + ");
  31.  
  32.         if (c > 0) printf("%d", c);
  33.         else if (c < 0) printf("(%d)", c);
  34.     }
  35.     printf(" = 0\n");
  36.  
  37.     //znajdowanie pierwiastkow rownania
  38.     if (a == 0)
  39.     {
  40.         if (b == 0)
  41.         {
  42.             if (c == 0) //rownanie tozsamosciowe
  43.             {
  44.                 printf("Rownanie tozsamosciowe (ma nieskonczenie wiele rozwiazan„).\n");
  45.             }
  46.             else //rownanie sprzeczne
  47.             {
  48.                 printf("Rownanie sprzeczne (nie posiada rozwiazan„).\n");
  49.             }
  50.         }
  51.         else //jedno rozwiazanie
  52.         {
  53.             x1r = (-(double)c) / ((double)b);
  54.             printf("Rownanie ma jedno rozwiazanie: x1r=%lf.\n",x1r);
  55.         }
  56.     }
  57.     else
  58.     {
  59.         delta = b * b - 4 * a * c;
  60.         printf("Delta = %lf\n", delta);
  61.         if (delta > 0.0) //dwa rozwiazania w R
  62.         {
  63.             pdelta = delta / 4.0;
  64.         petla1:
  65.             temp = pdelta;
  66.             pdelta = (temp + delta / temp) / 2.0;
  67.             temp -= pdelta;
  68.             if (temp < 0.0) temp = -temp;
  69.             if (temp > err) goto petla1;
  70.             printf("PDelta = %lf\n", pdelta);
  71.             printf("Rownanie ma dwa rozwiazania rzeczywiste:\n");
  72.             x1r = (-(double)b - pdelta) / (2.0 * (double)a);
  73.             printf("x1r = %lf\n", x1r);
  74.             x2r = (-(double)b + pdelta) / (2.0 * (double)a);
  75.             printf("x2r = %lf\n", x2r);
  76.         }
  77.         else if (delta < 0.0) //dwa rozwiÄ…zania w C
  78.         {
  79.             delta = -delta;
  80.             pdelta = delta / 4.0;
  81.         petla2:
  82.             temp = pdelta;
  83.             pdelta = (temp + delta / temp) / 2.0;
  84.             temp -= pdelta;
  85.             if (temp < 0.0) temp = -temp;
  86.             if (temp > err) goto petla2;
  87.             printf("PDelta = %lfi\n", pdelta);
  88.             x1r = -(double)b / (2.0 * (double)a);
  89.             printf("x1r = %lf\n", x1r);
  90.             x2r = x1r;
  91.             printf("x2r = %lf\n", x2r);
  92.             x1u = -pdelta / (2.0 * (double)a);
  93.             printf("x1u = %lf\n", x1u);
  94.             x2u = -x1u;
  95.             printf("x2u = %lf\n", x2u);
  96.             printf("Rownanie ma dwa rozwiazania zespolone:\n");
  97.             if (x1r > 0.0) printf("%lf + ", x1r);
  98.             else if (x1r < 0.0) printf("(%lf) + ", x1r);
  99.             if (x1u > 0.0) printf("%lfi\n", x1u);
  100.             else if (x1u < 0.0) printf("(%lf)i\n", x1u);
  101.             if (x2r > 0.0) printf("%lf + ", x2r);
  102.             else if (x2r < 0.0) printf("(%lf) + ", x2r);
  103.             if (x2u > 0.0) printf("%lfi\n", x2u);
  104.             else if (x2u < 0.0) printf("(%lf)i\n", x2u);
  105.         }
  106.         else //jedno rozwiÄ…zanie w R
  107.         {
  108.             x1r = -(double)b / (2.0 * (double)a);
  109.             printf("Rownanie ma jedno rozwiazanie: x1r=%lf.\n");
  110.         }
  111.     }
  112.  
  113.     return 0;
  114. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement