Определенные интегралы

Ответить

Код подтверждения
Введите код в точности так, как вы его видите. Регистр символов не имеет значения.

BBCode ВКЛЮЧЁН
[img] ВКЛЮЧЁН
[url] ВКЛЮЧЁН
Смайлики ОТКЛЮЧЕНЫ

Обзор темы
   

Развернуть Обзор темы: Определенные интегралы

Определенные интегралы

_Azazel_ » 17 ноя 2010, 14:47

Согласно постановке задачи, требуется в Delphi посчитать значение определенного интеграла методом Симпсона,прямоугольников и трапеций, а значение и номер каждой итерации вывести в StringGrid.
Вот программа.

Код: Выделить всё

unit Unit2;
 
interface
 
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, StdCtrls, Buttons, ExtCtrls;
 
type
  TForm2 = class(TForm)
    RadioGroup1: TRadioGroup;
    Edit1: TEdit;
    Label1: TLabel;
    StringGrid1: TStringGrid;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;
 
var
  Form2: TForm2;
 
implementation
 
{$R *.dfm}
 
var
 
  c,f, x, y, a, b, y2, fh,K,s,s1,fa,fb: Extended;
    pryam, trapec: Extended;
    shag,i:Extended;
    n:integer;
procedure TForm2.BitBtn1Click(Sender: TObject);
 
begin
a:=2;
b:=3;
pryam:=0;
n:=strtoint(Edit1.text);
x:=a;
shag:=(y-x)/n;
i:=0;
while (x<b) do
begin
pryam:=pryam+shag*(x*(sqrt(1+3*sqr(x))));
x:=x+shag;
i:=i+1;
end;
end;
 
procedure TForm2.BitBtn2Click(Sender: TObject);
begin
a:=2;
b:=3;
trapec:=0;
n:=strtoint(Edit1.text);
x:=a;
shag:=(y-x)/n;
f:=x*(sqrt(1+3*sqr(x)));
fh:=(x+shag)*(sqrt(1+3*sqr(x+shag)));
i:=0;
while (x<b) do
begin
trapec:=trapec+shag*(f+(fh/2));
x:=x+shag;
i:=i+1;
end;
end;
 
procedure TForm2.BitBtn3Click(Sender: TObject);
var
m:integer;
j:integer;
begin
a:=2;
b:=3;
trapec:=0;
n:=strtoint(Edit1.text);
c:=1;
s:=0;
f:=x*(sqrt(1+3*sqr(x)));
fa:=a*(sqrt(1+3*sqr(a)));
fb:=b*(sqrt(1+3*sqr(b)));
shag:=(b-a)/n;
m:=n-1;
for j:=1 to m do
    begin
      x:=x+shag;
      s:=s+(3+c)*f;
      c:=-c;
    end;
s1:=fa+fb;
s:=shag*(s1+s)/3;
end;
end.
При запуске почему-то происходит переполнение. Помогите пожалуйста с этим разобраться.(И что сделать со StringGrid тоже)

Вернуться к началу