Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.04.2008, 13:52   #1
Wizlight
Новичок
Джуниор
 
Регистрация: 10.12.2007
Сообщений: 1
По умолчанию Модуль для работы с дуальными числами

Здраствуйте, помогите пажулуйста по созданию модуля в Делфи, для работы с дуальными числами, в особенности нужно описать 4 арифметические операции и операцию поднесения к степени этих чисел.

Они очень похожи на комплексные числа, но есть одно различие.
Дуальные числа или комплексные числа параболического типа — гиперкомплексные числа вида a + εb где a и b — вещественные числа и ε^2 = 0

Сложение дуальных чисел определяется формулой
(a1 + εb1) + (a2 + εb2) = (a1 + a2) + ε(b1 + b2),
Вычитание дуальных чисел определяется формулой
(a1 + εb1) - (a2 + εb2) = (a1 - a2) + ε(b1 - b2),
Умножение дуальных чисел определяется формулой
(a1 + εb1)(a2 + εb2) = (a1a2) + ε(a1b2 + a2b1),
Деление дуальных чисел определяется формулой
(a1 + εb1)/(a2 + εb2) = (a1/a2) + ε((a2b1-a1b2)/a2^2),
Поднесения в степень дуального числа определяется формулой
(a1 + εb1)^n=a1^n + n*a1^(n-1)*b1* ε.

Я новичек в Делфи, поэтому не знаю как лучше это сделать(
Сначало хотел просто изменить коечто в модуле для комплексных чисел, который если я не ошибаюсь называется varcmplx, но я потерялся в том коде. Кстате для работы с комплексными числами не использовал напрямую модуль varcmplx, так как не понял как, а скачал с инета уже переработаный или упрещеный модуль cmplx, но в нем менять чтото вроди бесполезно.

Спасибо за внимание, буду благодарен за помощь
Wizlight вне форума Ответить с цитированием
Старый 13.04.2008, 14:11   #2
alexBlack
Участник клуба
 
Регистрация: 12.10.2007
Сообщений: 1,204
По умолчанию

Например, так:

Код:
type
    TDual = class
    private
        FA, FB : extended;
    public 
        constructor Create(A, B:Extended);
        procedure Add(D:TDual);
        function asString : String; 
    end;

constructor TDual.Create(A, B:Extended);
begin
    FA := A;
    FB := B;
end;

procedure TDual.Add(D:TDual);
begin
    FA := FA + D.FA;
    FB := FB + D.FB;
end;

function TDual.asString : String; 
begin
    result := FloatToStr(FA)+' + e ' + FloatToStR(FB);
end;

var D1, D2:TDual;
     S:String;
...
D1 := TDual.Create(5, 5);
D2 := TDual.Create(6, 6);
D1.add(D2);
S := D1.asString;
Остальные операции аналогично.
alexBlack вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с большими числами SanekIrk Общие вопросы Delphi 3 11.07.2008 22:11
НОК с 3 числами на входе Diabolikn Помощь студентам 3 19.02.2008 23:22
Работа с числами Drain Общие вопросы Delphi 10 11.02.2008 16:35
Мой собственный модуль работы с сообщениями Sibedir Софт 7 17.11.2007 01:23