Форум программистов, компьютерный форум, киберфорум
Assembler для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
1 / 1 / 1
Регистрация: 22.02.2018
Сообщений: 77
1
emu8086

Найти в каждой строке матрицы max и min элементы и поменять их местами с первым и последним элементом

01.03.2018, 17:29. Показов 1046. Ответов 2

Author24 — интернет-сервис помощи студентам
Дана матрица B[N, M]. Найти в каждой строке матрицы максимальный и
минимальный элементы и поменять их местами с первым и последним элементом строки
соответственно. EMU8086
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.03.2018, 17:29
Ответы с готовыми решениями:

Найти в каждой строке матрицы max и min элементы, и поменять их с первым и последним элементами строки
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их с...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

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

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом
Ошибка в задаче. Может я что-то не дописал. Исправьте пожалуйста программу. Дана матрица B....

2
ФедосеевПавел
02.03.2018, 22:47
  #2
 Комментарий модератора 
Независимо от того, читали вы Правила форума или не читали, при регистрации вы обязались их соблюдать.

В частности п.5.5 - "запрет кросспостинга".

Корме того, необходимо давать темам осмысленные названия.
Ознакомьтесь со статьёй Порядок именования тем

Пока получаете предупреждение. За дальнейшее упорствование в заблуждениях получите штрафные баллы. Двух-трёх штрафов достаточно для временной блокировки.
0
Модератор
Эксперт по электронике
8476 / 4335 / 1642
Регистрация: 01.02.2015
Сообщений: 13,461
Записей в блоге: 8
07.03.2018, 23:43 3
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
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
.model tiny
.code
 
        org     100h
main    proc
 
        jmp     start
 
        ;Данные
        CrLf            db      0Dh, 0Ah, '$'
        msgInstance     db      'Instance:', 0Dh, 0Ah, '$'
        msgResult       db      'Result:', 0Dh, 0Ah, '$'
        N       dw      5
        M       dw      7
        B       dw       2043, 4687, 2121, 5856, 7528, 5052, 7199
                dw       7706, 1828, 6876, 4231, 4045, 4219, 4494
                dw       5909,  848, 1795,  414, -516, 8545, 8694
                dw       6837, -363, 7170, 6290, 1927, 6914, 2277
                dw       3121, 1823, 1824, 3019,  298, 3458, 1188
 
start:
        ;программа
        mov     ah,     09h
        lea     dx,     [msgInstance]
        int     21h
        mov     bx,     [M]
        mov     cx,     [N]
        lea     dx,     [B]
        call    ShowMatrix
 
        cld
        lea     si,     [B]
        mov     cx,     [N]
        @@ByRows:
                push    cx
                mov     dx,     si      ;адрес первогл элемента строки
                mov     di,     si      ;min
                mov     bx,     si      ;max
                mov     cx,     [M]
                @@ByColumns:
                        mov     ax,     [si]
                @@TestMin:
                        cmp     ax,     [di]
                        jge     @@TestMax
                        mov     di,     si
                @@TestMax:
                        cmp     ax,     [bx]
                        jle     @@Next
                        mov     bx,     si
                @@Next:
                        add     si,     2
                loop    @@ByColumns
                pop     cx
 
                ;если максимальный элемент расположен на последней
                ;ячейке строки, то после обмена с минимальным
                ;у него изменится адрес
                mov     ax,     si
                sub     ax,     2
                cmp     ax,     bx
                jne     @@NoRecalc
                        mov     bx,     di
                @@NoRecalc:
                ;обмены
                mov     ax,     [si-2]
                xchg    ax,     [di]
                xchg    ax,     [si-2]
 
                mov     di,     dx
                mov     ax,     [di]
                xchg    ax,     [bx]
                xchg    ax,     [di]
        loop    @@ByRows
 
        mov     ah,     09h
        lea     dx,     [msgResult]
        int     21h
        mov     bx,     [M]
        mov     cx,     [N]
        lea     dx,     [B]
        call    ShowMatrix
 
        int     20h
main    endp
 
;Вывод на экран матрицы слов
;на входе:
;  ds:dx - адрес матрицы
;  bx    - количество столбцов в матрице
;  cx    - количество строк в матрице
;на входе:
;  -
ShowMatrix      proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        push    di
        pushf
 
        jcxz    @@smExit
        or      bx,     bx
        jz      @@smExit
 
        cld
        mov     cx,     cx
        mov     si,     dx
        @@smForI:
                push    cx
                push    bx
                mov     cx,     bx
                @@smForJ:
                        lodsw
                        call    Show_AX
                loop    @@smForJ
                mov     ah,     09h
                lea     dx,     [CrLf]
                int     21h
                pop     bx
                pop     cx
        loop    @@smForI
 
@@smExit:
        popf
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
ShowMatrix      endp
 
; выводит знаковое 16-разрядное число из регистра AX на экран
; входные данные:
; ax - число для отображения
Show_AX proc
        push    ax
        push    bx
        push    cx
        push    dx
        push    si
        push    di
 
        mov     cx,     10      ;основание системы счисления
        xor     di,     di      ; di - кол. цифр в числе
        xor     si,     si      ; si - признак отрицательного числа
        ; если число в ax отрицательное, то
        ;1) напечатать (запомнить в стеке) символ '-'
        ;2) сделать ax положительным
        or      ax,     ax
        jns     @@Conv
        mov     si,     1
 
        neg     ax
 
@@Conv:
        xor     dx,     dx
        div     cx              ; dl = num mod 10
        add     dl,     '0'     ; перевод в символьный формат
        inc     di
        push    dx              ; складываем в стек
        or      ax,     ax
        jnz     @@Conv
        ;если число отрицательное - помещаем символ "-" в строку
        or      si,     si
        jz      @@Positive
        mov     dx,     '-'
        push    dx
        inc     di
@@Positive:
        ; выводим из стека на экран
        ; - сначала пробелы для выравнивания по правому краю
        mov     cx,     8
        sub     cx,     di
        mov     ah,     02h
        mov     dl,     ' '
@@LeftPad:
        int     21h
        loop    @@LeftPad
        ;сохранённые символы цифр
@@Show:
        pop     dx              ; dl = очередной выводимый символ
        mov     ah,     2       ; ah - функция вывода символа на экран
        int     21h
        dec     di              ; повторяем пока di<>0
        jnz     @@Show
 
        pop     di
        pop     si
        pop     dx
        pop     cx
        pop     bx
        pop     ax
        ret
Show_AX endp
 
end     main
0
07.03.2018, 23:43
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.03.2018, 23:43
Помогаю со студенческими работами здесь

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...

Найти в каждой строке матрицы макс. и мин. элементы и поменять их местами первым и последним элементом строки соответственно
Дана матрица B.Найти в каждой строке матрицы макс. и мин. элементы и поменять их местами первым и...

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
здравствуйте. помогите пожалуйста решить пару задач VIII.Двумерные массивы 23 Дана матрица B....

Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их местами с первым и последним элементом строки соответственно
Дана матрица B. Найти в каждой строке матрицы максимальный и минимальный элементы и поменять их...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru