Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
24 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 2,057
1

Найти максимальный элемент матрицы

16.07.2017, 17:49. Просмотров 1277. Ответов 3
Метки нет (Все метки)


Дан массив v(4х4). Найти максимальный элемент этого массива. В тексте написать название (полностью) “БГПУ”. В режиме редактирования изменить коды на свои инициалы. (Я.Д.Р.)
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.07.2017, 17:49
Ответы с готовыми решениями:

Найти максимальный по модулю элемент матрицы, переставить строки/столбцы матрицы по условию
помогите пожалуйста. Задана матрица размером n x m. Найти максимальный по модулю элемент матрицы....

[emu8086] Найти максимальный по модулю элемент матрицы. Удалить строку и столбец матрицы.
Найдите наибольший элемент по модулю в целочисленной квадратной матрице n-го порядка. Получить...

Найти максимальный элемент на главной диагонали матрицы и заменить его на 1
Дан массив элементов 6х6. Найти максимальный элемент на главной диагонали и заменить его на 1

Найти сумму элементов столбца матрицы, содержащего максимальный по модулю элемент
Помогите с задачей: Матрица чисел из диапазона -99..99 размерностью вводится с клавиатуры....

3
Модератор
Эксперт по электронике
7476 / 3677 / 1444
Регистрация: 01.02.2015
Сообщений: 11,454
Записей в блоге: 2
16.07.2017, 19:36 2
Assembler
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
.model small
.486
LOCALS  @@
.stack  100h
.data
 
Metric  equ     10                      ;система счисления
 
Rows    equ     4               ;максимальное количество строк
Columns equ     4               ;максимальное количество столбцов
elSize  equ     2               ;размер одного элемента матрицы
arSize  equ     Rows*Columns*elSize;максимальный размер матрицы
 
m       dw      Rows            ;текущее количество строк
n       dw      Columns         ;текущее количество столбцов
 
S       dw      16, 24,  0, 35  ;матрица
        dw      28,  5, 16, 34
        dw      55,  6, 28,  1
        dw      17,  3,101,  5
 
asCR_LF db      0Dh, 0Ah, '$'   ;"перевод строки"
asMatrix db     'Matrix M:', '$'
asMax   db      'Max: ',   '$'  ;
 
.code
 
; выводит число из регистра AX на экран
; входные данные:
; ax - число для отображения
Show_AX proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    di
 
        mov     cx, Metric
        xor     di, di          ; di - кол. цифр в числе
 
        ; если число в ax отрицательное, то
        ;1) напечатать '-'
        ;2) сделать ax положительным
        or      ax, ax
        jns     @@Conv
        push    ax
        mov     dx, '-'
        mov     ah, 2           ; ah - функция вывода символа на экран
        int     21h
        pop     ax
 
        neg     ax
 
@@Conv:
        xor     dx, dx
        div     cx              ; dl = num mod 10
        add     dl, '0'         ; перевод в символьный формат
        inc     di
        push    dx              ; складываем в стэк
        or      ax, ax
        jnz     @@Conv
        ; выводим из стэка на экран
@@Show:
        pop     dx              ; dl = очередной символ
        mov     ah, 2           ; ah - функция вывода символа на экран
        int     21h
        dec     di              ; повторяем пока di<>0
        jnz     @@Show
 
        pop     di
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
Show_AX endp
 
; На входе
;m     - количество строк
;n     - количество столбцов
;ds:dx - адрес матрицы
ShowMatrix proc
        pusha
        mov     si, dx  ; строка  (i) - адрес строки матрицы
 
        mov     ax, Columns
        mov     cx, elSize
        mul     cx
        mov     di, ax  ; di - размер строки матрицы
 
        mov     cx, m   ;cx выполняет роль i (0..m-1)
        @@ForI:
                mov     dx, cx  ;сохраняем содержимое счётчика cx (i)
                mov     cx, n   ; теперь cx выполняет роль j (0..n-1)
                mov     bx, 0   ;смещение элемента относительно начала строки
                @@ForJ:
                        mov     ax, [si+bx]     ;считываем очередной элемент в ax
                        call    Show_AX ;вывод числа на экран
 
                        push    dx
                        mov     ah, 02h ;вывод пробела на экран
                        mov     dl, ' '
                        int     21h
                        pop     dx
 
                        add     bx, elSize      ;переход к следующему элементу
                loop    @@ForJ
                push    dx
                mov     ah, 09h ;перевод строки
                lea     dx, asCR_LF
                int     21h
                pop     dx
                mov     cx, dx
                add     si, di  ; si - смещение текущей строки матрицы
        loop    @@ForI
        popa
        ret
ShowMatrix endp
 
Main    proc
        mov     dx, @data
        mov     ds, dx
 
        ;вывод матрицы на экран
        mov     ah, 09h
        lea     dx, asMatrix
        int     21h
        mov     ah, 09h
        lea     dx, asCR_LF
        int     21h
        lea     dx, S
        call    ShowMatrix
 
        ;поиск максимального элемента матрицы,
        ;расположенного на главной диагонали
        lea     si, S  ; строка  (i) - адрес строки матрицы
 
        mov     ax, Columns
        mov     cx, elSize
        mul     cx
        mov     di, ax  ; di - размер строки матрицы
 
        mov     ax, [si]    ;Max:=S[0, 0]
        mov     cx,     m   ;cx выполняет роль i (0..m-1)
@@ForI:
        mov     bx, 0   ;смещение элемента относительно начала строки
        push    cx
        mov     cx,     n
        @@ForJ:
                cmp     ax, [si+bx]     ;сравниваем очередной элемент с al
                jge     @@Next          ;если очередной элемент меньше или равен максимальному
                                        ;то переходим к следующему
                mov     ax, [si+bx]     ;иначе - обновляем значение максимального элемента
        @@Next:
                add     bx, elSize      ;переход к следующему элементу в строке
                loop    @@ForJ
        pop     cx
        add     si, di          ;переход к следующей строке
        loop    @@ForI
 
        ;вывод максимального элемента
        push    ax
        mov     ah, 09h
        lea     dx, asMax
        int     21h
        pop     ax
        call    Show_AX
 
        ;завершение программы
        mov     ax, 4c00h
        int     21h
Main    endp
 
end     Main
0
24 / 8 / 17
Регистрация: 22.12.2015
Сообщений: 2,057
16.07.2017, 20:27  [ТС] 3
Массив 4х4 сделан и максимальный элемент найден.А как это сделать
Найти максимальный элемент матрицы

Цитата Сообщение от scherbakovss201 Посмотреть сообщение
В тексте написать название (полностью) “БГПУ”. В режиме редактирования изменить коды на свои инициалы. (Я.Д.Р.)
0
Модератор
Эксперт по электронике
7476 / 3677 / 1444
Регистрация: 01.02.2015
Сообщений: 11,454
Записей в блоге: 2
16.07.2017, 22:56 4
Не понимаю, о чём вы.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.07.2017, 22:56

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

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

Обменять строку и столбец матрицы, на пересечении которых находится ее максимальный элемент
Добрый вечер. Помогите пожалуйста как можно скорее сделать задачку по Assembler. Буду очень вам...

Определить и вывести, находится ли максимальный элемент матрицы на главной диагонали или нет
Ввести размеры ( n, m ) двумерного массива типа int. Сгенерировать или ввести матрицу n*m. ...

Найти максимальный элемент массива
найти максимальный элемент массива


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.