100 бед - 1 ресет
Итак.. последняя лаба за семестр. Может у кого есть мысли, хотябы алгоритм?
Ввести степеть и коэффициенты полинома. Ввести границы интервала a,b и точность eps. Найти корень полинома на интервале [a,b] методом деления отрезка пополам. (считать, что p(a)*p(b)<0)
Ввести степеть и коэффициенты полинома. Ввести границы интервала a,b и точность eps. Найти корень полинома на интервале [a,b] методом деления отрезка пополам. (считать, что p(a)*p(b)<0)
#include <stdio.h>
float f(float x);
void main()
{
float eps; //Oi?iinou
float a,b; //A?aieou [a,b]
float x; //Ei?aiu
printf("\n\n\n? a®¦¤??? ?®a?© ? f(x)=A*x^2-B*x-10, ?a?a? «? [a,b],\n?¤? ?®iaa????a A=0.9464, B=1.3825\n\n\n");
printf("‚??¤?a? ?a®¬?¦aa??\n");
printf("a=");
scanf("%f",&a);
printf("b=");
scanf("%f",&b);
printf("‚??¤?a? a®c®aai\n");
printf("eps=");
scanf("%f",&eps);
if(f(a)*f(b)<0)
{
do
{
x=(a+b)/2;
if(f(a)*f(b)>0)
a=x;
else
b=x;
}
while((b-a)>=2*eps);
printf("\nS®a?i ?®«?®¬ ");
printf("%f",x);
}
else
printf("\n??a ?®a?©, ?®¦ «a©aa , ???¤?a? ¤aa?®© ?a®¬?¦aa®?\n");
}
float f(float x)
{
const float a=0.9464;
const float b=1.3825;
return (a*x*x)-b*x-10;
}
// Пусть x = 1
// p - порядок полинома
// a[] - массив коэффициентов
double x = 1;
double Result = 0;
for(unsigned i = 0; i <= p; i++)
{
Result += a[i] * pow(x, i);
}
ну а как ввести с клавиатуры p значений, думаю, что ты догадаешься
Хочу еще для красоты поменять цвет выводимых результатов программы.. но не знаю как..( Подскажите..