![]() |
|
|
#1
|
|||
|
|||
![]() мне нужна вот такая программа "численное дифференцирования в известных точках"
у меня есть как бы сама программа на паскале, вот код: Код:
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! Надеюсь на понимание! |
#2
|
||||
|
||||
![]() Написал в личку...
В начале был Бит, потом Байт и только потом появилось Слово... |