n3r0nq

PI1-C1-Bartosz_Gnatowski

Oct 5th, 2019
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.13 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <conio.h>
  4. #include <iomanip>
  5. #include <windows.h>
  6.  
  7. //program rozwiazujący równanie kwadratowe a×+bx2+c=0
  8.  
  9. using namespace std;
  10.  
  11. //funkcja która kończy program, lub restartuje
  12. void zakoncz()
  13. {
  14.     cout<<endl<<endl<<"Aby zakończyć kliknij ESC, aby zrestartować kliknij dowolny klawisz."<<endl<<endl;
  15. }
  16.  
  17. //funkcja licząca delte
  18. float oblicz_delte(float a, float b, float c)
  19. {
  20.     float del = 0;
  21.     del = (b * b) - 4 * a * c;
  22.     return del;
  23. }
  24.  
  25. //funkcja licząca pierwiatki równania
  26. void oblicz_pierwiastki(float delta, float a, float b)
  27. {
  28.     float x1, x2;
  29.     char z = 'z';
  30.     x1 = x2 = 0;
  31.     cout << endl <<"Delta = "<< delta << endl;
  32.     if (delta < 0)
  33.     {
  34.         cout << "Równanie nie ma rozwiązań w zbiorze liczb rzeczywistych" << endl;
  35.         zakoncz();
  36.     }
  37.     else if (delta == 0)
  38.     {
  39.         cout << "x1 = " << setw(10) << showpos << internal << -b / 2 * a << noshowpos;
  40.         zakoncz();
  41.     }
  42.     else
  43.     {
  44.         x1 = (-b - sqrt(delta)) / (2 * a);
  45.         x2 = (-b + sqrt(delta)) / (2 * a) ;
  46.        
  47.         cout << fixed << setprecision(3);
  48.         cout << "x1(dec) = " << setw(16) << right << x1 << endl;
  49.         cout << "x2(dec) = " << setw(16) << left  << x2  << endl;
  50.        
  51.         //zamiana delty na system ósemkowy i szesnastkowy
  52.         cout << "Chcesz zobaczyć delte w systemie oct/hex (y/n)"<<endl;
  53.         cin >> z;
  54.         switch(z)
  55.         {
  56.             case 'y':
  57.             {
  58.                 cout << showbase;
  59.                 cout << hex << "(hex)" << int (delta) << endl;
  60.                 cout << oct << "(oct)" <<int (delta)  << endl << endl;
  61.                 cout << dec << noshowbase;
  62.                 zakoncz();
  63.             }break;
  64.             default:
  65.             {
  66.                 zakoncz();
  67.             }break;
  68.         }
  69.     }
  70. }
  71.  
  72. int main(int argc, char* argv[])
  73. {
  74.     do
  75.     {
  76.         float a, b, c;
  77.         float delta = 0;
  78.         a = b = c = 0;
  79.        
  80.         //ustawienie koloru
  81.         HANDLE hOut;
  82.         hOut = GetStdHandle( STD_OUTPUT_HANDLE );
  83.         SetConsoleTextAttribute( hOut, FOREGROUND_GREEN | FOREGROUND_BLUE | FOREGROUND_INTENSITY );
  84.        
  85.         cout << setw(70) << internal << "********KWADRACIAK*******" << endl;
  86.         cout << setw(78) << internal << "Daj mi równanie, a rozwiąże je za Ciebie!" << endl << endl;
  87.  
  88.         cout << "Podaj a: ";
  89.         cin >> a;
  90.         cout << "Podaj b: ";
  91.         cin >> b;
  92.         cout << "Podaj c: ";
  93.         cin >> c;
  94.        
  95.         if(a == 0 && b == 0 && c == 0)
  96.         {
  97.             cout<<"Równanie jest tożsamościowe!"<<endl;
  98.             zakoncz();
  99.         }
  100.         else if(a == 0 && b == 0 && c != 0)
  101.         {
  102.             cout<<"Równanie jest sprzeczne!"<<endl;
  103.             zakoncz();
  104.         }
  105.         else if( a == 0 && b != 0)
  106.         {
  107.             cout << "Podałeś równanie liniowe!" << endl;
  108.             cout << "Wynik to: x = " << -c / b;
  109.             zakoncz();
  110.         }else
  111.         {
  112.             delta = oblicz_delte(a, b, c);
  113.             oblicz_pierwiastki(delta, a, b);;
  114.         }
  115.        
  116.     } while (getch() != 27);
  117.  
  118.  
  119.  
  120.     return 0;
  121. }
Advertisement
Add Comment
Please, Sign In to add comment