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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.11.2015, 19:08   #1
Никита757
Пользователь
 
Регистрация: 14.05.2015
Сообщений: 57
По умолчанию Двумерные массивы

В матрице найти наибольший элемент каждого столбца и поменять его местами с соответствующим диагональным элементом. Вывести новую матрицу. Я написал все, только у меня он меняет максимальный и минимальный элементы в столбце, а мне нужно, чтобы он менял максимальный с соответствующим диагональным элементом
Код:
program Matrix;
var
min,max,j,i,M,N:integer;
a: array [1..10,1..10] of real;
temp:real;
begin
// Ввод данных 
writeln('Введите числа M (M<=10) и N (N<=10)');
read(M); readln(N);
writeln('Введите по ',N,' элементов (значения от 0 до 10) ');
for i:=1 to M do begin
writeln(i,' строки : ');
for j:=1 to N do read(a[i,j]);
end;
for i:=1 to N do
begin
min:=1; max:=1;
for j:=1 to M do
begin
if a[min,i]>a[j,i] then min:=j;
if a[max,i]<a[i,j] then max:=j;
end;
temp:=a[min,i];
a[min,i]:=a[max,i];
a[max,i]:=temp;
end;
writeln;
writeln('Ответ');
for i:=1 to M do begin
writeln;
for j:=1 to N do write(a[i,j],' ');
end;
end.

Последний раз редактировалось Аватар; 26.11.2015 в 19:37.
Никита757 вне форума Ответить с цитированием
Старый 26.11.2015, 21:35   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

а так?
Код:
temp:=a[max,i];
a[max,i]:=a[i,i];
a[i,i]:=temp;
p.s.
он написал - нагло содрал где-то код и выдает за свой. СамПишущий не будет искать минелемент если его не надо искать по условию
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 26.11.2015, 21:40   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
temp:=a[i,i];
a[i,i]:=a[max,i];
a[max,i]:=temp;
Годится?

P.S. Опоздал...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 26.11.2015, 22:52   #4
alex234
 
Регистрация: 26.09.2015
Сообщений: 5
По умолчанию

Пробовал понять, как работает программа, но через полчаса забил...

Вот вариант, близкий к оригиналу:
Код:
program Matrix;
var
j,i,M,N,iMax,jMax:integer;
a: array [1..10,1..10] of real;
temp:real;
begin
// Ввод данных 
writeln('Введите числа M (M<=10) и N (N<=10)');
read(M); readln(N);
writeln('Введите по ',N,' элементов (значения от 0 до 10) ');
for i:=1 to M do begin
writeln(i,' строки : ');
for j:=1 to N do read(a[i,j]);
end;


// определение индексов максимального элемента и перемена его с элементом, у которого
//индекс столбца равен индексу строки
For j:=1 to N do   
   begin
      iMax:=1; jMax:=j;
      For i:=2 to M do
         If A[i,j]>A[iMax,jMax] then
            begin
               iMax:=i;
               jMax:=j;
            end; //If
      temp:=A[j,j];
      A[j,j]:=A[iMax,jMax];
      A[iMax,jMax]:=temp;
end; //For


writeln;
writeln('Ответ');
for i:=1 to M do begin
writeln;
for j:=1 to N do write(a[i,j],' ');
end;
end.
Для проверки {Ввод данных} можешь заменить генератором массива:
Код:
M:=5; N:=5;
For i:=1 to M do
   For j:=1 to N do
      A[i,j]:=Random(10);

For i:=1 to M do
      begin 
         For j:=1 to N do Write(A[i,j]:2);
         WriteLn;
      end;
Он, правда, только для целых чисел, но я б на твоём месте так и оставил.

Последний раз редактировалось alex234; 26.11.2015 в 22:57.
alex234 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерные массивы, двумерные массивы, строки Sand093 C++ Builder 11 20.05.2012 21:48
Двумерные массивы(матрица) 2)Строковые массивы(строки): 3)Структуры nuriyat Помощь студентам 1 21.01.2012 16:16
Двумерные массивы(массивы указателей на массивы) krytishka99 Помощь студентам 1 29.12.2011 19:51
двумерные массивы blitz Помощь студентам 6 07.04.2011 21:21
двумерные массивы student2009 Паскаль, Turbo Pascal, PascalABC.NET 3 02.06.2009 09:47