summaryrefslogtreecommitdiff
path: root/sem_2/HLIN202/TP/TP5-6/ex11/exo11.cpp
blob: 7b88eaa510a8ea5b44d6bb5494c8e5d363967909 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include<iostream>
#include<math.h>

int solveurseconddeg ( double a, double b, double c, double * x1, double * x2) {
  double delta = (b*b)-(4*a*c);
  if (delta > 0) {
    *x1 = (-b-sqrt(delta))/(2*a);
    *x2 = (-b+sqrt(delta))/(2*a);
    return 2;
  }
  else if ( delta == 0 && a!=0) {
    *x1=-b/(2*a);
    return 1;
  }
  else {
    return 0;
  }
}
int main () {
  double a = 1, b=1, c=1;
  double rslt1, rslt2;
  std::cout<< " Entrez a, b et c, ce programme calcule les racines du polynome ax^2+bx+c : "<<std::endl;
  std::cin >> a >> b >> c ;
  int racines = solveurseconddeg(a,b,c,&rslt1,&rslt2);
  if ( racines==0) { std::cout<<"Le polynome n'a pas de solution"<<std::endl;}
  else if (racines == 1) { std::cout<<"Le polynome a une racine : " << rslt1 << std::endl;}
  else if ( racines == 2) { std::cout << "Le polynome a deux racines : " << rslt1 << " et : " << rslt2<< std::endl;}
  return 0;
}