IPB
ЛогинПароль:

> ПРАВИЛА РАЗДЕЛА!!!

1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!

> Помогите решить задачу с матрицей (ассемблер)
1147
сообщение 8.09.2008 16:39
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 205
Пол: Мужской
Реальное имя: Евгений

Репутация: -  0  +


Объясните пожалуйста как можно выполнить следующее задание: Дана матрица 6х5. Вычеркнуть столбец с заданным номером.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
мисс_граффити
сообщение 8.09.2008 21:19
Сообщение #2


просто человек
******

Группа: Модераторы
Сообщений: 3 641
Пол: Женский
Реальное имя: Юлия

Репутация: -  55  +


(просьба не придираться - объясняю все упрощенно, упуская некоторые не значимые в данном случае нюансы)
Пишу в предположении, что ты правда хочешь разобраться, а не "лишь бы сдать".
Человеку удобно представлять матрицу в виде строк и столбцов:
1 2 3
4 5 6
7 8 9
компьютеру так неудобно. он будет хранить данные как
1 2 3 4 5 6 7 8 9
а где-то отдельно - информацию о том, как эти данные трактовать (что это 3*3, а не 9*1 или 1*9).

То есть задача сводится к удалению каждого 3-го элемента:
1 2 x 4 5 x 7 8 x
Теперь - матрицы применительно к ассемблеру (еще раз повторюсь - ему все равно, одномерный массив или двумерный! это - понятия из языков выского уровня).

вот небольшой пример работы с массивом:
;нахождение суммы нечетных элементов массива
.model small
.stack 512
.data
mas db 10 dup (31, 11, 26, 10, 8, 48, 21, 16, 65, 28)
sum dw 0
.code
;заносим адрес сегмента данных в DX
mov AX, @data
mov DS, AX
mov AX,0

;заносим адрес массива в BX
mov BX, offset mas
;в SI будем хранить номер элемента
mov SI,0
start:
;если дошли до последнего элемента
cmp SI,10
;переходим на метку finish
je finish

;заносим в AL элемент массива с номером SI
mov AL,[BX][SI]

;если число четное - переходим к метке cont
test AL,00000001b
jz cont
;иначе - прибавляем число к сумме
add AX,sum
mov sum,AX
cont:
;увеличиваем значение счетчика
inc SI
jmp start

finish:
mov ax,4c00h
int 21h
end

попробуй для начала разобраться в этом.
Возникнут вопросы - пиши...


--------------------
Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
1147   Помогите решить задачу с матрицей (ассемблер)   8.09.2008 16:39
мисс_граффити   На каком этапе выполнения возникают сложности? Пок...   8.09.2008 16:52
1147   Я вообще не представляю как в компиляторе можно пр...   8.09.2008 17:09
мисс_граффити   (просьба не придираться - объясняю все упрощенно, ...   8.09.2008 21:19
1147   большое спасибо мисс граффити!   9.09.2008 9:31
1147   Задача такая: Дана матрица 6х5. Вычеркнуть столбец...   19.10.2008 14:25
Lapp   Вычеркнуть столбец с заданным номеромКак организов...   19.10.2008 18:55
1147   по столбцам   20.10.2008 0:44
Lapp   по столбцамНу, тогда все просто. Кусок памяти,нач...   20.10.2008 2:50
1147   мне непонятно только как и где задать номера столб...   20.10.2008 11:49
Lapp   как и где задать номера столбцов матрицы Их не над...   21.10.2008 0:09
1147   вот у меня кое-что получилось, но неправильно... в...   21.10.2008 21:46
volvo   Какой у тебя ассемблер, уточни... Вот так должно ...   24.10.2008 14:31
1147   у меня Radasm   25.10.2008 19:15
volvo   RadASM - это среда разработки... Она работает со м...   25.10.2008 20:57
1147   тогда Masm Добавлено через 14 мин. masm32 точне...   25.10.2008 22:12
volvo   Ну, а MASM - это вообще отдельный разговор. Тут вс...   26.10.2008 12:04
1147   спасибо, попытаюсь разобраться...   27.10.2008 11:08
Lapp   1147, почему надо было создавать две одинаковые те...   30.10.2008 3:51
1147   допустим я вычислил номер элемента который нужно с...   2.11.2008 18:12
volvo   В esi - адрес ячейки, откуда перемещать, в edi - а...   2.11.2008 18:34
1147   смотрел разумеется. Но как-то там слишком много вс...   2.11.2008 19:05
volvo   С твоим преподавателем в принципе все понятно... ...   2.11.2008 20:29
1147   Жду более "легкого" решения... как сдел...   2.11.2008 21:35
Гость   Более легкое решение: ;Дана матрица 6х5. Вычеркн...   18.11.2008 12:41
1147   блин это не гость. Это я выложил более легкое реше...   18.11.2008 12:43
volvo   Угу... Настолько легкое, что компилировать его MAS...   18.11.2008 15:46
1147   ее основная функциональность-удалять заданный стол...   19.11.2008 17:27
1147   кроме того программа написана в masm32, с использо...   19.11.2008 17:55
Гость   Нужно с клавиатуры ввести предложение а после заме...   1.05.2013 15:29
Гость   [quote name='Гость' date='1.05.2013 15...   1.05.2013 15:31


 Ответить  Открыть новую тему 
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.12.2024 6:48
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"