Jvsierra

Fórmula de Bhaskara em C++

May 17th, 2014
260
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.40 KB | None | 0 0
  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <math.h>
  4.  
  5. using namespace std;
  6.  
  7. int main(int argc, char *argv[])
  8. {
  9.     double a, b, c, delta, sdelta, x1, x2;
  10.     int enquanto;
  11.     /*
  12.     a = termo de x²;
  13.     b = termo de x;
  14.     c = termo independente;
  15.     delta = discriminante;
  16.     sdelta= raíz quadrada de delta;
  17.     x1 = primeira raíz;
  18.     x2 = segunda raíz;
  19.     */
  20.     do{
  21.       cout<<"Digite a: "<<endl;
  22.       cin>>a;
  23.       cout<<"Digite b: "<<endl;
  24.       cin>>b;
  25.       cout<<"Digite c: "<<endl;
  26.       cin>>c;
  27.       if(a == 0){
  28.            cout<<"A = 0. Equação inválida."<<endl;
  29.            /* A premissa para a equação ser de segundo grau é justamente o termo de x² ser maior do que 0. Portanto,
  30.            se a = 0, a equação é inválida.
  31.            */
  32.            cout<<"Se deseja tentar novamente, digite 5."<<endl;
  33.            cin>>enquanto;
  34.            }else{
  35.                    delta = b * b - (4 * a * c);
  36.                     sdelta = sqrt(delta);
  37.                     if(delta < 0){
  38.                              cout<<"Delta é menor do que 0. S = vazio."<<endl;
  39.                              cout<<"Se deseja tentar novamente, digite 5."<<endl;
  40.                              cin>>enquanto;
  41.                              /*
  42.                              Para resolver a equação, delta precisa ser maior ou igual a 0, pois a solução da equação depende da raíz quadrada
  43.                              do descriminante,  e o conjunto dos números reais não consegue explicar a raíz quadrada de números
  44.                              negativos.
  45.                              */
  46.                              }else{
  47.                                    cout<<"Delta: "<<delta<<endl;
  48.                                    cout<<"Raíz quadrada de delta: "<<sdelta<<endl;
  49.                                    x1 = (-b + sdelta) / (2*a);
  50.                                    x2 = (-b - sdelta) / (2*a);
  51.                                    cout<<"Primeira raíz: "<<x1<<endl;
  52.                                    cout<<"Segunda raíz: "<<x2<<endl;
  53.                                    if(x1 > x2){
  54.                                         // Determinando o conjunto solução (S) ou conjunto verdade (V) a partir da ordem dos números
  55.                                          cout<<"S = ("<<x2<<", "<<x1<<")"<<endl;
  56.                                          }else if(x1 == x2){
  57.                                                      cout<<"S = ("<<x1<<")"<<endl;
  58.                                                }else{
  59.                                                      cout<<"S = ("<<x1<<", "<<x2<<")"<<endl;
  60.                                                      }
  61.                                                      if(b == 0 || c == 0){
  62.                                                              cout<<"Equação incompleta."<<endl;
  63.                                                           }else{
  64.                                                                 cout<<"Equação completa."<<endl;
  65.                                                                 }
  66.                                                                 cout<<"Se deseja tentar novamente, digite 5."<<endl;
  67.                                                                 cin>>enquanto;
  68.                                    }
  69.                  }
  70.                  }while(enquanto == 5);
  71.      
  72.     system("PAUSE");
  73.     return EXIT_SUCCESS;
  74. }
Advertisement
Add Comment
Please, Sign In to add comment