![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Двумерный массив из четного числа столбцов. Поменять местами первый столбец со вторым, третий — с четвертым и т. д.
Код:
procedure TForm4.Button26Click(Sender: TObject); var i,j:byte; begin randomize; //Заполняем массив случайными числами stringgrid1.ColCount:=d; stringgrid1.RowCount:=d; for i:=1 to d do for j:=1 to d do mas3[i,j]:=-4+random(21); for i:=0 to d-1 do for j:=0 to d-1 do stringgrid1.Cells[i,j]:=inttostr(mas3[j+1,i+1]); end; procedure TForm4.Button28Click(Sender: TObject); var i,j:byte; //Меняем столбцы местами x:integer; begin for j:=1 to d div 2 do for i:=1 to d do begin x:=mas3[i,j]; mas3[i,j]:=mas3[i,d-j+1]; mas3[i,d-j+1]:=x; end; stringgrid2.ColCount:=d; stringgrid2.RowCount:=d; for i:=0 to d-1 do for j:=0 to d-1 do stringgrid2.Cells[i,j]:=inttostr(mas3[j+1,i+1]); end; |
|
#2
|
||||
|
||||
|
Вместо div попробуйте подставить mod
|
|
#3
|
|||
|
|||
|
Тогда ничего не меняется
![]() |
|
#4
|
|||
|
|||
|
И еще:
const d=4; mas3:array[1..d,1..d] of integer; |
|
#5
|
||||
|
||||
|
Попробуйте так
Код:
procedure TForm4.Button26Click(Sender: TObject);
var
i, j: byte;
begin
Randomize; //Заполняем массив случайными числами
StringGrid1.ColCount:= d;
StringGrid1.RowCount:= d;
for i := 0 to d-1 do
for j := 0 to d-1 do
mas3[i, j]:= -4 + Random(21);
for i := 0 to d-1 do
for j := 0 to d-1 do
StringGrid1.Cells[i, j]:= IntToStr(mas3[j, i]);
end;
procedure TForm4.Button28Click(Sender: TObject);
var
i, j, b: byte; //Меняем столбцы местами
x: integer;
begin
for i := 0 to d-1 do
begin
b:= 0;
for j := 0 to d-1 do
if b < d-1 then
begin
x:= mas3[i, b];
mas3[i, b]:= mas3[i, b+1];
mas3[i, b+1]:= x;
Inc(b, 2);
end;
end;
StringGrid2.ColCount:= d;
StringGrid2.RowCount:= d;
for i:=0 to d-1 do
for j:=0 to d-1 do
StringGrid2.Cells[i, j]:= IntToStr(mas3[j, i]);
end; |