Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.06.2013, 10:24
GoryachevEugeneS GoryachevEugeneS вне форума
Прохожий
 
Регистрация: 05.06.2013
Сообщения: 13
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Меняем столбцы местами. Двумерка

Двумерный массив из четного числа столбцов. Поменять местами первый столбец со вторым, третий — с четвертым и т. д.
Код:
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;
Здесь, получается, что он меняет 1 с 4, 2 с 3. А нужно 1 со 2, 3 с 4!
Ответить с цитированием
  #2  
Старый 28.06.2013, 10:33
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Вместо div попробуйте подставить mod
Ответить с цитированием
  #3  
Старый 28.06.2013, 10:35
GoryachevEugeneS GoryachevEugeneS вне форума
Прохожий
 
Регистрация: 05.06.2013
Сообщения: 13
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Тогда ничего не меняется
Ответить с цитированием
  #4  
Старый 28.06.2013, 11:02
GoryachevEugeneS GoryachevEugeneS вне форума
Прохожий
 
Регистрация: 05.06.2013
Сообщения: 13
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

И еще:
const d=4;
mas3:array[1..d,1..d] of integer;
Ответить с цитированием
  #5  
Старый 28.06.2013, 11:29
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Попробуйте так

Код:
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;
и можно так d и не чётную
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра
Комбинированный вид Комбинированный вид

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 01:20.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025