Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ двумерный массив

Автор: HYPERSONIC 30.05.2006 22:45

Кто сможет помогите! завтра сдавать а я не знаю как делать!
Дана действительная матрица порядка N. С помощью допустимых преобразований добиться что бы один из
элементов матрицы обладающий наибольшим по модулю значением располагался в верхнем левом углу.

Автор: klem4 30.05.2006 23:04

В чем трабл ? Ищешь максимальный по модулю элемент вот так :

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 30.05.2006 23:15

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

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

Автор: -HYPERSONIC- 30.05.2006 23:18

Если не сложно объясни что надо написать в Var и что б он определял координаты верхнего левого угла??

Автор: -HYPERSONIC- 30.05.2006 23:20

Цитата(volvo @ 30.05.2006 19:15) *

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

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






дОПУСТИМЫМ ПРЕОБРАЗОВАНИЕМ СЧИТАЕТСЯ ПЕРЕСТАНОВКА ДВУХ СТОРК И ДВУХ СТОЛБЦОВ

Автор: klem4 30.05.2006 23:23

Левый верхний угол, это элемент с индексацией [1, 1].

А volvo прав. Скорее всего, после того, как ты найдешь индексы максимальног элемента, тебе надо будет напимер c начала, поднимать строку imax до 1, меняя местами все что проходишь, а потом сдвигать влево столбец jmax...

Автор: Гость 30.05.2006 23:29

и так каждый раз пока наибольшее число не будет в верхнем левом углу?

Автор: volvo 30.05.2006 23:33

Именно так... Смотри здесь:
http://forum.pascal.net.ru/index.php?s=&showtopic=2836&view=findpost&p=24848

Автор: klem4 30.05.2006 23:37

Смотри : Ты нашел индексы максимального элемента imax и jmax.

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

123
456
789

123
789
456

789
123
456

798
132
465

978
312
645

volvo, опередил smile.gif

Автор: Гость 30.05.2006 23:39

спаибо парни!!! все понял!!!