Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 21.12.2016, 13:25   #1
SEXTANT
Пользователь
 
Регистрация: 10.11.2016
Сообщений: 27
По умолчанию [Delphi]: Нужно поменять 1 и 2 Строки 3 и 4 и тд, кол-во строк всегда Четное

В чем ошибка, кто может помочь?
Код:
procedure TForm1.Button1Click(Sender: TObject);
const
n=4;
var
a,x:array[1..n,1..n] of integer;
i,j:integer;
begin
randomize;
for i:=1 to n do
  for j:=1 to n do
  begin
  a[i,j]:=random(50);
  stringgrid1.cells[j-1,i-1]:=inttostr(a[i,j]);
  end;
  for i:=0 to n-1 do
  for j:=1 to n do
  begin
  x[i,j]:=a[i,j];
  a[i,j]:=a[2*i+1,j];
  a[2*i+1,j]:=x[i,j];
  stringgrid2.cells[j-1,i]:=inttostr(a[i,j]);
  end;

end;

Последний раз редактировалось Аватар; 21.12.2016 в 15:36.
SEXTANT вне форума Ответить с цитированием
Старый 21.12.2016, 13:40   #2
SEXTANT
Пользователь
 
Регистрация: 10.11.2016
Сообщений: 27
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject); 
const 
n=4; 
var 
a,x:array[1..n,1..n] of integer; 
i,j:integer; 
begin 
randomize; 
for i:=1 to n do 
for j:=1 to n do 
begin 
a[i,j]:=random(50); 
stringgrid1.cells[j-1,i-1]:=inttostr(a[i,j]); 
end; 
for i:=1 to n do 
for j:=1 to n do 
begin 
x[i,j]:=a[i,j]; 
a[i,j]:=a[i+4-n,j]; 
a[i+4-n,j]:=x[i,j]; 
stringgrid2.cells[j-1,i]:=inttostr(a[i,j]); 
end; 

end;

Последний раз редактировалось Аватар; 21.12.2016 в 15:36.
SEXTANT вне форума Ответить с цитированием
Старый 21.12.2016, 13:54   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

Код:
var x: integer;// для замены нам не нужен целый массив все равно мы зараз меняем ровно одно значение.
for i:=1 to (n div 2) do  // меняем мы сразу ПО ДВЕ строки  (и сколько же будет таких обменов если всех строк n ? )
/// в обмене УЧАСТВУЮТ 2*i -1 , 2*i;   (i=1 { 2*1-1(=1)  2*1(=2) } i=2 {3,4} ... i=(n div 2) { (n div 2)*2 -1 =n -1
  for j:=1 to n do begin 
   x:=a[2*i -1, j];
   a[2*i -1, j]:=a[2*i, j];
// теперь можем и вывести ТОЛЬКО что заполненную
   a[2*i, j]:=x;
// и ЕЩЕ РАЗ можем вывести другую ТОЛЬКО что заполненную
 end;
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 21.12.2016 в 13:57.
evg_m вне форума Ответить с цитированием
Старый 22.12.2016, 12:36   #4
SEXTANT
Пользователь
 
Регистрация: 10.11.2016
Сообщений: 27
По умолчанию

Спасибо
SEXTANT вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Tstringlist - максимальная длинна строки и макс.кол-во строк? paravoz1k Компоненты Delphi 4 03.02.2020 13:52
Delphi минимальное кол-во строк в Мемо через радиогруппу Plex3 Помощь студентам 4 20.12.2013 08:56
Задачи на обработку строк: удалить каждую 3-ю букву, найти кол-во гласных, кол-во цифр в строке,совпадения в 2-х строках Ирина93 Паскаль, Turbo Pascal, PascalABC.NET 6 05.11.2011 22:10
Сумма строки при изменении кол-ва строк Серёга0629 Microsoft Office Excel 4 19.08.2011 15:45
Delphi. Определение кол-ва строк в Memo PAVEL315 Помощь студентам 8 08.12.2007 21:53