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

Удаление строки в матрице 5х6

16.11.2013, 02:16. Показов 1677. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Требуется удалить строку в матрице, которая соответствует номеру введенному с клавиатуры.
Мне нужен алгоритм вывода массива по строкам, если он есть удалить строку не проблема.
Вот пример вывода по столбцам и удаление столбца пытался переделать - не смог. Ай нид сам хелп!
Только TASM!
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
.model small
.stack 256h
.data
i_predel dw 6
j_predel dw 5
decol dw ?
i dw 0
j dw 0
pos dw ?
stroka db 'VVEDITE NOMER STOLBCA COTORII NADO UDALIT',10,13,'$'
massive db 10,13,'PERVII MASSIV:',10,13,'$'
otvet db 10,13,'VTOROU MASSIV',10,13,'$'
mas db 1,2,3,4,5
        db 1,2,4,1,7
        db 4,3,8,7,5
        db 5,4,3,7,7
        db 1,2,3,4,5
        db 5,4,1,7,4
.code
Start:
mov ax,@data
mov ds,ax
 
lea dx,stroka
mov ah,09h
int 21h
 
mov ah,01h ; вводим номер столбца
int 21h
sub al,31h  ; 30+1 для удобства ввода номера
cbw
mov decol,ax
 
; //// вывод первоначального массива
mov ah,09h
lea dx,massive
int 21h
 
go:
 
;    i - строка
;    j - столбец
; они равны нулю 
mov cx,j_predel ; вывод по столбцам 
m1:
mov ax,j_predel
mov bx,i
mul bx           ;количество_элементов_в_строке*i  (так как размер элемента 1 байт можно не множить)
mov pos,ax
mov ax,pos
mov bx,j
add ax,bx         ; (количество_элементов_в_строке*i  )+j
 
mov si,ax
mov dl,mas[si]   ; в si полученные координаты mas[i][j]
mov ah,02h
add dl,30h
int 21h
mov dl,20h    ; пробел
int 21h
inc j                 ; переход на следующий столбец
loop m1
 
mov j,0           ; вывели строку i обнуляем j 
mov ax,i
mov dx,i_predel
dec dx
cmp ax,dx      ; смотрим, не последняя ли строка если да то заканчиваем вывод массива
jge start2
inc i
 
mov ah,02h   ;если нет переходим на следующую строку
mov dl,10
int 21h
 
jmp go
 
; // удаляем столбец 
 
start2:
mov ah,09h
lea dx,otvet
int 21h 
mov i,0          ; все обнуляем
mov j,0
 
go2:
mov cx,j_predel
dec cx           ; столбцов будет -1 так как один из них мы удаляем
 
m2:
mov ax,j         ; смотрим не данный ли столбец нам нужно удалить
cmp ax,decol
je m3            ;  на заметку: {если будет введен номер несуществующего столбца (0,6,7...) удалится всегда последний столбец
                 ;               т.к. cx-1 а условие je не будет выполнено}
jmp m4                        
 
m3:
inc j            ; если это так, прыгаем на следующий столбец
 
m4:
mov ax,j_predel  ; дальше по аналогии с первой частью программы
mov bx,i
mul bx
mov pos,ax
mov ax,pos
mov bx,j
add ax,bx
 
mov si,ax
mov dl,mas[si]
mov ah,02h
add dl,30h
int 21h
mov dl,20h
int 21h
inc j
loop m2
 
mov j,0
mov ax,i
mov dx,i_predel
dec dx
cmp ax,dx
jge exit
inc i
 
mov ah,02h
mov dl,10
int 21h
 
jmp go2
 
 
Exit:
mov ax,4c00h
int 21h
end start
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.11.2013, 02:16
Ответы с готовыми решениями:

Матрицу размера 5х6 заполнить так, чтобы элементы каждой строки, начиная со второй, были равны удвоенным элементам предыдущей строки
Матрицу размера 5х6 заполнить так, чтобы элементы каждой строки, начиная со второй, были равны...

Удаление столбца и строки в матрице
Доброго времени суток всем. У меня возникла следующая проблема при программировании на с++, а...

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

Удаление строки и столбца в матрице с максимальным элементом
Доброго времени суток. Выделил память под матрицу. Заполнил её случайными элементами. Нашел...

1
193 / 188 / 18
Регистрация: 06.10.2013
Сообщений: 357
16.11.2013, 15:26 2
Wewok, разбирайтесь в коде самостоятельно.
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
.model small
.stack 256h
.data
 
step dw -1
stroka db 'VVEDITE NOMER STROKI COTORII NADO UDALIT',10,13,'$'
massive db 10,13,'PERVII MASSIV:',10,13,'$'
otvet db 10,13,'VTOROU MASSIV',10,13,'$'
mas     db 1,2,3,4,5
        db 1,2,4,1,7
        db 4,3,8,7,5
        db 5,4,3,7,7
        db 1,2,3,4,5
        db 5,4,1,7,4
len dw $-mas
 
.code
Start:
mov ax,@data
mov ds,ax
 
lea dx,stroka
mov ah,09h
int 21h
 
mov ah,01h ; вводим номер строки
int 21h
sub ax,30h
cbw
push ax
 
mov dx,offset massive 
call call_output
 
mov dx,offset otvet
 
pop step
call call_output
 
Exit:
xor ax,ax
int 16h
 
mov ax,4c00h
int 21h
 
output:
push bp
mov bp,sp
 
mov dx,[bp+8]
mov ah,9
int 21h
 
mov cx,[bp+6]
mov si,[bp+4]
xor di,di
 
@1:
mov cx,5
 
@2:
inc di
cmp di,step
jnz @4
 
add si,5
jmp @3
 
@4:
lodsb
or al,30h
int 29h
mov al,20h
int 29h
 
loop @4
 
mov al,10
int 29h
 
@3:
cmp di,6
jnz @1
 
pop bp
ret 6
 
call_output:
 
push dx
push len
push offset mas
call output
ret
 
end Start
0
16.11.2013, 15:26
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
16.11.2013, 15:26
Помогаю со студенческими работами здесь

Удаление строки и столбца в матрице с использованием других матриц
Задача: сделать программу, удаляющую из матрицы строку с самым минимальным элементом и столбец с...

Дана матрица 5х6, определить для каждой нечетной строки минимальный элемент
помогите пожалуйста с ошибками Sub ex1() Dim i As Integer, j As Integer, n As Integer, min As...

БД с операциями: добавление новой строки, удаление строки, редактирование имеющейся строки
Нужно создать базу данных в паскале, с операциями: добавление новой строки, удаление строки,...

Здесь есть удаление столбца, как добавить удаление строки
#include <iostream> #include <conio.h> using namespace std; int main() { int n; do {cout <<...


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

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