Помогите решить задачу с матрицей (ассемблер) |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
Помогите решить задачу с матрицей (ассемблер) |
1147 |
8.09.2008 16:39
Сообщение
#1
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Объясните пожалуйста как можно выполнить следующее задание: Дана матрица 6х5. Вычеркнуть столбец с заданным номером.
|
мисс_граффити |
8.09.2008 16:52
Сообщение
#2
|
просто человек Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: 55 |
На каком этапе выполнения возникают сложности?
Показывай, что уже сделал. Вообще - по сути - надо удалить каждый n-ный элемент (т.е. сдвинуть все, что после него стоит). -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
1147 |
8.09.2008 17:09
Сообщение
#3
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Я вообще не представляю как в компиляторе можно представить матрицу. Задания которые мне приходилось делать были на выполнение арифметических действий (с ассемблером я очень мало знаком)-это не трудно-результат видишь в определенном регистре. А тут нужно как-то сделать целую матрицу, да еще столбец вычеркнуть. Про матрицы я сейчас пытаюсь разобраться, но как вычеркнуть столбец мне вообще не ясно
|
мисс_граффити |
8.09.2008 21:19
Сообщение
#4
|
просто человек Группа: Модераторы Сообщений: 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 Теперь - матрицы применительно к ассемблеру (еще раз повторюсь - ему все равно, одномерный массив или двумерный! это - понятия из языков выского уровня). вот небольшой пример работы с массивом: ;нахождение суммы нечетных элементов массива попробуй для начала разобраться в этом. Возникнут вопросы - пиши... -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
1147 |
9.09.2008 9:31
Сообщение
#5
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
большое спасибо мисс граффити!
|
1147 |
19.10.2008 14:25
Сообщение
#6
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
Задача такая:
Дана матрица 6х5. Вычеркнуть столбец с заданным номером |
Lapp |
19.10.2008 18:55
Сообщение
#7
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Вычеркнуть столбец с заданным номером Как организована память для матрицы? По строкам или по столбцам?-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
20.10.2008 0:44
Сообщение
#8
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
по столбцам
|
Lapp |
20.10.2008 2:50
Сообщение
#9
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
по столбцам Ну, тогда все просто. Кусок памяти,начинающийся сразу за вычеркиваемым столбцом и содержащий весь остаток матрицы, двигаешь влево на длину столбца.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
20.10.2008 11:49
Сообщение
#10
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
мне непонятно только как и где задать номера столбцов матрицы чтобы я мог осуществить сдвиг с такого-то столбца влево
|
Lapp |
21.10.2008 0:09
Сообщение
#11
|
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
как и где задать номера столбцов матрицы Их не надо нигде как-то специально задавать. Просто вычисляешь по ним адрес. Например, адрес начального элемента i-того столбца будет: ci = a + i*lc , где ci - адрес начало i-того столбца, a - адрес начала матрицы, lc - длина столбца. Это при условии, что числа однобайтовые, и нумерация идет с нуля. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
21.10.2008 21:46
Сообщение
#12
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
вот у меня кое-что получилось, но неправильно... в методичках насчет операции вычеркивания ничего нет. Делал по образцу примера по обработке массива
Start: mov DI,0 mov ECX,2; номер вычеркиваемого столбца cycle1: push ECX mov ECX,5 mov ECX,6 mov EBX,0 cycle2: Mov AL, A+1[EBX] MOV A[EBX],AL ADD EBX,5 loop cycle2 pop ECX loop cycle1 |
volvo |
24.10.2008 14:31
Сообщение
#13
|
Гость |
Какой у тебя ассемблер, уточни...
Вот так должно отработать под TASM-ом (ты сказал, что у тебя матрица организована "по столбцам"):
|
1147 |
25.10.2008 19:15
Сообщение
#14
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
у меня Radasm
|
volvo |
25.10.2008 20:57
Сообщение
#15
|
Гость |
RadASM - это среда разработки... Она работает со многими компиляторами: и с MASM-ом и с TASM-ом, FASM и NASM тоже поддерживаются... Вот я и спрашиваю, чем именно из вышеперечисленного ты пользуешься?
Сообщение отредактировано: volvo - 25.10.2008 20:57 |
1147 |
25.10.2008 22:12
Сообщение
#16
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
тогда Masm
Добавлено через 14 мин. masm32 точнее |
volvo |
26.10.2008 12:04
Сообщение
#17
|
Гость |
Ну, а MASM - это вообще отдельный разговор. Тут все еще проще:
.486 |
1147 |
27.10.2008 11:08
Сообщение
#18
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
спасибо, попытаюсь разобраться...
|
Lapp |
30.10.2008 3:51
Сообщение
#19
|
|||
Уникум Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: 159 |
Добавлено через 3 мин. Всем рекомендую посмотреть, как человек за 40 дней полностью забывает все и начинает по новой (переход от сообщения №5 к №6) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
1147 |
2.11.2008 18:12
Сообщение
#20
|
Бывалый Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: 0 |
допустим я вычислил номер элемента который нужно сдвинуть, но как осуществить непосредственно сдвиг чтобы в основной памяти один элемент матрицы стал на место другого?
|
Текстовая версия | 2.11.2024 0:47 |