![]() |
1. Заголовок или название темы должно быть информативным
2. Все тексты программ должны помещаться в теги [CODE=asm] [/CODE]
3. Прежде чем задавать вопрос, см. "FAQ",если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно, такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Ассемблера. Исключение только с согласия модератора.
5. НЕ используйте форум для личного общения! Все, что не относиться к обсуждению темы - на PM!
6. Проверяйте программы перед тем, как выложить их на форум!!
![]() ![]() |
![]() |
1147 |
![]()
Сообщение
#1
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Объясните пожалуйста как можно выполнить следующее задание: Дана матрица 6х5. Вычеркнуть столбец с заданным номером.
|
мисс_граффити |
![]()
Сообщение
#2
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
На каком этапе выполнения возникают сложности?
Показывай, что уже сделал. Вообще - по сути - надо удалить каждый n-ный элемент (т.е. сдвинуть все, что после него стоит). -------------------- Все содержимое данного сообщения (кроме цитат) является моим личным скромным мнением и на статус истины в высшей инстанции не претендует.
На вопросы по программированию, физике, математике и т.д. в аське и личке не отвечаю. Даже "один-единственный раз" в виде исключения! |
1147 |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Я вообще не представляю как в компиляторе можно представить матрицу. Задания которые мне приходилось делать были на выполнение арифметических действий (с ассемблером я очень мало знаком)-это не трудно-результат видишь в определенном регистре. А тут нужно как-то сделать целую матрицу, да еще столбец вычеркнуть. Про матрицы я сейчас пытаюсь разобраться, но как вычеркнуть столбец мне вообще не ясно
|
мисс_граффити |
![]()
Сообщение
#4
|
![]() просто человек ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 3 641 Пол: Женский Реальное имя: Юлия Репутация: ![]() ![]() ![]() |
(просьба не придираться - объясняю все упрощенно, упуская некоторые не значимые в данном случае нюансы)
Пишу в предположении, что ты правда хочешь разобраться, а не "лишь бы сдать". Человеку удобно представлять матрицу в виде строк и столбцов: 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 |
![]()
Сообщение
#5
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
большое спасибо мисс граффити!
|
1147 |
![]()
Сообщение
#6
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
Задача такая:
Дана матрица 6х5. Вычеркнуть столбец с заданным номером |
Lapp |
![]()
Сообщение
#7
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Вычеркнуть столбец с заданным номером Как организована память для матрицы? По строкам или по столбцам?-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
![]()
Сообщение
#8
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
по столбцам
|
Lapp |
![]()
Сообщение
#9
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
по столбцам Ну, тогда все просто. Кусок памяти,начинающийся сразу за вычеркиваемым столбцом и содержащий весь остаток матрицы, двигаешь влево на длину столбца.-------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
![]()
Сообщение
#10
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
мне непонятно только как и где задать номера столбцов матрицы чтобы я мог осуществить сдвиг с такого-то столбца влево
|
Lapp |
![]()
Сообщение
#11
|
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
как и где задать номера столбцов матрицы Их не надо нигде как-то специально задавать. Просто вычисляешь по ним адрес. Например, адрес начального элемента i-того столбца будет: ci = a + i*lc , где ci - адрес начало i-того столбца, a - адрес начала матрицы, lc - длина столбца. Это при условии, что числа однобайтовые, и нумерация идет с нуля. -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
1147 |
![]()
Сообщение
#12
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
вот у меня кое-что получилось, но неправильно... в методичках насчет операции вычеркивания ничего нет. Делал по образцу примера по обработке массива
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 |
![]()
Сообщение
#13
|
Гость ![]() |
Какой у тебя ассемблер, уточни...
Вот так должно отработать под TASM-ом (ты сказал, что у тебя матрица организована "по столбцам"):
|
1147 |
![]()
Сообщение
#14
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
у меня Radasm
|
volvo |
![]()
Сообщение
#15
|
Гость ![]() |
RadASM - это среда разработки... Она работает со многими компиляторами: и с MASM-ом и с TASM-ом, FASM и NASM тоже поддерживаются... Вот я и спрашиваю, чем именно из вышеперечисленного ты пользуешься?
Сообщение отредактировано: volvo - 25.10.2008 20:57 |
1147 |
![]()
Сообщение
#16
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
тогда Masm
Добавлено через 14 мин. masm32 точнее |
volvo |
![]()
Сообщение
#17
|
Гость ![]() |
Ну, а MASM - это вообще отдельный разговор. Тут все еще проще:
.486 |
1147 |
![]()
Сообщение
#18
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
спасибо, попытаюсь разобраться...
|
Lapp |
![]()
Сообщение
#19
|
|||
![]() Уникум ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Модераторы Сообщений: 6 823 Пол: Мужской Реальное имя: Лопáрь (Андрей) Репутация: ![]() ![]() ![]() |
Добавлено через 3 мин. Всем рекомендую посмотреть, как человек за 40 дней полностью забывает все и начинает по новой (переход от сообщения №5 к №6) -------------------- я - ветер, я северный холодный ветер
я час расставанья, я год возвращенья домой |
|||
1147 |
![]()
Сообщение
#20
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 205 Пол: Мужской Реальное имя: Евгений Репутация: ![]() ![]() ![]() |
допустим я вычислил номер элемента который нужно сдвинуть, но как осуществить непосредственно сдвиг чтобы в основной памяти один элемент матрицы стал на место другого?
|
![]() ![]() |
![]() |
Текстовая версия | 19.02.2025 2:16 |