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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2015, 00:13   #1
reijii_nia
Пользователь
 
Регистрация: 29.03.2014
Сообщений: 19
По умолчанию Делфи. перестановка элементов строки и столбца в массиве

Составить программу, которая в массиве размером МхМ выводит сумму элементов строки и столбца если номера их индексов одинаковые, иначе поменять местами элементы строки и столбца с максимальными суммами и вывести новым массивом...
в общем все получилось кроме того что поменять местами нужные строку и столбец...подскажите что не так

Код:
Const n=2;
var
  Form1: TForm1;

  b:array[1..3,1..3] of integer;
  a:array[1..3,1..3] of integer;
  i,j,s,max,max1,max2,max_stroka,max_stroka1,max_stolbec,max_stolbec1:integer;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
max:=0;
Randomize;
s:=0;
for i:=0 to n do
begin
for j:=0 to n do
begin
a[i,j]:=random(10);
StringGrid1.Cells[i,j]:=IntToStr(a[i,j]);
end;
end;
max1:=0;
for j:=0 to n do
begin
s:=0;
for i:=0 to n do
begin
s:=s+a[i,j];
end;
if s > max1 then
begin
max_stroka:=j;
max_stroka1:=max_stroka+1;
max1:= s;
end;
end;
max2:=0;
for i:=0 to n do
begin
s:=0;
for j:=0 to n do
begin
s:=s+a[i,j];
end;
if s > max2 then
begin
max_stolbec:=i;
max_stolbec1:=max_stolbec+1;
max2:= s;
end;
end;
if max_stolbec=max_stroka then
begin
memo1.Lines.Add(' номер столбца с максимальной суммой элементов - ' + inttostr(max_stolbec1));
memo1.Lines.Add(' номер строки с максимальной суммой элементов - ' + inttostr(max_stroka1));
max:=max1+max2;
memo1.Lines.Add('сумма строки и столбца с одинаковыми номерами с максимальными суммами элементов - ' + inttostr(max));
end
else
begin

for i:=0 to n do
for j:=0 to n do
begin
b[i,j]:=a[i,j];
StringGrid2.Cells[i,j]:=IntToStr(b[i,j]);
end;

for i:= 0 to n do
if i=max_stolbec then
begin
for j:= 0 to n do
begin
b[i,j]:=a[max_stroka,j];
StringGrid2.Cells[i,j]:=IntToStr(b[i,j]);
end;
end;

for j:= 0 to n do
if j=max_stroka then
begin
for i:= 0 to n do
begin
b[i,j]:=a[i,max_stolbec];
StringGrid2.Cells[i,j]:=IntToStr(b[i,j]);
end;
end;

memo1.Lines.Add(' номер столбца с максимальной суммой элементов - ' + inttostr(max_stolbec1));
memo1.Lines.Add(' номер строки с максимальной суммой элементов - ' + inttostr(max_stroka1));
end;
end;
end.
reijii_nia вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Найти и вывести на экран индексы четных элементов каждой строки и нечетных элементов каждого столбца. Richik123 Помощь студентам 0 27.11.2012 16:29
Циклический сдвиг элементов столбца вниз в многомерном массиве. Corvette Общие вопросы C/C++ 2 07.09.2011 21:15
Поиск столбца с макс. суммой элементов в двумерном массиве. oRik24 Помощь студентам 3 21.06.2011 13:20
Сумма элементов каждой строки матрицы и перестановка их в порядке возростание Nickos Помощь студентам 2 30.05.2011 23:38
Вывод строки и столбца в массиве westlinex Паскаль, Turbo Pascal, PascalABC.NET 0 06.02.2011 15:47