Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 641

•  TDictionary Custom Sort  6 646

•  Fast Watermark Sources  6 423

•  3D Designer  9 364

•  Sik Screen Capture  6 752

•  Patch Maker  7 140

•  Айболит (remote control)  7 154

•  ListBox Drag & Drop  6 010

•  Доска для игры Реверси  97 601

•  Графические эффекты  7 337

•  Рисование по маске  6 625

•  Перетаскивание изображений  5 495

•  Canvas Drawing  5 873

•  Рисование Луны  5 596

•  Поворот изображения  5 103

•  Рисование стержней  3 674

•  Paint on Shape  2 906

•  Генератор кроссвордов  3 803

•  Головоломка Paletto  3 054

•  Теорема Монжа об окружностях  3 864

•  Пазл Numbrix  2 546

•  Заборы и коммивояжеры  3 258

•  Игра HIP  2 228

•  Игра Go (Го)  2 163

•  Симулятор лифта  2 540

•  Программа укладки плитки  2 178

•  Генератор лабиринта  2 679

•  Проверка числового ввода  2 328

•  HEX View  2 663

•  Физический маятник  2 295

 
скрыть

Delphi Sources

Округление до ближайшего кратного



{ **** UBPFD *********** by delphibase.endimus.com ****
>> «Округление» до ближайшего кратного

Функция возвращает ближайшее к Value число, которoе без
остатка делится на N. Если Value находится посередине
между двумя кратными, функция вернёт большее значение.

Зависимости: нет
Автор:       Dimka Maslov, mainbox@endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright:   Dimka Maslov
Дата:        20 февраля 2003 г.
***************************************************** }

function RoundTo(Value, N: Integer): Integer;
asm
   push ebx
   mov ebx, eax
   mov ecx, edx
   cdq
   idiv ecx
   imul ecx

   add ecx, eax
   mov edx, ebx
   sub ebx, eax
   jg @@10
   neg ebx
@@10:
   sub edx, ecx
   jg @@20
   neg edx
@@20:
   cmp ebx, edx
   jl @@30
   mov eax, ecx
@@30:
   pop ebx
end;