IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> двумерный массив, помогите завтра сдавать
HYPERSONIC
сообщение 30.05.2006 18:45
Сообщение #1





Группа: Пользователи
Сообщений: 1
Пол: Мужской

Репутация: -  0  +


Кто сможет помогите! завтра сдавать а я не знаю как делать!
Дана действительная матрица порядка N. С помощью допустимых преобразований добиться что бы один из
элементов матрицы обладающий наибольшим по модулю значением располагался в верхнем левом углу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 30.05.2006 19:04
Сообщение #2


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

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 - 3.11.2006 21:48


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 30.05.2006 19:15
Сообщение #3


Гость






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

Тогда иди в Поиск, я уже выкладывал решение ТОЙ задачи на форум...
 К началу страницы 
+ Ответить 
-HYPERSONIC-
сообщение 30.05.2006 19:18
Сообщение #4


Гость






Если не сложно объясни что надо написать в Var и что б он определял координаты верхнего левого угла??
 К началу страницы 
+ Ответить 
-HYPERSONIC-
сообщение 30.05.2006 19:20
Сообщение #5


Гость






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

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

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






дОПУСТИМЫМ ПРЕОБРАЗОВАНИЕМ СЧИТАЕТСЯ ПЕРЕСТАНОВКА ДВУХ СТОРК И ДВУХ СТОЛБЦОВ
 К началу страницы 
+ Ответить 
klem4
сообщение 30.05.2006 19:23
Сообщение #6


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

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

Сообщение отредактировано: klem4 - 30.05.2006 19:24


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 30.05.2006 19:29
Сообщение #7


Гость






и так каждый раз пока наибольшее число не будет в верхнем левом углу?
 К началу страницы 
+ Ответить 
volvo
сообщение 30.05.2006 19:33
Сообщение #8


Гость






Именно так... Смотри здесь:
Преобразование матрицы
 К началу страницы 
+ Ответить 
klem4
сообщение 30.05.2006 19:37
Сообщение #9


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

Репутация: -  44  +


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

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

123
456
789

123
789
456

789
123
456

798
132
465

978
312
645

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

Сообщение отредактировано: klem4 - 30.05.2006 19:39


--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Гость
сообщение 30.05.2006 19:39
Сообщение #10


Гость






спаибо парни!!! все понял!!!
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 17:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"