|
#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]); end Moderatorial: Пользуемся тегами!!! Последний раз редактировалось 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 методом квадратов если не ошибаюсь ) рекурсия и все радости жизни...
для таких размерностей конечно это несерьезно советую поискать реализацию в инете правильный вопрос содержит в себе 90% ответа |
#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 элемент. Вот и вся ошибка. Остальное это я больше для красоты поправил.
|