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

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

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

 
 Ответить  Открыть новую тему 
> матрица
Hazy
сообщение 17.06.2005 18:01
Сообщение #1





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

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


Дана матрица m на n. Найти максимум в каждой строке. Отсортировать эти максимумы по убыванию в матрице. Указать, какое количество максимумов находится в каждом столбце.


Проблемка возникла при сортировке максимумов, помогите пожалуйста.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
klem4
сообщение 17.06.2005 18:05
Сообщение #2


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

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

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


1) Пользуйся поиском + FAQ Матрицы

2)Наверное отсортировать строки в соответствии с максимумами ?


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


Гость






Цитата(Hazy @ 17.06.05 18:01)
Проблемка возникла при сортировке максимумов, помогите пожалуйста.

Пожалуйста... Только сначала расскажи, ты хранишь максимумы в каком-то отдельном массиве или запоминаешь их индексы? Невозможно же обо всем догадываться...

Если же максимумы не в дополнительном массиве, тебе придется еще уточнить, что значит "сортировать максимумы"... Что при этом происходит со строками?
 К началу страницы 
+ Ответить 
Hazy
сообщение 17.06.2005 20:32
Сообщение #4





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

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


Цитата(volvo @ 17.06.05 18:05)
Пожалуйста... Только сначала расскажи, ты хранишь максимумы в каком-то отдельном массиве или запоминаешь их индексы?


я храню максимумы в отдельном массиве, сортировать же нужно только элементы относящиеся к максимуму остальные элементы массива должны оставаться на своем месте
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.06.2005 20:42
Сообщение #5


Гость






Вот тебе матрица (исходная):
1 2 3 6 5 3
0 8 3 2 1 0
3 0 4 2 5 7
1 2 2 1 9 1
Какая из нее должна получиться в результате?

Вот массив максимумов: <6 8 7 9> Что с ним надо делать?
 К началу страницы 
+ Ответить 
Hazy
сообщение 17.06.2005 21:53
Сообщение #6





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

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


1 2 3 9 5 3
0 8 3 2 1 0
3 0 4 2 5 7
1 2 2 1 6 1


Вот такая должна получиться.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 17.06.2005 22:19
Сообщение #7


Гость






Ну, так тебе же нужно заводить 2 массива, и в одном хранить сами макс. элементы, а в другом - их индексы... И потом - вот так:
Var
arrMax, { это - сами макс элементы }
arrIndex, { это - те позиции в строке, на которых они находятся }
: Array[1 .. m] of integer;
... { заполняешь arrMax и arrIndex }

{ сортируешь "пузырьком" по убыванию }
For i := 1 To m Do
For j := m DownTo i Do
If arrMax[Pred(j)] < arrMax[j] Then Begin
T := arrMax[Pred(j)]; arrMax[Pred(j)] := arrMax[j]; arrMax[j] := T;
End;

{ и переносишь отсортированные элементы на их старые места: }
For i := 1 To m Do
matrix[i, arrIndex[i]] := arrMax[i];

Вот и все... smile.gif
 К началу страницы 
+ Ответить 
klem4
сообщение 17.06.2005 22:30
Сообщение #8


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

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

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


А это по заданию надо максимумы хранить в отдельном массиве, или это ты так решил сделать ?

просто можно без него.


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





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

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


Цитата(klem4 @ 17.06.05 22:30)
А это по заданию надо максимумы хранить в отдельном массиве, или это ты так решил сделать ?

да нет, просто я так решил.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 



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