мне нужна вот такая программа "численное дифференцирования в известных точках"
у меня есть как бы сама программа на паскале, вот код:
Код:
PROGRAM DIF1 (INPUT,OUTPUT);
CONST N=5;
K=1;
L=5;
VAR Y: ARRAY [1..N] OF REAL;
R: ARRAY [1..5] OF REAL;
H,Z,S:REAL;
J,I2,I1,I:INTEGER;
BEGIN
FOR I:=1 TO N DO READ (X[i]);
READLN;
READLN(H);
READLN(Z);
CASE K OF
1: BEGIN R[1]:=1; R[2]:=-0.5; R[3]:=1/3; R[4]:=-0.25; R[5]:=0.2;
2: BEGIN R[0]:=1; R[2]:=1; R[3]:=-1; R[4]:=11/12; R[5]:=-5/6;
END;
S:=0;
FOR J:=1 TO L DO
BEGIN
I2:=N-J;
IF I2 < > 1 THEN
BEGIN
FOR I1:=1 TO I2 DO Y[I1]:=Y[I1+1]-Y[I1];
S:=S+Y[i]*R[i]
END:
S:=S/H;
IF K=2 THEN S:=S/H;
WRITE (S);
END.
и есть алгоритм
вот что у меня вышло написать на Delphi
по этому всему:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids;
type
TForm1 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Function y(x:real):real;
begin
y:=x*(2*x);
end;
procedure TForm1.Button1Click(Sender: TObject);
var
k,x:real;
y: array [1..5] of real;
r: array [1..5] of real;
h,z,s:real;
j,i1,i2,i,n,l:integer;
begin
k:=strtoint(edit1.Text);
l:=strtoint(edit2.Text);
h:=strtoint(edit3.Text);
if k=1 then
r[1]:=1;r[2]:=-0.5;r[3]:=1/3;r[4]:=-0.25;r[5]:=0.2;
if k=2 then
r[1]:=0;r[2]:=1;r[3]:=-1;r[4]:=11/12;r[5]:=-5/6;
s:=0;
for j:=1 to l do
begin
i2:=n-j;
if i2 <> 1 then
begin
for i:=1 to i2 do
y[i1]:=y[i1+1]-y[i1];
s:=s+y[i]*r[i];
s:=s/h;
if k=2 then s:=s/h;
end;
end;
end;
end.
помогите мне сделать эту программу, срочно она мне нужна, если кто то сделает мне ее полностью то будет вознаграждение по средствам WebMoney!
Надеюсь на понимание!