С Новым годом! Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44

Нахождение корней многочлена методом хорд

09.05.2013, 15:54. Показов 2829. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
есть код программы на dev c++ помогите мне сделать ее на builder c++. Или дайте рекомендации как сделать Программу нахождения корней многочлена методом хорд на билдере . Очень надо курсовая горит
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include<iostream>
#include<math.h>
using namespace std;
double  f (double x)
{return tan(0.5*x+0.1)-x*x; } //твоя функция
double f2(double x)
{return 0.5*sin(0.5*x)/pow(cos(0.5*x),4)-2;}    //ее производная
int main()
{double a,b,xs,xm,xn;
 double eps=0.001;
 cout<<"Nacalo:";
 cin>>a;
 cout<<"conec:";
 cin>>b;
 if ((f(a)*f2(a)) < 0) {xm=a; xs=b;}
 else {xm=b; xs=a; }
 xn=xm;
 do{ xm=xn;
xn=xm-(f(xm)*(xs-xm)/(f(xs)-f(xm)));  }
 while (fabs(xn-xm)>eps);
 cout<<"x="<<xn;}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
09.05.2013, 15:54
Ответы с готовыми решениями:

Нахождение корней функции f(x)=0 методом Ньютона
Нужно написать программу нахождения корней функции f(x)=0 методом Ньютона. Функция должна вводиться просто строкой, например в Edit. ...

Программа нахождения корней многочлена методом хорд
СРОЧНО! Программа нахождения корней многочлена методом хорд. Функции sinx,cosx,tgx,ctgx,lnx должны корректно выдавать ответы!!! Помогите!...

Нахождение всех действительных корней методом хорд
Нужно составить программу для нахождения всех действительных корней уравнения F(x)=0 методом хорд не более, чем за 20 итераций. Помогите,...

17
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 16:33
А чего не так? Вроде все работает.
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 16:45  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
А чего не так? Вроде все работает.
Работает в dev c++ a в builderе как эти функции задать? с return что делать? и т.д.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 17:03
Какое-такое т.д.? Вроде русским по белому написал, что все работает в билдере.
Миниатюры
Нахождение корней многочлена методом хорд  
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 17:11  [ТС]
Цитата Сообщение от BRcr Посмотреть сообщение
Какое-такое т.д.? Вроде русским по белому написал, что все работает в билдере.
Стой ты просто вкинул все в билдер?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 17:21
Ну, да. Что тебе мешает сделать то же самое?
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 17:23  [ТС]
Да то что у меня выдает ошибку о неправильности синтаксиса, сделай скрин своего кода в билдере.
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 17:39
Создаешь консольный проект и копируешь куски кода в соответствующие места. Название и аргументы функции main лучше оставить те, что сгенерируются билдером. У меня юникодный билдер, поэтому объявление main выглядит несколько иначе.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// #include <algorithm>
// #include <boost/regex.hpp>
// #include <boost/thread/thread.hpp>
// #include <boost/variant.hpp>
// #include <cmath.h>
// #include <ctype.h>
// #include <float.h>
#include <fstream>
// #include <iomanip.h>
#include <iostream>
// #include <limits.h>
// #include <locale.h>
// #include <malloc.h>
#include <math.h>
// #include <numeric>
// #include <queue>
#include <sstream>
// #include <stack>
// #include <stdarg.h>
// #include <stdlib.h>
// #include <stdio.h>
#include <string>
// #include <System.hpp>
// #include <SysUtils.hpp>
#include <tchar.h>
// #include <time.h>
// #include <vector>
// #include <Windows.h>
// #include <limits>
// #include <iterator>
// #include <functional>
// #include <list>
// #include <Cfgmgr32.h>
 
#pragma hdrstop
 
// ---------------------------------------------------------------------------
double f( double x )
{
    return tan( 0.5 * x + 0.1 ) - x * x;
} // твоя функция
double f2( double x )
{
    return 0.5 * sin( 0.5 * x ) / pow( cos( 0.5 * x ), 4 ) - 2;
} // ее производная
// ---------------------------------------------------------------------------
int _tmain( int argc, _TCHAR * argv[] )
{
    system( "color 2e" ); // желтый текст на зеленом фоне
    // system( "chcp 1251" );
    system( "cls" );
    //////////////////////////////////////
    using namespace std;
    // using namespace boost;
    //////////////////////////////////////
    double a, b, xs, xm, xn;
    double eps = 0.001;
    cout << "Nacalo:";
    cin >> a;
    cout << "conec:";
    cin >> b;
    if ( ( f( a ) * f2( a ) ) < 0 )
    {
        xm = a;
        xs = b;
    }
    else
    {
        xm = b;
        xs = a;
    }
    xn = xm;
    do
    {
        xm = xn;
        xn = xm - ( f( xm ) * ( xs - xm ) / ( f( xs ) - f( xm ) ) );
    }
    while ( fabs( xn - xm ) > eps );
    cout << "x=" << xn;
    //////////////////////////////////////
    cout << "\n\n";
    system( "pause" );
    return 0;
}
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 17:49  [ТС]
А в графическом проекте как?
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 18:06
А сразу написать, что нужно на формах, не судьба?

Кидаешь на форму пару эдитов и кнопку. Вспомогательные функции объявляются просто в глобальном пространстве. Создаешь обработчик клика кнопки. Пишешь все это примерно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
double f( double x )
{
    return tan( 0.5 * x + 0.1 ) - x * x;
} // твоя функция
double f2( double x )
{
    return 0.5 * sin( 0.5 * x ) / pow( cos( 0.5 * x ), 4 ) - 2;
} // ее производная
// ---------------------------------------------------------------------------
void __fastcall TForm1::btn1Click( TObject * Sender )
{
    double a, b, xs, xm, xn;
    double eps = 0.001;
 
    if ( TryStrToFloat( edit_a->Text, a ) && TryStrToFloat( edit_b->Text, b ) )
    {
        if ( ( f( a ) * f2( a ) ) < 0 )
        {
            xm = a;
            xs = b;
        }
        else
        {
            xm = b;
            xs = a;
        }
        xn = xm;
        do
        {
            xm = xn;
            xn = xm - ( f( xm ) * ( xs - xm ) / ( f( xs ) - f( xm ) ) );
        }
        while ( fabs( xn - xm ) > eps );
        ShowMessage( "x = " + FloatToStr( xn ) );
    }
    else
    {
        ShowMessage( "Введите верные границы интервала." );
    }
}
Миниатюры
Нахождение корней многочлена методом хорд  
1
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 18:42  [ТС]
спасибо большое!! но у меня вот что "E2034 Cannot convert 'AnsiString' to 'float'" что за ошибка?
Миниатюры
Нахождение корней многочлена методом хорд  
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 19:27
Ну, дык, не надо было добавлять от себя того, чего не понимаешь. Это редко работает. "а=" - это лишнее.
1
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 19:38  [ТС]
Послушайте очень неудобно вас просить, но задача вроде такая же, делаю так же но все равно ошибки не знаю в чем дело. Поможете мне еще раз из dev на builder с графическими компонентами программу переделать так чтобы можно было вводить с клавиатуры границу?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <iostream>
#include <math.h>
 
using namespace std;
float m_ch(float, float, float);
float your_function(float);
int main()
{
    cout << m_ch(1,12,0.001) << endl;// задаем начальные точки и точность
    return 0;
}
float m_ch(float x1, float x2, float e){
    if (fabs(x2-x1)<e) return x2;
    return m_ch((x1-((your_function(x1))*(x2-x1))/(your_function(x2)-your_function(x1))),x1,e);
}
float your_function(float x){
    return sin(x);
}
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 19:47
Не вроде такая же, а один в один. Где тут ошибки ловить? С эдитов получаешь данные точно так же, отдаешь их функции m_ch() и забираешь с нее результат, результат отображаешь таким же макаром с помощью ShowMessage().

Приводи свои попытки и тексты ошибок, если хочешь разобраться.
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 19:59  [ТС]
вот вроде все так же первую часть пихнул в основу формы стер сout<< и все
Миниатюры
Нахождение корней многочлена методом хорд  
0
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.05.2013, 20:14
Объявление функции m_ch() ты засунул внутрь тела функции Button1Click(). Так делать не след не только в билдере, но и в упомянутом dev c++. Объяви ее в глобальном пространстве, так же как функцию your_function(). В обработчике должно остаться нечто вроде:
C++
1
ShowMessage( "result = " + FloatToStr( m_ch( 1, 12, 0.001 ) ) );
0
 Аватар для cpp_developer
20124 / 5691 / 417
Регистрация: 09.04.2010
Сообщений: 22,546
Записей в блоге: 1
09.05.2013, 20:22
а непосредственно ошибка в том, что после
C++
1
m_ch(чего-то-там)
отсутствует ;
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
09.05.2013, 21:02  [ТС]
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
float m_ch(float, float, float);
float your_function(float);
 
float m_ch(float x1, float x2, float e){
    if (fabs(x2-x1)<e) return x2;
    return m_ch((x1-((your_function(x1))*(x2-x1))/(your_function(x2)-your_function(x1))),x1,e);
}
float your_function(float x){
    return sin(x);
    }
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::sButton1Click(TObject *Sender)
{
ShowMessage( "result = " + FloatToStr(m_ch( StrToFloat(Edit1->Text), StrToFloat(Edit2->Text), 0.001))) ;
}
//---------------------------------------------------------------------------
все получилось спасибо огромное
Миниатюры
Нахождение корней многочлена методом хорд  
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.05.2013, 21:02
Помогаю со студенческими работами здесь

Нахождение целых корней многочлена методом Горнера
Здравствуйте, помогите мне разобраться с одной проблемой. Мне надо написать программу, которая находит целые корни многочлена по схеме...

Графическим методом выполнить локализацию корней уравнения и решить его методом хорд и касательных.
Привет=) Помогите плиз!) Задание: Графическим методом выполнить локализацию корней нелинейного уравнения и решить его. Вычислить значение...

Небольшая задачка. Нахождение корней многочлена.
Здравствуйте скажу сразу в области javascript не силен, есть набросок скрипта для нахождения корней многочлена, но она почему-то не...

Вычисление корней методом хорд
Доброго времени суток. необходимо написать программу для нахождения корней ф-ции методом хорд. функция выбирается одна из 3х предложенных,...

Определение корней уравнения методом хорд
Доброго времени суток) Помогите, пожалуйста, скорректировать код программы для вычисления корней трасцендентного уравнения методом хорд....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и источниками (напряжения, ЭДС и тока). Найти токи и напряжения во всех элементах. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru