IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

 
 Ответить  Открыть новую тему 
> Множественное объявление идентификатора, Builder c++
leahov
сообщение 7.12.2007 17:26
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской
Реальное имя: leahov

Репутация: -  0  +


подскажите пожалуйста как исправить ошибку в коде



//---------------------------------------------------------------------------

#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'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2007 17:39
Сообщение #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
сообщение 7.12.2007 18:00
Сообщение #3


Новичок
*

Группа: Пользователи
Сообщений: 39
Пол: Мужской
Реальное имя: leahov

Репутация: -  0  +


Цитата(volvo @ 7.12.2007 18:39) *

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

}




а как же она считать будет? ведь это формула расчета
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 7.12.2007 18:13
Сообщение #4


Гость






Тебе же Вячеслав написал, в чем ошибка... Переменная x1 уже определена в заголовке, ничего с твоей формулой не случилось, я оставил одно определение переменной, вычисление ее значения никто не трогал...
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия 20.07.2025 4:01
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"