0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 3
|
||||||
1 | ||||||
В матрице поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент26.09.2018, 16:19. Показов 1158. Ответов 6
Метки нет Все метки)
(
В произвольной матрице [Aij] i=1, M , j=1, N поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент.
Моя программа работает верно с матрицей 3*3 именно такой 1 2 3 4 5 6 7 8 9 -> 7 8 9 4 5 6 1 2 3 Если пытаться подставлять числа в эту матрицу в другом порядке, возможно, выведет не то, что надо Также программа не работает с другими матрицами 2*3 4*6 и так далее Помогите, пожалуйста Уже не знаю даже, что делать..
0
|
|
26.09.2018, 16:19 | |
Ответы с готовыми решениями:
6
В квадратной матрице поменять местами строку и столбец на пересечении которых находится максимальный элемент Поменять местами максимальный и минимальный элемент в одномерном массиве В матрице поменять местами строку, содержащую минимальный элемент, со строкой, содержащей максимальный элемент массива В заданной матрице поменять местами строку, содержащую максимальный элемент со строкой, содержащей минимальный |
Модератор
![]() |
|
26.09.2018, 17:10 | 2 |
А каких размеров может быть матрица, исходя из данного кода и строки 14 в частности?
Как вариант, предлагаю выполнить отладку без ввода матрицы, задав её значения в коде. Добавлено через 1 минуту И комментариев нет. На 300+ строк. Вы, как для врага это набирали. Добавлено через 7 минут Строка 246 какая-то ошибка адресации, т.к. в bx адрес матрицы A. Т.е. в ax помещается по сути значение по адресу ADDR(A)+ADDR(A)+0 Это может быть что угодно, и даже элемент матрицы.
0
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 3
|
|
26.09.2018, 18:15 [ТС] | 3 |
Там в 14 строке указал 9, так как проверял
А так, конечно, матрица неограниченного объема Думаю правильным будет написать все заново и уже правильно это сделать Как это лучше всего реализовать Не понимаю просто как верно с учетом заданных M и N менять местами строки содержащие эти элементы
0
|
Модератор
![]() |
|||||||||||
26.09.2018, 18:23 | 4 | ||||||||||
А как бы делали это в C/Pascal?
Добавлено через 1 минуту
0
|
0 / 0 / 0
Регистрация: 26.09.2018
Сообщений: 3
|
|
26.09.2018, 18:29 [ТС] | 5 |
Дело в том, что в ассемблере двумерный массив реализован как одномерный
Из за этого сложности при переносе Нам нужен номер элемента и из него получить номер строки Закинуть строки с минимальным и максимальным элементом во временных массив и потом из него заменять Это и реализовано в моем коде, но он не работает для неквадратных матриц
0
|
Модератор
![]() |
|
26.09.2018, 18:54 | 6 |
Этот трюк с представлением матрицы как массива используется часто и в языках высокого уровня.
В цикле поиска минимального, максимального элементов и их строк запоминайте номера этих строк. Ну и просто представьте. Вот адрес, равный метке A. По нему располагается элемент A[0,0]. По адресу A+2 - A[0,1], по адресу (A+4) - A[0,2]. И т.д. По адресу (A+2*N) - A[1,0]... И наоборот, смещение однозначно определяет номер строки. По известному номеру строки с минимальным элементом можно вычислить адрес начала этой строки. Он равен (A+Imin*N) Добавлено через 17 минут Поправлюсь, По известному номеру строки с минимальным элементом можно вычислить адрес начала этой строки. Он равен (A+Imin*N*2). Множитель 2 это размер элемента матрицы в байтах.
0
|
Модератор
![]() |
||||||
30.09.2018, 20:31 | 7 | |||||
0
|
30.09.2018, 20:31 | |
30.09.2018, 20:31 | |
Помогаю со студенческими работами здесь
7
Поменять местами строку, содержащую максимальный элемент, со строкой, содержащей минимальный элемент Поменять местами строку матрицы, содержащую максимальный элемент, со строкой, содержащей минимальный элемент Поменять местами строку матрицы, содержащую минимальный элемент, со строкой, содержащей максимальный Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |