![]() |
|
|
#1
|
|||
|
|||
|
надо прочитать матрицу NxN целых чисел. Идея есть, но она не работает
Код:
procedure TForm1.Button1Click(Sender: TObject);
var nproc,i,j:0..n;
a:matr;
begin
nproc:=upDown1.Position;
while nproc>=n do button1.Caption:='N должно быть меньше 100';
nproc:=nproc-1;
with stringgrid1 do
begin stringgrid1.ColCount:=updown1.Position-1;
stringgrid1.RowCount:=stringgrid1.ColCount-1;
for i:=0 to nproc do
for j:=0 to nproc do a[i,j]:=strToInt(cells[j,i]);
endModeratorial: Пользуемся тегами!!! Последний раз редактировалось Admin, 10.12.2008 в 16:00. |
|
#2
|
|||
|
|||
|
А где описание типа matr? Это раз.
Два. А что конкретно надо делать-то? Здесь только заполнение матрицы. |
|
#3
|
|||
|
|||
|
Есть подозрение что на строке
Код:
while nproc>=n do button1.Caption:='N должно быть меньше 100'; |
|
#4
|
|||
|
|||
|
Цитата:
|
|
#5
|
|||
|
|||
|
Цитата:
Код:
const n=100; type matr=array[1..n,1..n] of integer; |
|
#6
|
|||
|
|||
|
хехехе, был у меня в дипломе подсчет определителя матрицы 14*14 методом квадратов если не ошибаюсь
) рекурсия и все радости жизни...для таких размерностей конечно это несерьезно советую поискать реализацию в инете ![]() |
|
#7
|
|||
|
|||
|
Ты думаешь все помнят что такое опреелитель матрицы и как он считается??? Формулу в студию.
|
|
#8
|
|||
|
|||
|
Цитата:
|
|
#9
|
|||
|
|||
|
А данные то в StringGrid есть?
|
|
#10
|
|||
|
|||
|
Цитата:
|
|
#11
|
|||
|
|||
|
Весь проект кинь сюда - посмотрю.
|
|
#12
|
|||
|
|||
|
Цитата:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ComCtrls, Grids;
const n=100;
type matr=array[1..n,1..n] of integer;
type
TForm1 = class(TForm)
LabeledEdit1: TLabeledEdit;
Label1: TLabel;
Button1: TButton;
Button2: TButton;
UpDown1: TUpDown;
StringGrid1: TStringGrid;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin close
end;
procedure TForm1.Button1Click(Sender: TObject);
var nproc,i,j:0..n;
a:matr;
begin
nproc:=upDown1.Position;
while nproc>=n do button1.Caption:='N должно быть меньше 100';
nproc:=nproc-1;
with stringgrid1 do
begin stringgrid1.ColCount:=updown1.Position-1;
stringgrid1.RowCount:=stringgrid1.ColCount-1;
for i:=0 to nproc do
for j:=0 to nproc do a[i,j]:=strToInt(cells[j,i]);
end
end;
end.Последний раз редактировалось nav, 12.12.2008 в 13:59. |
|
#13
|
|||
|
|||
|
На:
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ExtCtrls, ComCtrls;
const
n = 100;
type
ntype = 0..n;
matr = Array [1..n] Of Array [1..n] Of Integer;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
UpDown1: TUpDown;
LabeledEdit1: TLabeledEdit;
StringGrid1: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure UpDown1ChangingEx(Sender: TObject; var AllowChange: Boolean;
NewValue: Smallint; Direction: TUpDownDirection);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
Close;
end;
procedure TForm1.Button2Click(Sender: TObject);
var
nproc : ntype;
i, j : integer;
a : matr;
Buf : String;
begin
nproc:=upDown1.Position;
If nproc >= n Then
Begin
ShowMessage('N должно быть меньше 100');
Exit;
End;
Dec(nproc);
with stringgrid1 do
for i:=0 to nproc do
for j:=0 to nproc do
a[i+1,j+1]:=strToInt(cells[j,i]);
// Check mart
Buf := '';
For i := 0 To nproc Do
Begin
For j := 0 To nproc Do
Buf := Buf + IntToStr(a[i+1,j+1]) + ' - ';
Buf := Buf + #13#10;
End;
ShowMessage(Buf);
end;
procedure TForm1.UpDown1ChangingEx(Sender: TObject;
var AllowChange: Boolean; NewValue: Smallint;
Direction: TUpDownDirection);
begin
StringGrid1.ColCount := NewValue;
StringGrid1.RowCount := NewValue;
end;
end. |
|
#14
|
|||
|
|||
|
Цитата:
|
|
#15
|
|||
|
|||
|
Да, собственно, у тебя было почти правильно. Только у тебя массив начинается с 1, а ты пытался туда запихнуть в 0 элемент. Вот и вся ошибка. Остальное это я больше для красоты поправил.
|