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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 01.06.2010, 13:50   #1
Falkone
 
Регистрация: 16.05.2010
Сообщений: 3
Хорошо дифференцирование

мне нужна вот такая программа "численное дифференцирования в известных точках"
у меня есть как бы сама программа на паскале, вот код:
Код:
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!
Надеюсь на понимание!
Falkone вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
класс Символьное дифференцирование patriarch Помощь студентам 1 23.11.2009 11:06