07:35

100 бед - 1 ресет
Итак.. последняя лаба за семестр. Может у кого есть мысли, хотябы алгоритм?



Ввести степеть и коэффициенты полинома. Ввести границы интервала a,b и точность eps. Найти корень полинома на интервале [a,b] методом деления отрезка пополам. (считать, что p(a)*p(b)<0)

Комментарии
05.12.2005 в 13:01

Есть нескромное предположение воспользоваться литературой\Гуглем для поиска алгоритма метода "деления отрезка пополам" ;-)

05.12.2005 в 18:30

WAAAAAAAAAGH!!!!!!1111ONEONE
делишь отрезок пополам. смотришь, на какой половине у тебя значения функции имеют разный знак, этот отрезок опять пополам. и так пока у тебя длина отрезка не будет меньше, чем eps.
05.12.2005 в 18:48

... и все в неестественных позах ЕДЯТ...
FRikaZOid чувак, а ты на кого учишься??
05.12.2005 в 19:48

100 бед - 1 ресет
Dima Комплексная защита объектов информатизации. 1ый курс.
09.12.2005 в 22:13

100 бед - 1 ресет
Что скажете на такой код?





#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;

}
11.12.2005 в 03:53

100 бед - 1 ресет
Вопрос: полином (a*x*x)-b*x-10 вшит в программу.. Как его ввести вручную, чтоб с ним потом работала программа?
11.12.2005 в 11:53

WAAAAAAAAAGH!!!!!!1111ONEONE
FRikaZOid вводишь по очереди коэффициенты в массив. значение полинома получаешь так:



// Пусть x = 1

// p - порядок полинома

// a[] - массив коэффициентов

double x = 1;

double Result = 0;

for(unsigned i = 0; i <= p; i++)

{

Result += a[i] * pow(x, i);

}



ну а как ввести с клавиатуры p значений, думаю, что ты догадаешься
12.12.2005 в 01:00

100 бед - 1 ресет
Итак.. у меня все готово все работает..



Хочу еще для красоты поменять цвет выводимых результатов программы.. но не знаю как..( Подскажите..