![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
![]()
Подскажите, пожалуйста, как найти в массиве число, ближайшее к заданному. Мне код не нужен, только идея, если можно.
Заранее благодарен)) |
![]() |
![]() |
![]() |
#2 |
somewhere else
Участник клуба
Регистрация: 17.07.2008
Сообщений: 1,409
|
![]()
Перебор всего "массива" в цикле, каждое число проверяем на приближенность и если новое число приближенне старого - записываем его адрес в переменную. И так после работы цикла останется самое приближенное число. Но самое главное что таких числа может быть 2 - приближенное-меньшее и приближенное-большее. Например число 8.
7 и 9 имеют одинаковую приближенность.
"Тяжело в учении, легко в бою" - А.В. Суворов
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
![]()
Это в целом я так и хотел делать. Как же можно находить эту самую приближенность? Каким-то вычитанием и сравнением...
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в языке высокого уровня отнимаете от текущего числа заданное и берёте модуль полученной разности:
priblizhenie = abs(tekuschee_chislo - zadannoe_chislo) а ассембле или поступайте так же (отнимаете, потом операция сравнения с нулём, если полученная разница меньше нуля - то отнимаете её от нуля) либо, лучше - перед вычитанием сравнивайте и отнимайте всегда от большего меньшее: Код:
![]() |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
![]()
Огромное спасибо! Очень помогло. Теперь допишу код до конца)))
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
![]()
Вот еще вопрос, немного не в тему правда, но все же. Что такое exit code 13? Что это значит?
Программа нормально все делает, а когда доходит до строчки INT 21h в самом конце, то выдает этот код=(( |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
![]()
значит на момент вызова int 21h в конце в al у вас число 13 содержится.
видимо вы делали так: Код:
Код:
Надо бы избавиться от привычки ставить многоточие.....
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 21.09.2008
Сообщений: 70
|
![]()
Min, да, Вы правы, все помогло. А чем они отличаются в целом mov ah, 4ch от mov ax, 4c00h ?
|
![]() |
![]() |
![]() |
#9 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Размерностью данных
в ah ты байт вгонишь а в ax слово (два байта) В Ax числа больше 255 влазят
I'm learning to live...
|
![]() |
![]() |
![]() |
#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 |