Помощь - Поиск - Пользователи - Календарь
Полная версия: двумерный массив
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
HYPERSONIC
Кто сможет помогите! завтра сдавать а я не знаю как делать!
Дана действительная матрица порядка N. С помощью допустимых преобразований добиться что бы один из
элементов матрицы обладающий наибольшим по модулю значением располагался в верхнем левом углу.
klem4
В чем трабл ? Ищешь максимальный по модулю элемент вот так :

imax := 1;
jmax := 1;

for i := 1 to n do
 for j := 1 to n do
  if abs(mx[i,j]) > abs(mx[imax, jmax]) then begin
     imax := i;
     jmax := j;
end;

// а потом ставишь его в левый верхний угол ...

mx[1, 1] := mx[imax, jmax];

volvo
Цитата
С помощью допустимых преобразований
Какие преобразования считаются допустимыми? Случайно не "сдвиг матрицы влево/вправо на один столбец" и "сдвиг матрицы вверх/вниз на одну строку"?

Тогда иди в Поиск, я уже выкладывал решение ТОЙ задачи на форум...
-HYPERSONIC-
Если не сложно объясни что надо написать в Var и что б он определял координаты верхнего левого угла??
-HYPERSONIC-
Цитата(volvo @ 30.05.2006 19:15) *

Какие преобразования считаются допустимыми? Случайно не "сдвиг матрицы влево/вправо на один столбец" и "сдвиг матрицы вверх/вниз на одну строку"?

Тогда иди в Поиск, я уже выкладывал решение ТОЙ задачи на форум...






дОПУСТИМЫМ ПРЕОБРАЗОВАНИЕМ СЧИТАЕТСЯ ПЕРЕСТАНОВКА ДВУХ СТОРК И ДВУХ СТОЛБЦОВ
klem4
Левый верхний угол, это элемент с индексацией [1, 1].

А volvo прав. Скорее всего, после того, как ты найдешь индексы максимальног элемента, тебе надо будет напимер c начала, поднимать строку imax до 1, меняя местами все что проходишь, а потом сдвигать влево столбец jmax...
Гость
и так каждый раз пока наибольшее число не будет в верхнем левом углу?
volvo
Именно так... Смотри здесь:
Преобразование матрицы
klem4
Смотри : Ты нашел индексы максимального элемента imax и jmax.

Теперь ты берешь строку imax и поднимаешь ее вверх, меняя ее со всеми троками которые будешь проходить, до того момента, пока не поменяешь эту строку с первой строкой, потом берешь столбец jmax, и сдвигаешь его влево, меняя со всеми столбцами, пока не дойдешь до столбца № 1

123
456
789

123
789
456

789
123
456

798
132
465

978
312
645

volvo, опередил smile.gif
Гость
спаибо парни!!! все понял!!!
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.