Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Деление [D7, Win95/98]


Страницы:   1 2

M-Alex ©   (2004-09-22 15:41:00) 

Можноли делить числа в Delphi  без div чтобы с остатком и без использования mod


Zhekson   (2004-09-22 23:32:00) [1]

Всё M-Alex, говори спасибо. Делим без div, c остатком и не используем mod.


Zhekson   (2004-09-22 23:25:00) [2]


var
 a,b,c: real;
begin
c := a / b;
end;


это мой вариант 100% рабочего ответа, но опять же - если я правильно вопрос понял.


Sha   (2004-09-22 23:10:00) [3]

> DiamondShark ©   (22.09.04 17:10) [25]
Умножение быстрее деления.


Anatoly Podgoretsky   (2004-09-22 17:13:00) [4]

DiamondShark ©   (22.09.04 17:10) [25]
В России учеба началась


DiamondShark   (2004-09-22 17:10:00) [5]

Ну и наконец, мой любимый вопрос: А зачем?


Anatoly Podgoretsky   (2004-09-22 16:29:00) [6]

Что то вас понесло, вспомните школу


Sandman25   (2004-09-22 16:21:00) [7]

[22] Sha ©   (22.09.04 16:19)

Спасибо. Примерно понятно.


Sha   (2004-09-22 16:19:00) [8]

> Sandman25 ©   (22.09.04 16:11) [19]
> Можно примеры для обоих случаев? Или хотя бы идею.

Идей всего 3: умножение на "обратное", сдвиги, деление столбиком.
Первое хорошо описано у Agner Fog http://www.agner.org/assem


Sandman25   (2004-09-22 16:16:00) [9]

[20] TUser ©   (22.09.04 16:12)

Такое нахождение остатка очевидно. Но очевидно и то, что оно неэффективно.


TUser   (2004-09-22 16:12:00) [10]

Для усложенения жизни можно порекомендовать вот такой алгоритм. Тут все только плюс и минус.

A:=делимое
B:=делитель

C:=B; C1:=0;
while A >= B do begin
A:=A+C1-C;
C1:=C
C:=C+C;
end;
if A < 0 then
  A:=A+C1;
while A >= B do
  A:=A-B;
A = остаток


Sandman25   (2004-09-22 16:11:00) [11]

[18] Sha ©   (22.09.04 16:09)

Можно примеры для обоих случаев? Или хотя бы идею.


Sha   (2004-09-22 16:09:00) [12]

Sandman25 ©   (22.09.04 16:06) [16]

Да, если Y известен в момент компиляции.
В противном случае все несколько усложняется.


Суслик   (2004-09-22 16:07:00) [13]


>  [15] Sha ©   (22.09.04 16:01)

О великий комбинатор :))) Опыт...
Тогда правда все понятно :))


Sandman25   (2004-09-22 16:06:00) [14]

[13] Sha ©   (22.09.04 15:56)

На Паскале?


Sha   (2004-09-22 16:01:00) [15]

Суслик ©   (22.09.04 15:58) [14]
Перестановкой слов получаем:
Можноли делить с остатком числа в Delphi без использования div и mod
Все понятно :)


Суслик   (2004-09-22 15:58:00) [16]


>  [11] Sha ©   (22.09.04 15:54)


> Возможно при помощи 2-х умножений или комбинаций shr/and
> в простейшем случае.

да не спорю я ни с чем :)))
вопрос бы понять :))


> Можноли делить числав Delphi  без div чтобы с остатком
> и без использования mod

Вот эту комбинацию слов фик поймешь - если человек хочет делить без использования mod, то он значит умеет делить с использованием mod. Я так например не умею :((


Sha   (2004-09-22 15:56:00) [17]

Sandman25 ©   (22.09.04 15:55) [12]
Это можно провернуть и в целочисленной арифметике


Sandman25   (2004-09-22 15:55:00) [18]

X - Trunc(X/Y)*Y


Sha   (2004-09-22 15:54:00) [19]

Суслик ©   (22.09.04 15:51) [10]
Возможно при помощи 2-х умножений или комбинаций shr/and в простейшем случае.


Суслик   (2004-09-22 15:51:00) [20]


> [8] Sha ©   (22.09.04 15:48)
> > Суслик ©   (22.09.04 15:44) [5]
> > Все правда поняли, что он спросил?
>
> Ответ зависит от того, понял ли ты :)

не понял, к чему это
Я про то и говорю, что вопрос не понял и удивляюсь, что вы все поняли.


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо