![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
помогите
дямак © (2006-05-06 20:40:00)может у кого - нибудь есть алгоритм, чтоб при нажатии на кнопку появлялась матрица в поле memo1 и число строк и столбцов можно было задавать при помощи TEdit
Mr tray (2006-05-06 21:57:00) [1]Слушайте, люди. Может, я торможу. Но чего то в сабже не понятно мне. По-моему, вообще фраза "матрица появляется в поле memo1" нокорректно звучит. Можете мне разъяснить, что именно это значит?
Kilkennycat (2006-05-06 21:52:00) [2]
>что такое TMatrix вроде нет такого компонента?
а разве внизу он неописан как тип?
дямак (2006-05-06 21:42:00) [3]а что такое TMatrix вроде нет такого компонента?
Пример объявления матрицы из 100 чисел (размер 10x10):
type
TMatrix=array [1..10,1..10] of integer;
var
Arr:TMatrix;
Пример процедуры инициализации матрицы случайными целыми числами в диапазоне [0..10]:
procedure RandomMatrix(var M:TMatrix;r,c:integer);
var i,j:integer;
begin
for i:=1 to r do
for j:=1 to c do
M[i,j]:=random(10);
end;
KilkennyCat (2006-05-06 21:11:00) [4]- Урри, ты нашел у него кнопку? © "Приключения Электроника"
procedure TForm1.Button1Click(Sender: TObject);
begin
InMatrix(M,r,c,StringGrid1);
ExecMatrix(M,r,c);
OutMatrix(M,r,c,StringGrid2);
end;
Выделенное жирным - связь с кнопкой.
дямак (2006-05-06 21:09:00) [5]вот я вроде чё то составил, как раз 5*5
Var Mtx:TMatrix;
c:integer=5;
r:integer=5;
procedure TForm1.Button1Click(Sender: TObject);
begin
InMatrix(M,r,c,StringGrid1);
ExecMatrix(M,r,c);
OutMatrix(M,r,c,StringGrid2);
end;
теперь мне надо как -то это связать с моим заданием ((В каждой строке поменять местами наибольший и наименьший элементы.))
у меня алгоритм есть, кто-то на форуме помог написать,
var
A: array [1..N, 1..N] of Integer;
I, J, Min, Max, Temp: Integer;
begin
for I := Low(A) to High(A) do
begin
Min := Low(A[I]);
Max := Min;
for J := Succ(Low(A[I])) to High(A[I]) do
if A[I, Min] > A[I, J] then
Min := J
else if A[I, Max] < A[I, J] then
Max := J;
if Min <> Max then
begin
Temp := A[I, Min];
A[I, Min] := A[I, Max];
A[I, Max] := Temp
end;
end;
end.
но как его связать с кнопкой?
дямак (2006-05-06 21:03:00) [6]так она там одномерная то есть состоит из одного столбца, а мне надо чтоб её размеры можно было указывать, т.е. например 5*5
KilkennyCat (2006-05-06 20:59:00) [7]В ветке "Ламерский вопросик" (код ниже),она у вас разве не от кнопки?
procedure TForm1. Button1Click(Sender: TObject);
begin
randomize;
Num_el:=StrToInt(Edit1.Text);
if Num_el>20 then
begin
Application.MessageBox('слишком много элелентов','Ошибка',MB_OK);
Num_el:=0;
exit;
end;
RandomArray(Arr,Num_El);
OutArray(Arr,Num_El,Memo1.Lines);
end;
дямак (2006-05-06 20:55:00) [8]насколько я понимаю это
процедура инициализации матрицы случайными целыми числами в диапазоне [0..10]:
procedure RandomMatrix(var M:TMatrix;r,c:integer);
var i,j:integer;
begin
for i:=1 to r do
for j:=1 to c do
M[i,j]:=random(10);
end;
а как сделать чтобы она заполнялась после нажатия на кнопку?(заранее извиняюсь за ламерство)
ЛшдлуттнСфе (2006-05-06 20:47:00) [9]http://www.delphimaster.ru/cgi-bin/forum.pl?id=1146932864&n=18&web=1- то есть, это уже неактуально, хотим сразу все идеально?
Marser (2006-05-06 20:46:00) [10]Каждую строчку формируешь в отдельном цикле, а затем выводишь.