#include<stdio.h>
#include<stdlib.h>
#include<math.h>
bool Fonksiyon(int der,int x[],float a,float b){
float toplam1=0.00,toplam2=0.00;
int i;
for(i=der;i>=0;i--){
toplam1=toplam1+(x[i]*(pow(a,i)));
toplam2=toplam2+(x[i]*(pow(b,i)));
}
if(toplam1*toplam2<0)
return true;
else
return false; }
// program elle katsayı ve üstellerini belirledgimiz fonksiyonun kok aralıgını
//buluyor.
int main(){
float x1,x2,x3;
int derece,katsayi,i,yarilanma;
printf("nKoklerini Bulunmasi Istedigimiz Denklmin En Buyuk Derecesini Giriniz:");
scanf("%d",&derece);
int a[derece];
for(i=derece;i>=0;i--){
printf("n%d Dereceden Degiskenin Katsayisini giriniz:",i);
scanf("%d",&a[i]); }
printf("nKoku Aramak Istedigini Ust Sinir Giriniz:");
scanf("%f",&x1);
printf("nKoku Aramak Istediginiz Alt Sinir Giriniz:");
scanf("%f",&x2);
printf("nFonksiyonun Kac KEz Yarilanacagni giriniz:");
scanf("%d",&yarilanma);
if(Fonksiyon(derece,a,x1,x2)==true){
printf("nBu aralikta Fonksiyonun Bir Koku Vardir");
for(i=1;i<=yarilanma;i++){
x3=(x1+x2)/2;
printf("nx1=%f x2=%f x3=%f",x1,x2,x3);
if( Fonksiyon(derece,a,x3,x2)==true)
x1=x3;
else if(Fonksiyon(derece,a,x1,x3)==true)
x2=x3; } }
else
printf("nFonksiyonun Bu aralilta Koku Yokturn");
printf("nn");
system("pause");
return 0;
}