Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
11 / 8 / 1
Регистрация: 10.02.2010
Сообщений: 22

Перестановка наибольшего элемента матрицы

29.04.2010, 17:21. Показов 834. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите с задачей, пожалуйста )))

Дана матрица размером m*n. Переставляя ее строки и столбцы, добиться того, чтобы наибольший элемент оказался в правом верхнем углу.

Спасибо!!!
1
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
29.04.2010, 17:21
Ответы с готовыми решениями:

Нахождение наибольшего элемента массива
Задано двумерный числовой массив. Постройте алгоритм и составьте программу нахождения наибольшего элемента массива.

Номер наибольшего элемента и наибольшего значения среди модулей
Здравствуйте, помогите пожалуйста с программой. Нужно найти в одномерном массиве А номер наибольшего элемента и наибольшее значение среди...

Перестановка в каждой строке матрицы максимального элемента и элемента главной диагонали
Сформировать из двухмерного массива другой, поменяв местами (построчно) максимальные элементы и элементы главной диагонали.

7
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.04.2010, 18:28
Формулировка задания неточна,

переставлять как: 2 соседних строки/столбца или ЛЮБЫХ?

PS: Чтобы научить преподавателя правильно формулировать задания посоветуйте ему посмотреть фильм "исполнитель желаний", чтобы стало ясно насколько фантазия программиста(в контексте фильма аналогия с джином) может разниться при виде неточных формулировок.

Добавлено через 29 минут
Вот решение вашей задачи, но повторюсь разница в НЕТОЧНОЧТИ УСЛОВИЯ скажется на финальной матрице.

PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
' Размерность
CONST M = 5, n = 3
DIM M(M, n), MaxX, MaxY, MaxEl
   ' Заполним матрицу
  RANDOMIZE TIMER
    FOR iy = 1 TO n: FOR ix = 1 TO M
      M(ix, iy) = INT(RND * 101) - 50
    NEXT: NEXT
   ' Выявим максимальный эл-т
    MaxEl = M(1, 1)
    FOR iy = 1 TO n: FOR ix = 1 TO M
      IF M(ix, iy) > MaxEl THEN MaxEl = M(ix, iy): MaxX = ix: MaxY = iy
    NEXT: NEXT
  ' Выведем первоначальную матрицу
  CLS
  PRINT STRING$(10, CHR$(196)) + "Pervonachalnaya matrica:"
  FOR iy = 1 TO n: FOR ix = 1 TO M
     IF ix = MaxX AND iy = MaxY THEN COLOR 10 ELSE COLOR 7
     PRINT M(ix, iy);
  NEXT: PRINT : NEXT
 
' В цикле переставляем с соседними строками/столбцами
DO
  ' Переставляем столбец
  IF MaxX < M THEN
    FOR i = 1 TO n
     SWAP M(MaxX, i), M(MaxX + 1, i)
    NEXT
    MaxX = MaxX + 1
  END IF
  ' Переставляем строку
  IF MaxY > 1 THEN
    FOR i = 1 TO M
     SWAP M(i, MaxY), M(i, MaxY - 1)
    NEXT
    MaxY = MaxY - 1
  END IF
LOOP UNTIL MaxX = M AND MaxY = 1
   'Выведем результат
  PRINT STRING$(10, CHR$(196)) + "Novaya matrica:"
  FOR iy = 1 TO n: FOR ix = 1 TO M
     IF ix = MaxX AND iy = MaxY THEN COLOR 10 ELSE COLOR 7
     PRINT M(ix, iy);
  NEXT: PRINT : NEXT
END
1
Платежеспособный зверь
 Аватар для кот Бегемот
8966 / 4389 / 1655
Регистрация: 28.10.2009
Сообщений: 11,647
29.04.2010, 18:30
Почему, может быть и такая формулировка, тогда решение тривиально - поменять местами 1 столбец и столбец с макс, а затем 1 строку и строку с макс. вот и всё. Или наоборот, сначала строку, потом столбец. А решение по-любому не единственное
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
29.04.2010, 19:14
> тогда решение тривиально

В том то и дело что может быть абсолютно оптимальный вариант, но финальная матрица будет уже другой, именно на основе этого я сделал вывод что условие неточно.

А так да, мне было бы даже проще не писать цикл DO, единожды переставив уже известные строки&столбцы.
1
11 / 8 / 1
Регистрация: 10.02.2010
Сообщений: 22
30.04.2010, 22:08  [ТС]
Ну преподавателю перечить не стану. Мне ещё зачет у него как-то сдавать ) А задача подразумевает перестановку любых строк и столбцов. Еще может быть такой вариант, что в матрице есть два или три одинаковых числа, и все они наибольшие..

Напишите, пожалуйста, программку для частных случаев..

Добавлено через 2 минуты
И еще было бы неплохо вводить размерность самому, а не прописывать в программе

Спасибо за помощь!!!!!!!!!!!
1
Кормпилятор
 Аватар для Quiet Snow
5044 / 1718 / 409
Регистрация: 25.04.2010
Сообщений: 4,827
Записей в блоге: 2
01.05.2010, 00:01
>что в матрице есть два или три одинаковых числа, и все они наибольшие..
У меня нет идей на данный счёт, не представляю возможным каким образом можно оптимально сдвинуть несколько(10-15) наибольших элементов, так чтобы они были сгруппированы ближе к правому верхнему углу. Да и врядли кто-то определит количество итераций для данного условия. Как вариант просто исключать этот случай, написав "невозможно вычислить из-за присутствия нескольких максимальных элементов". В идеале программа запускается в бесконечный цикл(или кто придумает алгоритм перебора всех столбцов/строк) ставится весовой коеф-т, для каждого максимального элемента опр-ся вещественное расстояние до правого верхнего угла матрицы, меняя случайным образом слотбцы/строки находим минимальное значение суммы данных весовых коеф-тов. Сам программу писать не буду(свой мозг жалко), если кто возьмётся флаг в руки...
1
11 / 8 / 1
Регистрация: 10.02.2010
Сообщений: 22
03.05.2010, 21:48  [ТС]
Ну все равно огромное спасибо за ответ и помощь!
1
11 / 8 / 1
Регистрация: 10.02.2010
Сообщений: 22
01.06.2010, 20:39  [ТС]
PureBasic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
CLS
PRINT TAB(15); “Перестановка наибольшего ”;
PRINT “элемента матрицы в правый ”;
PRINT TAB(19); “верхний угол путем ”;
PRINT “замены строк и столбцов.”
PRINT
PRINT TAB(10); “Введите кол-во строк: ”;
INPUT “ ”, m
PRINT TAB(10); “Введите кол-во столбцов: ”;
INPUT “ ”, n
PRINT
DIM m(m,n), MaxX, MaxY, MaxEL
PRINT
FOR ix=1 TO m: FOR iy=1 TO n
  PRINT TAB(10); “Введите значение(“;ix;”,”;iy;”):”;
  INPUT “ ”, m(ix,iy)
NEXT: NEXT
MaxEL=m(1,1)
FOR iy=1 TO n: FOR ix=1 TO m
   IF m(ix,iy)>MaxEL THEN MaxEL=m(ix,iy): MaxX=ix: MaxY=iy
NEXT: NEXT
PRINT STRING$(10, CHR$(196))+“Первоначальная матрица:FOR ix=1 TO m: FOR iy=1 TO n
   IF ix=MaxX AND iy=MaxY THEN COLOR 10 ELSE COLOR 7
   PRINT m(ix,iy);
NEXT: PRINT: NEXT
DO
   IF MaxX<m THEN
      FOR i=1 TO n
         SWAP m(MaxX, i), m(MaxX+1, i)
      NEXT
   MaxX=MaxX+1
   END IF
   IF MaxY>1 THEN
      FOR i=1 TO m
         SWAP m(i, MaxY), m(i, MaxY-1)
      NEXT
   MaxY= MaxY-1
   END IF
LOOP UNTIL MaxX=m AND MaxY=1
  PRINT STRING$(10, CHR$(196))+“Полученная матрица: ”
  [B]FOR ix=1 TO m: FOR iy=1 TO n[/B]
     IF ix=MaxX AND iy=MaxY THEN COLOR 10 ELSE COLOR 7
     PRINT m(ix,iy);
NEXT: PRINT: NEXT
END
Ребят, как исправить задачу, чтобы она переставляла наибольший элемент? Если 42 строку изменить так FOR iy=1 TO n: FOR ix=1 TO m, то элемент переставляется, а в матрице меняется размерность.. Исправьте, пожалуйста. Очень нужна ваша помощь!!!

Добавлено через 10 часов 18 минут
Откликнитесь кто-нибудь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
01.06.2010, 20:39
Помогаю со студенческими работами здесь

Найти значение наибольшего за модулем элемента матрицы, а также индексы этого элемента
Дана действительная матрица размером m*n. Найти значение наибольшего за модулем элемента матрицы, а также индексы этого элемента. ...

Нахождение наибольшего по модулю элемента и выбрасывание из исходной матрицы строчку и столбец этого элемента
В данной действительной квадратной матрице порядка n найти наибольший по модулю элемент. Получить квадратную матрицу порядка n-1 путём...

Для матрицы вычислить выражение Y=M1M5+M2M4+...+M5M1, где М[k]-значение наибольшего элемента в k-ом столбце матрицы
помогите пожалуйста с решением задачи. Для матрици А (4 строки, 5 столбцов) вычислить выражение Y=M1M5+M2M4+...+M5M1, где М-значение...

Замена минимального элемента списка и перестановка матрицы.
буду признателен, если кто поможет! я вообще ни чего понимаю на этом прологе. на С++ и делфи хоть что-то... надо написать программы: 1....

Поиск максимального элемента матрицы и перестановка ее строк
написать код который создает массив, ищет максимальный элемент в строке первого столбца и переставляет строку на первое место, после этого...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru