![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Округление в меньшую сторонуDelphi , Синтаксис , Математика
Автор: Dimka Maslov { **** UBPFD *********** by delphibase.endimus.com **** >> «Округление» в меньшую сторону Функция возвращает наибольшее число, меньшее или равное Value, которое без остатка делится на Divider Зависимости: нет Автор: Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург Copyright: Dimka Maslov Дата: 20 мая 2002 г. ***************************************************** } function RoundPrev(Value, Divider: Integer): Integer; asm mov ecx, edx cdq idiv ecx imul ecx end; Пример использования: RoundPrev(10, 3) // = 9 RoundPrev(9, 3) // = 9 Программная функция для округления вниз до ближайшего кратного заданному делителю! Код структурирован и легко понятен. Вот разбивка: Подпись функции
Функция принимает два целочисленных параметра: Ассемблерный код
Это сердце функции. Ассемблерный код довольно изобретательен:
1. Пример использования
Эти примеры демонстрируют, как функция работает. Например, при вызове Альтернативное решение
Если вы хотите реализовать эту функциональность без использования ассемблерного кода, можно использовать функцию
Эта реализация более проста и легче поддерживаемая. Функция В целом, оригинальный код является хорошим примером использования ассемблерного кода для оптимизации конкретной алгоритма в Delphi. Однако для большинства случаев альтернативное решение с использованием Округление в меньшую сторону - функция, которая возвращает наибольшее число, меньше или равное Value, которое без остатка делится на Divider. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Математика ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |