fork(1) download
  1. #include <iostream>
  2. #include <cmath>
  3.  
  4. using namespace std;
  5.  
  6. void rozwiaz(float a, float b, float c)
  7. {
  8. float delta, pdelta, x1, x2;
  9.  
  10. cout << "\nRownanie: " << a << "x^2 + " << b << "x + " << c << " = 0\n";
  11.  
  12. delta = b * b - 4 * a * c;
  13. cout << "Delta = " << delta << endl;
  14.  
  15. if (delta < 0)
  16. {
  17. cout << "Brak pierwiastkow rzeczywistych\n";
  18. return;
  19. }
  20.  
  21. pdelta = sqrt(delta);
  22.  
  23. // wybór stabilniejszego wzoru
  24. if (b > 0)
  25. x1 = (-b - pdelta) / (2 * a);
  26. else
  27. x1 = (-b + pdelta) / (2 * a);
  28.  
  29. // drugi pierwiastek z Viety
  30. x2 = c / (a * x1);
  31.  
  32. cout << "x1 = " << x1 << endl;
  33. cout << "x2 = " << x2 << endl;
  34.  
  35. cout << "Sprawdzenie Viety:\n";
  36. cout << "x1 + x2 = " << x1 + x2
  37. << " (-b/a = " << -b / a << ")\n";
  38. cout << "x1 * x2 = " << x1 * x2
  39. << " (c/a = " << c / a << ")\n";
  40. }
  41.  
  42. int main()
  43. {
  44. rozwiaz(3.0f, 4.0f, 5.0f);
  45. rozwiaz(1.0f, 10000.0f, 1.0f);
  46.  
  47. return 0;
  48. }
  49.  
  50.  
Success #stdin #stdout 0.01s 5268KB
stdin
Standard input is empty
stdout
Rownanie: 3x^2 + 4x + 5 = 0
Delta = -44
Brak pierwiastkow rzeczywistych

Rownanie: 1x^2 + 10000x + 1 = 0
Delta = 1e+08
x1 = -10000
x2 = -0.0001
Sprawdzenie Viety:
x1 + x2 = -10000   (-b/a = -10000)
x1 * x2 = 1   (c/a = 1)