![]() |
|
#1
|
|||
|
|||
![]() Привет всем. У меня есть код программы, метода прогонки. Плиз помогите. Нужно сделать так, что бы в StringGrid1 числа вводились не рандомно, а в ручную. Считать она считает. но мне требует ввод данных самому. Плз, помогите кто может ^_^
Код:
unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Grids; const n=4; type m=array [1..(n+1),1..n] of real; ml=array [1..n] of real; TForm1 = class(TForm) StringGrid1: TStringGrid; StringGrid2: TStringGrid; StringGrid3: TStringGrid; Button1: TButton; Button2: TButton; procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; i,j:integer; f:m; x,a,b:ml; d:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin for i:=1 to n+1 do // Заполнение матрицы for j:=1 to n do begin if i=j then f[i,j]:=random(5)+1 else if (i-j)=1 then f[i,j]:=random(5)+1 else if (j-i)=1 then f[i,j]:=random(5)+1 else if i=(n+1) then f[i,j]:=random(5)+1 else f[i,j]:=0; str(f[i,j]:10:3,d); StringGrid1.Cells[(i-1), (j-1)]:=d; end; randomize(); for i:=1 to n do // Пряхой ход begin if (f[i,i]+f[i-1,(i)]*a[i-1])=0 then begin a[i]:=0; b[i]:=0; end else begin if i=n then a[i]:=0 else a[i]:=-f[i+1,(i)]/(f[i,i]+f[i-1,(i)]*a[i-1]); b[i]:=(f[(n+1),i]-f[i-1,(i)]*b[i-1])/(f[i,i]+f[i-1,(i)]*a[i-1]); end; end; for i:=1 to n do begin str(a[i]:10:3,d); StringGrid2.Cells[(i-1), 0]:=d; str(b[i]:10:3,d); StringGrid2.Cells[(i-1), 1]:=d; end; for i:=n downto 1 do // Обратный ход begin x[i]:=a[i]*x[i+1]+b[i]; str(x[i]:10:3,d); StringGrid3.Cells[I-1,0]:=d; end; end; procedure TForm1.Button2Click(Sender: TObject); begin close; end; end. Последний раз редактировалось Admin, 21.12.2010 в 09:42. |