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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2010, 19:21   #1
Igolka6662
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 30
Злость Интерполяция полиномом Ньютона

Доброго времени суток!
Прошу помочь в написании программы... суть помощи заключается в том,что я никак не могу сопоставить типы файлов в процедуре TMain.Button3Click все время отказывается работать!
Суть программы в том,что у нас дана таблица и по этой таблице мы должны найти конечные разности,а потом вывести полином и построить график полинома.
Осталось чуть,но мучаюсь уже долго....
Igolka6662 вне форума Ответить с цитированием
Старый 26.11.2010, 19:22   #2
Igolka6662
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 30
По умолчанию

Код программы
unit MainUnit;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ExtCtrls, XPMan, StdCtrls, Grids, ComCtrls, TeEngine,
Series, TeeProcs, Chart;

type
per = array of real;
Vector = array[1..100] of Extended;
Matrix = array[1..100] of Vector;
XX = array of Extended;
YY = array of Extended;
// X = array[1..100] of real;
// F = array[1..100] of real;
dy = array of real;
TMain = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
Timer1: TTimer;
XPManifest1: TXPManifest;
StringGrid1: TStringGrid;
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
UpDown1: TUpDown;
Chart1: TChart;
Series1: TLineSeries;
Series2: TLineSeries;
Edit2: TEdit;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
Edit3: TEdit;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Button4: TButton;
Button3: TButton;
StringGrid2: TStringGrid;
Edit4: TEdit;
procedure N3Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
function fact(ch:integer):integer;

{ Private declarations }
public
{ Public declarations }
end;

var
Main: TMain;
a:Matrix;
//XX:Matrix;
//YY:Matrix;
XXX:XX;
YYY:YY;
b:array of real;
n,i,j:integer;
h,d,x,q,polinom:real;
y0,x0ouble;

implementation

uses InfoUnit;

{$R *.dfm}

procedure TrimWorkingSet;
var
MainHandle: THandle;
begin
if Win32Platform = VER_PLATFORM_WIN32_NT then
begin
MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false, GetCurrentProcessID);
SetProcessWorkingSetSize(MainHandle , DWORD(-1), DWORD(-1));
CloseHandle(MainHandle);
end;
end;

function TMain.fact(ch:integer): integer;
var fac:integer;
begin
fac:=1;
for ch:=1 to ch do
fac:=fac*ch;
fact:=fac;
end;


procedure TMain.N3Click(Sender: TObject);
begin
Main.Close;
end;

procedure TMain.N2Click(Sender: TObject);
begin
Form2.ShowModal;
end;

procedure TMain.Timer1Timer(Sender: TObject);
begin
TrimWorkingSet;
end;

{Function POlinom(n: integer; d:real;x,y er):real;
var
l:real;
k,i:integer;
p: real;
begin
L:=y[0];
P:=1;
for k:=1 to n do begin
P:=P*(D-X[k-1]);
for i:=0 to (n-k) do begin
Y[i]:=(y[i+1]-y[i])/(x[i+k]-x[i]);
end;
L:=L+P*y[0];
end;
Polinom:=l;
end; }



procedure TMain.FormCreate(Sender: TObject);
begin
n:=StrToInt(Edit1.Text);
h:=StrToFloat(Edit3.Text);
x0:=StrToInt(Edit2.Text);
d:=(x-x0)/h;

end;

procedure TMain.Edit1Change(Sender: TObject);
begin
with StringGrid1, Edit1 do
begin
ColCount := StrToIntDef(Text, 5);
//RowCount := StrToIntDef(Text, 5);
end;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
StringGrid1.Cells[0,0]:=Edit2.Text;
end;

procedure TMain.Button2Click(Sender: TObject);
begin
Label6.Visible:=True;
For i:=1 to {StringGrid1.ColCount-1} n-1 do
begin
//h:=(h+h)/2;
//StringGrid1.Cells[i,0]:=FloatToStr(x0+h*i);
StringGrid1.Cells[i,0]:=FloatToStr((h*i)+StrToFloat(Strin gGrid1.Cells[0,0]));
end;


end;

procedure TMain.Button4Click(Sender: TObject);
begin
For i:=0 to n do
begin
for j:=0 to n do
begin
StringGrid1.Cells[i,j]:=IntToStr(0);
end;
end;

end;

procedure TMain.Button3Click(Sender: TObject);
begin
for j := 0 to n - 1 do
begin
for i := 0 to n - 1 do
begin
a[i,j]:=StrToFloatDef(StringGrid1.Cells[i,j],0);

//XX[i]:=a[i];
{for i:=0 to n do
XXX[i]:=StrToFloatDef(StringGrid1.Cells[0,j],0);
//YY[i]:=a[j];
for i:=1 to n do
YYY[i]:=StrToFloatDef(StringGrid1.Cells[1,j],0);
x0:=XXX[0];
y0:=YYY[0];}

Edit4.Text:=FloatToStr(x0);
q:=(x-x0)/h;
polinom:=y0;


end;
end;
end;

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


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Полиномиальная интерполяциия функции полиномом Ньютона Igolka6662 Помощь студентам 2 24.11.2010 21:01
Интерполяция Ньютона вперед Darknes Общие вопросы C/C++ 1 16.09.2010 07:54
Интерполяция изображений(Сплайн интерполяция)?????) Danyla Помощь студентам 0 13.04.2010 09:08
Помогите....с полиномом! alisa87 Общие вопросы C/C++ 1 26.05.2009 16:13