Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Pomogite progu sdelat 
:(
    Опции темы
Ghost
  Дата 4.4.2002, 17:17 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Мне нужна  программа, которая ишет корни уравнения 3-еи степени в заданном ползователем диапазоне методом поиска деления пополам (Binary search).

Помогите пожалуиста. Преподы сиедят!
  Вверх
neutrino
Дата 4.4.2002, 18:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 1
Всего: 62



Nu skajem mojno proverit esli znachenie funkcii na pravoi granice umnojennoe na znachenie funkcii na levoi granice budet menshe nulia, to est reshenie na etom promejutke. Dalee delish ego popalam i smotrish v kakoi storone reshenie: proveriaesh (skajem a- pravaia granica, b- levaia granica, mid=(a+b)/2) f(a)*f(mid)<0 - to reshenie na promejutke (a;mid) inache na promejutke (mid;b). Delish eshe raz i tak dalee poka a<b. Vot i vse navernoe, esli ia pravilno ponial. ;)


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
neutrino
Дата 4.4.2002, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Gothic soul
****


Профиль
Группа: Модератор
Сообщений: 3041
Регистрация: 25.3.2002
Где: Верхняя Галилея, Кармиэль

Репутация: 1
Всего: 62



И что ето я на транслите? Наверное привык. Ладно к делу:

Цитата

float bin_search(float, float);               //  Function returns root
float f(float);                               //  Function f(x)
float round100(float);      //  Function returns value rounded
     // up to hundredthes
void main () {
 float Xmin, Xmax, imagenary_root;           //  Two borders and imagenary
     // root
 cout<<"\nEnter two values for Xmin and Xmax: ";
 cin>>Xmin>>Xmax;
 if (f(Xmin)*f(Xmax)<0) {                            //  If root exists...
   imagenary_root=bin_search(Xmin-0.01, Xmax+0.01);  //  Find root between
   cout<<"\nThe root is: "<<imagenary_root;          // Xmin and Xmax.
 } else
   cout<<"\nThe root is not found.";
}

/* This function returns function value at certain X */
float f(float x) {
 return 1*x*x*x-3*x*x+7*x-12;
}

/* This function returns rounded value up to hundredthes */
float round100(float x) {
 if (x)                          //  If x non-zero value
   return (x>0)?(((int)(x*100+0.5))/100.0):(((int)(x*100-0.5))/100.0);
 else return x;                  //  If x=0
}

/* This function returns the root between low and high.
  If can not calculate root, returns approximate value */
float bin_search(float low, float high) {
 float mid;  // Middle between low and high

 while (fabs(low-high)>0.01) {   // While low not meets high
//    mid=(low+high)/2.0;           // Without rounding
   mid=round100((low+high)/2.0); // Calculate middle
   if (f(mid)==0) return mid;    // If root is in the middle, return it
   else
     if (f(low)*f(mid)<0)        // If the root in left side
high=mid;                 // Move high border to middle value
     else
low=mid;                  // Move low border to middle value
 }
 return mid;                     // If root not found return approximate root
}

Не много коряво, но работат будет.


--------------------
The truth comes from within ...

Покойся с миром, Vit 
PM MAIL WWW ICQ Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0473 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.