численные методы. решение нелинейных уравнений

(1/11) > >>

leahov:
Помогите оформить задание сделанное в turbo c++. Нужно оформить его в форме и именно в билдере (ну такой вот бзик у препода :) ) Ниже привожу код
Код
#include<stdio.h>
#include<math.h>
#include<conio.h>
#include <iostream.h>
 
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;
}
float absolute(float x)
{
   return x < 0 ? -x : x;
}
 
void chordes(float a, float b, float eps)
{
 
   if(f(a)*f(b) < 0)
   {
       cout << "Chordes: a i b nepravilnye";
       return;
   }
   float x0 = a;
   float xf = b;
 
   if(f(a)*fd2x(a) > 0)
   {
       x0 = b;
       xf = a;
   }
 
   int step = 1;
 
   float x1 = x0 - f(x0)*(xf-x0)/(f(xf)-f(x0));
 
 
   while(absolute(x1-x0) > eps)
   {
       x0 = x1;
       x1 = x0 - f(x0)*(xf-x0)/(f(xf)-f(x0));
       step = step + 1;
   }
 
   cout << "Chordes: x: " << x1 << "\nf(x): " << f(x1) << "\nsteps:" << step;
}
 
void sek(float a, float b, float eps)
{
 
   if(f(a)*f(b) < 0)
   {
       cout << "Sekush: a i b nepravilnye";
       return;
   }
   float x0 = a;
   float x1 = a + eps;
 
   if(f(a)*fd2x(a) < 0)
   {
       x0 = b;
       x1 = b - eps;
   }
 
   int step = 1;
 
   float x = x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0));
 
   x0 = x1;
   x1 = x;
 
 
   while(absolute(x1-x0) > eps)
   {
       x = x1 - f(x1)*(x1 - x0)/(f(x1) - f(x0));
       x0 = x1;
       x1 = x;
       step = step + 1;
   }
 
   cout << "Sek: x: " << x1 << "\nf(x): " << f(x1) << "\nsteps:" << step;
}
 
void kasat(float a, float b, float eps)
{
 
   if(f(a)*f(b) < 0)
   {
       cout << "Sekush: a i b nepravilnye";
       return;
   }
   float x0 = a;
 
   if(f(a)*fd2x(a) < 0)
   {
       x0 = b;
   }
 
   int step = 1;
 
   float x1 = x0 - f(x0)/fdx(x0);
 
   while(absolute(x1-x0) > eps)
   {
       x0 = x1;
       x1 = x0 - f(x0)/fdx(x0);
       step = step + 1;
   }
 
   cout << "Kasat: x: " << x1 << "\nf(x): " << f(x1) << "\nsteps:" << step;
}
 
void main()
{
   float a, b, eps;
   cout << "Vvedite a, b, epsilon: ";
   cin >> a >> b >> eps;
 
   chordes(a, b, eps);
   sek(a, b, eps);
   //kasat(a, b, eps);
 
}// end main()
 
Помогите это оформить в билдере

AVC:
Builder 5. Консольное приложение.

leahov:
Цитировать

Автор: AVC
Цитата
Builder 5. Консольное приложение.


или я чего то не понял с архива, или я чего то не понял. Да, есть ошибка (не заметил), сейчас исправлю прямо здесь, но мне нужно визуально это оформит - чтоб форма, кнопочки, едиты и тд.

Edifier:
Создай проект и в нем нужные едиты для ввода a, b, eps. Потом кнопку рассчитать, на нее повесь вызов функций. Сами функции добавь в проект копи пастом.

Чтобы перенести функции, их нужно объявить в .h файле проекта, а потом в cpp описАть.

Это пример h файла:

Код:

class TForm1 : public TForm
{
__published: // IDE-managed Components

private: // User declarations
 
public: // User declarations

float fdx(float x);
void chordes(float a, float b, float eps);
 // и т.д.   
};   


А это пример cpp:

Код:

float TForm1::fdx(float x)
{
return 3*x*x +1;
}

void TForm1::chordes(float a, float b, float eps)
{
    if(f(a)*f(b) < 0)   
    {       
        ShowMessage( "Chordes: a i b nepravilnye");
        return;   
    }   
 float x0 = a;   
 float xf = b;
    if(f(a)*fd2x(a) > 0)
   {        x0 = b;   
           xf = a;   
   }   
 int step = 1;   
 float x1 = x0 - f(x0)*(xf-x0)/(f(xf)-f(x0));   
   while(absolute(x1-x0) > eps)   
{        x0 = x1;       
 x1 = x0 - f(x0)*(xf-x0)/(f(xf)-f(x0));       
 step = step + 1;    }   
  ShowMessage("Chordes: x: " + FloatToStr(x1) + "\nf(x): " +FloatToStr( f(x1)) + "\nsteps:" + FloatToStr(step));
}

void __fastcall TForm1::Button1Click(TObject *Sender)
{
float a, b, eps;
a = StrToFloat(Edit1->Text);
b = StrToFloat(Edit2->Text);
eps = StrToFloat(Edit3->Text);

//Edit1, Edit2, Edit3 это компоненты на форме, в которые вводятся a b и eps
chordes(a, b, eps);
sek(a, b, eps);
//kasat(a, b, eps);
}

AVC:
Цитата: leahov от 26 Ноябрь 2007, 17:28:01

или я чего то не понял но мне нужно визуально это оформит - чтоб форма, кнопочки, едиты и тд.

Ну так так и надо было писать. Я просто перегнал проект в билдер.

Навигация

[0] Главная страница сообщений

[#] Следующая страница