Advertisement
Guest User

Untitled

a guest
Jan 24th, 2017
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.63 KB | None | 0 0
  1. #include <iostream>
  2. #include <math.h>
  3.  
  4. using namespace std;
  5.  
  6. float f(float x){
  7.   return x*x-5*x-3;
  8. }
  9.  
  10. float bisect(float lower, float upper, float (*func)(float)){
  11.   float mid = (lower + upper) / 2;
  12.  
  13.   if((*func)(upper) == 0)
  14.     return upper;
  15.   else if((*func)(lower) == 0)
  16.     return lower;
  17.   else if((*func)(mid) == 0)
  18.     return mid;
  19.  
  20.   if((func(mid) > 0 && func(upper) < 0) || (func(mid) < 0 && func(upper) > 0))
  21.     return bisect(mid, upper, func);
  22.   else
  23.     return bisect(lower, mid, func);
  24. }
  25.  
  26. int main(){
  27.   float n1 = -10, n2 = 10, nst;
  28.  
  29.   nst = bisect(n1, n2, f);
  30.  
  31.   cout << nst << endl;
  32.  
  33.   return 0;
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement