![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 24.11.2010
Сообщений: 30
|
![]()
Доброго времени суток!
Прошу помочь в написании программы... суть помощи заключается в том,что я никак не могу сопоставить типы файлов в процедуре TMain.Button3Click все время отказывается работать! Суть программы в том,что у нас дана таблица и по этой таблице мы должны найти конечные разности,а потом вывести полином и построить график полинома. Осталось чуть,но мучаюсь уже долго.... |
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 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,x0 ![]() 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 ![]() 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 | Помощь студентам | 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 |