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

Есть готовая программа , мне нужна ваша умная голова чтоб ее доработать, а то никак не могу

25.05.2013, 15:10. Просмотров 736. Ответов 9
Метки нет (Все метки)


Такая проблема, есть у меня код программы (она работает), решения нелинейный уравнений методом хорд. Так вот она решает по уравнению sin(x). Надо сделать вот что, надо сделать так чтоб я мог вводить еще переменные типо a*sin(b*x), при этом а и b надо водить в Еdit. У меня все время ошибка. Помогите!

Готовый код
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
85
86
87
88
89
90
91
92
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 #include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
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::N2Click(TObject *Sender)
{
float z,y;
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
Memo1->Lines->Append("X\tY");
 for (z=a; z<b+h/2; z+=h)
 {
 y=sin(z);
 if (CheckBox1->Checked)
 Memo1->Lines->Append(FloatToStrF(z,ffFixed,2,2)+"\t"+FloatToStrF(y,ffFixed,2,2));
 }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N3Click(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
Edit4->Clear();
CheckBox1->Checked=false;
CheckBox2->Checked=false;
Memo1->Clear();
Series1->Clear();
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked)
Chart1->Visible=true;
 
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
for(float z = a; z<b;z+=h)
  {
  Series1->Add(sin(z),FloatToStrF(z,ffFixed,2,2),clRed);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
for(float z = a; z<b;z+=h)
  {
  Series1->Add(sin(z),FloatToStrF(z,ffFixed,2,2),clRed);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Edit4->Text = (m_ch( StrToFloat(Edit1->Text), StrToFloat(Edit2->Text), 0.001));
}
//---------------------------------------------------------------------------

Это то что я пытался переделать и ничего не получилось .
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
85
86
87
88
89
90
91
92
93
94
95
96
97
#include <vcl.h>
#pragma hdrstop
 #include <math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
float m_ch(float, float, float);
float your_function(float);
 
float m_ch(float x1, float x2, float e,float a1,float b1,float c1,float d1){
    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,float a,float b,float c,float d){
    return (a*sin(b*x)+c*cos(d*x));
    }
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N2Click(TObject *Sender)
{
float z,y;
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
Memo1->Lines->Append("X\tY");
 for (z=a; z<b+h/2; z+=h)
 {
 y=sin(z);
 if (CheckBox1->Checked)
 Memo1->Lines->Append(FloatToStrF(z,ffFixed,2,2)+"\t"+FloatToStrF(y,ffFixed,2,2));
 }
}
//---------------------------------------------------------------------------
 
void __fastcall TForm1::N3Click(TObject *Sender)
{
Edit1->Clear();
Edit2->Clear();
Edit3->Clear();
Edit4->Clear();
CheckBox1->Checked=false;
CheckBox2->Checked=false;
Memo1->Clear();
Series1->Clear();
 
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::CheckBox2Click(TObject *Sender)
{
if(CheckBox2->Checked)
Chart1->Visible=true;
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
float m = StrToFloat(Edit5->Text);
float n = StrToFloat(Edit6->Text);
float l = StrToFloat(Edit7->Text);
float k = StrToFloat(Edit8->Text);
for(float z = a; z<b;z+=h)
  {
  Series1->Add(m*sin(n*z)+l*cos(k*z),FloatToStrF(z,ffFixed,2,2),clRed);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::N5Click(TObject *Sender)
{
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float h = StrToFloat(Edit3->Text);
float m = StrToFloat(Edit5->Text);
float n = StrToFloat(Edit6->Text);
float l = StrToFloat(Edit7->Text);
float k = StrToFloat(Edit8->Text);
for(float z = a; z<b;z+=h)
  {
  Series1->Add(m*sin(n*z)+l*cos(k*z),FloatToStrF(z,ffFixed,2,2),clRed);
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
 Edit4->Text = (m_ch( StrToFloat(Edit1->Text), StrToFloat(Edit2->Text), 0.001,StrToFloat(Edit5->Text),StrToFloat(Edit6->Text),StrToFloat(Edit7->Text),StrToFloat(Edit8->Text)));
}
//---------------------------------------------------------------------------
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.05.2013, 15:10
Ответы с готовыми решениями:

Нужна умная голова!
Помогите пожалусто решить задания, очень трудные решил только второе(

Нужна готовая программа с сетями обратного распространения ошибки. У кого есть?
Всем привет. Не у кого нету случайно готовой проги в C#(Windows Form) с сетями обратного...

Не могу додумать программку, есть ошибочка, никак немогу обнарожить, прошу помочь мне в этом
Задание такое: В двумерном целочисленном массиве заменить максимальный элемент каждой строки на...

Курсовую завтра защищать, мне нужна ваша ваши советы, не оставайтесь равнодушными
Привет. Сессия подкралась незаметно, а я был на роботе. Теперь думаю, как сдать курсач. Нашел...

9
LK
Заблокирован
25.05.2013, 15:20 2
напишите текст ошибки (ошибок)
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
25.05.2013, 15:21  [ТС] 3
Цитата Сообщение от bezborodko Посмотреть сообщение
У меня все время ошибка
Вот такая
[Linker Error] Unresolved external 'your_function(float)' referenced from D:\Адрес\UNIT1.OBJ
0
LK
Заблокирован
25.05.2013, 15:23 4
закомментируйте для начала строчку
your_function(float)
в заголовочном файле, если она там есть, и удалите файл UNIT1.OBJ .
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
25.05.2013, 15:33  [ТС] 5
Цитата Сообщение от LK Посмотреть сообщение
закомментируйте для начала строчку
когда я ее закомметировал мне дало ошибку мол ее нет что в принципе логично, и вот такая ошибка теперь [C++ Error] Unit1.cpp(17): E2268 Call to undefined function 'your_function', а файл UNIT1.OBJ появляется после каждой компиляции.
0
LK
Заблокирован
25.05.2013, 15:39 6
все правильно
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
25.05.2013, 15:42  [ТС] 7
но программа так и не работает. Просто одной ошибки избавился а две новые заработал. Как сделать так что бы она заработала?
0
LK
Заблокирован
25.05.2013, 15:47 8
я подумал, что вы удалили функцию и не удалили ее прототип, если функция жива, значит, ничего комментировать не надо, и то, что файл UNIT1.OBJ появляется после каждой компиляции - это так и должно быть.
или вы имели ввиду две новые/другие ошибки?
0
1 / 1 / 0
Регистрация: 23.11.2012
Сообщений: 44
25.05.2013, 15:57  [ТС] 9
ну вот функция жива, почему ошибка? что она означает? Как ее исправить? Вот какая фишка стоит мне поставить(в первом коде) не sin(x) a например 2*sin(3*x) то все работает прекрасно. Как только я в функцию добавляю еще 2 переменные ошибка. Может надо переписать функцию или что я вопще не понимаю.
0
1679 / 881 / 201
Регистрация: 25.11.2009
Сообщений: 1,798
25.05.2013, 23:26 10
в строке 10 у тебя прототип
C++
1
float your_function(float);
который принимает 1 параметр. А дале ты пишешь реализацию функции
C++
1
2
3
float your_function(float x,float a,float b,float c,float d){
    return (a*sin(b*x)+c*cos(d*x));
    }
которая принимает 5 параметров! так нельзя. Если изменяешь набор принимаемых функцией параметров, переделывай и прототип
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
...
float m_ch(float, float, float);
float your_function(float, float, float, float, float);  //вот тут!!!
 
float m_ch(float x1, float x2, float e,float a1,float b1,float c1,float d1)
{
    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,float a,float b,float c,float d)
{
    return (a*sin(b*x)+c*cos(d*x));
}
...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.05.2013, 23:26

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Нужна готовая программа на Си++ с уклоном на физику
=) дорогие программисты помогите студенту ) нужна готовая программа на Си++ ) очень хорошо если в...

Я новичок в PHP и мне дали задание,а я справиться не могу никак
Есть сайт который выдергивает данные из базы данных при обновлений страницы, а именно мэйлы и...

народ срочно нужна ваша помощь,не могу разобраться с прогой
Сжать n мерный целочисленный массив,удалив из него все элементы,величина которых находится в...

Нужна любая готовая программа по решению матриц
Приветствую Прошу Вас дайте готовую программу по решению матриц, не важно каким методом, главное...

Нужна готовая, заполненная программа по 1с 8.2 на любую тему
Если есть готовая база, скиньте, кому не жалко

Мне нужно сделать одну вещь на сайте. Но никак не могу разобраться
Есть такой JS-скриптик $(document).ready(function(){ $('#getContent').click(function(){ $.ajax({...


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.