![]() |
1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным.
В описании темы указываем язык!!!
![]() ![]() |
![]() |
leahov |
![]()
Сообщение
#1
|
Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Мужской Реальное имя: leahov Репутация: ![]() ![]() ![]() |
подскажите пожалуйста как исправить ошибку в коде
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include<math.h>
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
float f(float x)
{
// return x*x*x + 3*x - 2;
return x*x*x + x - 5;
}
float fdx(float x)
{// return 3*x*x +3;
return 3*x*x +1;
}
float fd2x(float x)
{
return 4*x;
}
//---------------------------------------------------------------------------
void TForm1::modinewton(float x0, float x1, float epsilon, int step)
{
if (abs(x1-x0) > epsilon)
{
ListBox2->Items->Add("x: "+FloatToStr(x1));
ListBox2->Items->Add("f(x): "+FloatToStr(f(x1)));
ListBox2->Items->Add("steps: "+IntToStr(step));
return;
}
const float xc = fdx(x0);
float x1 = x0 - f(x0)/xc;
modinewton(x0, x1, epsilon, step + 1);
}
void __fastcall TForm1::bExe2Click(TObject *Sender)
{
float a = StrToFloat(Edit1->Text);
float b = StrToFloat(Edit2->Text);
float epsilon = StrToFloat(Edit3->Text);
if(f(a)*f(b) < 0)
{
ListBox2->Items->Add("данные неверны");
return;
}
else
{
float x0 = a;
if(f(a)*fd2x(a) < 0)
{
x0 = b;
}
ListBox2->Items->Add("===================================");
modinewton(x0, x1, epsilon, 1);
ListBox2->Items->Add("===================================");
ListBox2->Items->Add("");
}
}
//---------------------------------------------------------------------------
выдает ошибки: [C++ Error] Unit1.cpp(101): E2238 Multiple declaration for 'x1' [C++ Error] Unit1.cpp(128): E2451 Undefined symbol 'x1' |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
void TForm1::modinewton(float x0, float x1, float epsilon, int step)
{
if (abs(x1-x0) > epsilon)
{
ListBox2->Items->Add("x: "+FloatToStr(x1));
ListBox2->Items->Add("f(x): "+FloatToStr(f(x1)));
ListBox2->Items->Add("steps: "+IntToStr(step));
return;
}
const float xc = fdx(x0);
x1 = x0 - f(x0)/xc; // <--- Убрать напрочь описание типа...
modinewton(x0, x1, epsilon, step + 1);
}
|
leahov |
![]()
Сообщение
#3
|
Новичок ![]() Группа: Пользователи Сообщений: 39 Пол: Мужской Реальное имя: leahov Репутация: ![]() ![]() ![]() |
void TForm1::modinewton(float x0, float x1, float epsilon, int step)
{
if (abs(x1-x0) > epsilon)
{
ListBox2->Items->Add("x: "+FloatToStr(x1));
ListBox2->Items->Add("f(x): "+FloatToStr(f(x1)));
ListBox2->Items->Add("steps: "+IntToStr(step));
return;
}
const float xc = fdx(x0);
x1 = x0 - f(x0)/xc; // <--- Убрать напрочь описание типа...
modinewton(x0, x1, epsilon, step + 1);
}
а как же она считать будет? ведь это формула расчета |
volvo |
![]()
Сообщение
#4
|
Гость ![]() |
Тебе же Вячеслав написал, в чем ошибка... Переменная x1 уже определена в заголовке, ничего с твоей формулой не случилось, я оставил одно определение переменной, вычисление ее значения никто не трогал...
|
![]() ![]() |
![]() |
Текстовая версия | 20.07.2025 4:01 |