Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- float temp2;
- int a, b, c;
- double delta, pdelta, err, temp, x1r, x2r, x1u, x2u;
- int main(int argc, char* argv[])
- {
- //opis rĂłwnania
- a = 1;
- b = 1;
- c = 1;
- err = 0.0001;
- //wyświetlanie równania
- printf("Równanie ma postać:\n");
- if (a == 0 && b == 0 && c == 0)
- {
- printf("0");
- }
- else
- {
- if (a > 0) printf("%dxx", a);
- else if (a < 0) printf("(%d)xx", a);
- if (a != 0 && (b != 0 || c != 0)) printf(" + ");
- if (b > 0) printf("%dx", b);
- else if (b < 0) printf("(%d)x", b);
- if (b != 0 && c != 0) printf(" + ");
- if (c > 0) printf("%d", c);
- else if (c < 0) printf("(%d)", c);
- }
- printf(" = 0\n");
- //znajdowanie pierwiastkow rownania
- if (a == 0)
- {
- if (b == 0)
- {
- if (c == 0) //rownanie tozsamosciowe
- {
- printf("Rownanie tozsamosciowe (ma nieskonczenie wiele rozwiazan„).\n");
- }
- else //rownanie sprzeczne
- {
- printf("Rownanie sprzeczne (nie posiada rozwiazan„).\n");
- }
- }
- else //jedno rozwiazanie
- {
- x1r = (-(double)c) / ((double)b);
- printf("Rownanie ma jedno rozwiazanie: x1r=%lf.\n",x1r);
- }
- }
- else
- {
- delta = b * b - 4 * a * c;
- printf("Delta = %lf\n", delta);
- if (delta > 0.0) //dwa rozwiazania w R
- {
- pdelta = delta / 4.0;
- petla1:
- temp = pdelta;
- pdelta = (temp + delta / temp) / 2.0;
- temp -= pdelta;
- if (temp < 0.0) temp = -temp;
- if (temp > err) goto petla1;
- printf("PDelta = %lf\n", pdelta);
- printf("Rownanie ma dwa rozwiazania rzeczywiste:\n");
- x1r = (-(double)b - pdelta) / (2.0 * (double)a);
- printf("x1r = %lf\n", x1r);
- x2r = (-(double)b + pdelta) / (2.0 * (double)a);
- printf("x2r = %lf\n", x2r);
- }
- else if (delta < 0.0) //dwa rozwiÄ…zania w C
- {
- delta = -delta;
- pdelta = delta / 4.0;
- petla2:
- temp = pdelta;
- pdelta = (temp + delta / temp) / 2.0;
- temp -= pdelta;
- if (temp < 0.0) temp = -temp;
- if (temp > err) goto petla2;
- printf("PDelta = %lfi\n", pdelta);
- x1r = -(double)b / (2.0 * (double)a);
- printf("x1r = %lf\n", x1r);
- x2r = x1r;
- printf("x2r = %lf\n", x2r);
- x1u = -pdelta / (2.0 * (double)a);
- printf("x1u = %lf\n", x1u);
- x2u = -x1u;
- printf("x2u = %lf\n", x2u);
- printf("Rownanie ma dwa rozwiazania zespolone:\n");
- if (x1r > 0.0) printf("%lf + ", x1r);
- else if (x1r < 0.0) printf("(%lf) + ", x1r);
- if (x1u > 0.0) printf("%lfi\n", x1u);
- else if (x1u < 0.0) printf("(%lf)i\n", x1u);
- if (x2r > 0.0) printf("%lf + ", x2r);
- else if (x2r < 0.0) printf("(%lf) + ", x2r);
- if (x2u > 0.0) printf("%lfi\n", x2u);
- else if (x2u < 0.0) printf("(%lf)i\n", x2u);
- }
- else //jedno rozwiÄ…zanie w R
- {
- x1r = -(double)b / (2.0 * (double)a);
- printf("Rownanie ma jedno rozwiazanie: x1r=%lf.\n");
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement