|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
12.04.2009, 21:27 | #1 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Работа с массивом
Подскажите, пожалуйста, как найти в массиве число, ближайшее к заданному. Мне код не нужен, только идея, если можно.
Заранее благодарен)) |
12.04.2009, 21:53 | #2 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
Перебор всего "массива" в цикле, каждое число проверяем на приближенность и если новое число приближенне старого - записываем его адрес в переменную. И так после работы цикла останется самое приближенное число. Но самое главное что таких числа может быть 2 - приближенное-меньшее и приближенное-большее. Например число 8.
7 и 9 имеют одинаковую приближенность.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
12.04.2009, 22:03 | #3 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Это в целом я так и хотел делать. Как же можно находить эту самую приближенность? Каким-то вычитанием и сравнением...
|
12.04.2009, 22:57 | #4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
в языке высокого уровня отнимаете от текущего числа заданное и берёте модуль полученной разности:
priblizhenie = abs(tekuschee_chislo - zadannoe_chislo) а ассембле или поступайте так же (отнимаете, потом операция сравнения с нулём, если полученная разница меньше нуля - то отнимаете её от нуля) либо, лучше - перед вычитанием сравнивайте и отнимайте всегда от большего меньшее: Код:
|
12.04.2009, 23:39 | #5 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Огромное спасибо! Очень помогло. Теперь допишу код до конца)))
|
13.04.2009, 20:11 | #6 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Вот еще вопрос, немного не в тему правда, но все же. Что такое exit code 13? Что это значит?
Программа нормально все делает, а когда доходит до строчки INT 21h в самом конце, то выдает этот код=(( |
14.04.2009, 07:46 | #7 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
значит на момент вызова int 21h в конце в al у вас число 13 содержится.
видимо вы делали так: Код:
Код:
Надо бы избавиться от привычки ставить многоточие.....
|
14.04.2009, 16:00 | #8 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Min, да, Вы правы, все помогло. А чем они отличаются в целом mov ah, 4ch от mov ax, 4c00h ?
|
14.04.2009, 16:03 | #9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Размерностью данных
в ah ты байт вгонишь а в ax слово (два байта) В Ax числа больше 255 влазят
I'm learning to live...
|
14.04.2009, 16:20 | #10 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
Ааа, ну если так, то все понятно. Ну у меня и программа получилась. Не хотите взглянуть, она уже готова...просто из спортивного интереса. Я там намудрил правда...как никак только начинаю ассемблер покорять...
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
работа с массивом | begemotikdin | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 21.06.2008 21:40 |
Работа с массивом: n на n ! | Angst | Помощь студентам | 1 | 24.01.2008 22:14 |
работа с одномерным массивом | _Solomon_ | Помощь студентам | 1 | 07.06.2007 12:06 |