Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.12.2011, 21:48   #1
alex55
 
Регистрация: 21.03.2009
Сообщений: 9
По умолчанию Вычислить интеграл методом трапеций

При запуске выдает ошибку,подскажите, что не так я сделал? Задание такое: Вычислить значение определенного интеграла методом трапеций с точностью e. инт.bmp
Код:
 unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, Math;

type
  TForm1 = class(TForm)
    Edit2: TEdit;
    Edit3: TEdit;
    Button1: TButton;
    Button2: TButton;
    StaticText1: TStaticText;
    StaticText2: TStaticText;
    ComboBox1: TComboBox;
    Label1: TLabel;
    Image1: TImage;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Edit2KeyPress(Sender: TObject; var Key: Char);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);

  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

function f(x: double): double;
var del : double;
begin
   f:=ln((-1*x*x+1)/(x*x+2));

end;

procedure Trap;
var
   n, a, b : integer;
   s, h, result, l, eps : double;
begin
   eps := StrToFloat(Form1.ComboBox1.Text);
   a := StrToInt(Form1.Edit2.Text);
   b := StrToInt(Form1.Edit3.Text);
   if a >= b then
      begin
         MessageBox(0, 'Значения начала и конца отрезка заданы не корректно!', 'Ошибка!',MB_OK or MB_ICONERROR);
         Form1.Edit2.SetFocus;
         exit
      end;
 
   n := 1;
   h := b - a;
   result := (f(a)*h+ f(b))/2* h;
   n := 1;
   repeat
      s := result;
      n := n * 2;
      h := (b - a) / n;
      l := a;
      result := 0;
    
      while l < b do
      begin
         result := result + f(l) * h;
         l := l + h;
      end;
    until abs(s - result) <= eps;
    Form1.StaticText2.Caption := FloatToStrf(s, TFloatFormat(0),8,0);
end;



procedure TForm1.Button2Click(Sender: TObject);
begin
   Close;
end;
  


end.
alex55 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вычисление интеграла методом трапеций Rikus Помощь студентам 2 11.11.2011 00:43
вычисление интеграла методом трапеций Sepherot Помощь студентам 1 21.12.2010 22:18
Решение интеграла методом трапеций GOODMAN Паскаль, Turbo Pascal, PascalABC.NET 2 12.04.2010 22:09
вычислить определенный интеграл методом прямоугольников ronn Помощь студентам 3 27.05.2009 19:44
Методом трапеций высислить значение интеграла zloygeniyrus Помощь студентам 0 09.04.2009 08:44