![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var mas:array [1..4,1..4] of integer;
mas2:array [1..4] of integer;
i,j,buf,min,imin:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do
mas[i,j]:=StrToInt(StringGrid1.Cells[j-1,i-1]);
for i:=1 to 4 do
mas2[i]:=mas[i,i];
for i:=1 to 4 do
begin
min:=mas2[i];
for j:=1 to 4 do
if (mas2[j]>min) then
begin
min:=mas2[j];
imin:=j;
end;
buf:=mas2[i];
mas2[i]:=mas2[imin];
mas2[imin]:=buf;
end;
for i:=1 to 4 do
for j:=1 to 4 do
begin
if(i=j)then StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i])
else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i,j]);
end;
end;
end.lmikle: пользуемся тегами!!! ошибка else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas2[i,j]); типа "array type required" помогите, если сможете) Последний раз редактировалось lmikle, 15.04.2013 в 20:43. |
|
#2
|
||||
|
||||
|
Цитата:
|
|
#3
|
|||
|
|||
|
помог) опечатка i там одно.
|
|
#4
|
|||
|
|||
|
у тебя в этой строке не тот массив. нужен mas, который двухмерный.
ЗЫ. Обысная проблема копи-паста. Скопировал, а поменять забыл. |
|
#5
|
|||
|
|||
|
тогда пишет, что типы не совпадают.
|
|
#6
|
|||
|
|||
|
Цитата:
Блин, строка должна быть: else StringGrid2.Cells[j-1,i-1]:=IntToStr(mas[i,j]); |
|
#7
|
|||
|
|||
|
тогда array type required.
|
|
#8
|
||||
|
||||
|
Ты бы внимательней ответы читал, иначе толку помогать... Или переменные называл СИЛЬНО РАЗНЫМИ именами.
|
|
#9
|
|||
|
|||
|
да я написал, какая ошибка получается, если написать так, как вы говорите.
|
|
#10
|
||||
|
||||
|
Код:
var mas:array [1..4,1..4] of integer;
i,j:integer;
begin
for i := 1 to 4 do
for j := 1 to 4 do
mas[i,j] := random(10);
for i := 1 to 4 do
for j := 1 to 4 do
StringGrid1.Cells[j-1,i-1]:=IntToStr(mas[i,j]);
end;Вот зачем обращаться за помощью, если её даже не слушать? |
|
#11
|
|||
|
|||
|
мне не нужно просто ввести матрицу в stringgrid. это реализовывается от руки после запуска программы. мне нужно ОТСОРТИРОВАТЬ ПО УБЫВАНИЮ ЭЛЕМЕНТЫ ГЛАВНОЙ ДИАГОНАЛИ.
|
|
#12
|
|||
|
|||
|
Цитата:
Не напрягает что в одной строке mas2[i], а в другой mas2[i,j]? |
|
#13
|
||||
|
||||
|
Цитата:
Цитата:
Цитата:
|
|
#14
|
|||
|
|||
|
Цитата:
я написал, что будет, если написать так, как вы мне говорите. |
|
#15
|
||||
|
||||
|
Вот ведь, прямо искритесь от соприкосновения в теме
![]() Вот собственно весь код: Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
Row,Col: Integer;
begin
for Row := 0 to StringGrid1.RowCount - 1
do for Col := 0 to StringGrid1.ColCount - 1
do StringGrid1.Cells[Col, Row] := IntToStr(Random(100));
end;
procedure TForm1.Button2Click(Sender: TObject);
Var
i,j: Integer;
v: String;
begin
for i := 0 to StringGrid1.RowCount - 1
do for j := 0 to StringGrid1.RowCount - 2
do if StrToInt(StringGrid1.Cells[j, j]) < StrToInt(StringGrid1.Cells[j+1, j+1])
then begin
v := StringGrid1.Cells[j, j];
StringGrid1.Cells[j, j] := StringGrid1.Cells[j+1, j+1];
StringGrid1.Cells[j+1, j+1] := v;
end;
end;Последний раз редактировалось Страдалецъ, 18.04.2013 в 20:38. |