![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]()
Доброго вам суток дня помогите пажалуста зделать калькулятор комплексных чисел,нашол в нете нашол вот такой вот код ,он подходит под калькулятор?если да помогите пожайлуста реализовать его.
|
![]() |
![]() |
![]() |
#2 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]() Код:
|
![]() |
![]() |
![]() |
#3 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]()
function C_IntPowerNP(a:ComplexPtr;n:integer ):ComplexPtr;
var j:integer; u,v:float; begin result:=C_Copy(a); u:=result.a; v:=result.b; for j:=2 to n do begin u:=u*result.a; v:=v+result.b; end; result.a:=u; result.b:=v; end; function C_ParallelN(a,b:ComplexPtr):Complex Ptr; // result:=a//b = (a*b)/(a+b) var z,n:ComplexPtr; begin z:=C_MulN(a,b); n:=C_AddN(a,b); C_R2P(n); C_R2P(z); result:=C_DivNP(z,n); C_P2R(result); dispose(n); dispose(z); end; end. function C_Copy(a:ComplexPtr):ComplexPtr; // result:=a function C_One:ComplexPtr; // result:=1 BOTH function C_I:ComplexPtr; // result:=i RECTANGULAR function C_IP:ComplexPtr; // result:=i POLAR procedure C_P2R(a:ComplexPtr); // polar to rectangular procedure C_R2P(a:ComplexPtr); // rectangular to polar function C_abs(a:ComplexPtr):float; // RECTANGULAR function C_arg(a:ComplexPtr):float; // RECTANGULAR function C_re(a:ComplexPtr):float; // POLAR function C_im(a:ComplexPtr):float; // POLAR procedure C_Inv(a:ComplexPtr); // a:=-a RECTANGULAR procedure C_InvP(a:ComplexPtr); // a:=-a POLAR procedure C_Conj(a:ComplexPtr); // a:=konjug(a) BOTH function C_ConjN(a:ComplexPtr):ComplexPtr; //result:=konjug(a) BOTH procedure C_Scale(a:ComplexPtr;u:float); // a:=a*u; procedure C_ScaleP(a:ComplexPtr;u:float); // a:=a*u; procedure C_Add(a,b:ComplexPtr); //a:=a+b RECTANGULAR function C_AddN(a,b:ComplexPtr):ComplexPtr; //result:=a+b RECTANGULAR procedure C_Sub(a,b:ComplexPtr); //a:=a-b RECTANGULAR function C_SubN(a,b:ComplexPtr):ComplexPtr; //result:=a-b RECTANGULAR procedure C_Mul(a,b:ComplexPtr); //a:=a*b RECTANGULAR function C_MulN(a,b:ComplexPtr):ComplexPtr; //result:=a*b RECTANGULAR procedure C_MulP(a,b:ComplexPtr); //a:=a*b POLAR function C_MulNP(a,b:ComplexPtr):ComplexPtr; //result:=a*b POLAR procedure C_DivP(a,b:ComplexPtr); //a:=a/b POLAR function C_DivNP(a,b:ComplexPtr):ComplexPtr; //result:=a/b POLAR procedure C_Div(a,b:ComplexPtr); //a:=a/b POLAR function C_DivN(a,b:ComplexPtr):ComplexPtr; //result:=a/b POLAR function C_ExpN(a:ComplexPtr):ComplexPtr; // RECTANGLE function C_LogN(a:ComplexPtr):ComplexPtr; // POLAR function C_SinN(a:ComplexPtr):ComplexPtr; function C_CosN(a:ComplexPtr):ComplexPtr; function C_TanN(a:ComplexPtr):ComplexPtr; function C_SinhN(a:ComplexPtr):ComplexPtr; function C_CoshN(a:ComplexPtr):ComplexPtr; function C_TanhN(a:ComplexPtr):ComplexPtr; function C_IntPowerN(a:ComplexPtr;n:integer) :ComplexPtr; // RECTANGLE function C_IntPowerNP(a:ComplexPtr;n:integer ):ComplexPtr; // POLAR function C_ParallelN(a,b:ComplexPtr):Complex Ptr; // result:=a//b =(a*b)/(a+b) RECTANGULAR // electronic parallel circuit implementation uses math; const AlmostZero=1e-30; // test for zero function C_Copy(a:ComplexPtr):ComplexPtr; // result:=a begin result:=new(ComplexPtr); result.a:=a.a; result.b:=a.b; end; function C_One:ComplexPtr; // result:=1 begin result:=new(ComplexPtr); result.a:=1; result.b:=0; end; function C_I:ComplexPtr; // result:=i RECTANGULAR begin result:=new(ComplexPtr); result.a:=0; result.b:=1; end; function C_IP:ComplexPtr; // result:=i POLAR begin result:=new(ComplexPtr); result.a:=1; result.b:=pi/2; end; procedure C_P2R(a:ComplexPtr); var t,u,v:float; begin t:=a.a; sincos(a.b,u,v); a.a:=t*v; a.b:=t*u; end; procedure C_R2P(a:ComplexPtr); var t:float; begin t:=a.a; a.a:=sqrt(sqr(a.a)+sqr(a.b)); if (abs(t)0 then a.b:=pi/2 else a.b:=-pi/2; end else begin a.b:=arctan(a.b/t); if (t<0)then a.b:=a.b+pi; end; end; function C_abs(a:ComplexPtr):float; begin result:=sqrt(sqr(a.a)+sqr(a.b)); end; function C_arg(a:ComplexPtr):float; begin if (abs(a.a)0 then result:=pi/2 else result:=-pi/2; end else begin result:=arctan(a.b/a.a); if (a.a<0)then result:=result+pi; end; end; function C_re(a:ComplexPtr):float; // POLAR begin result:=a.a*cos(a.b); end; function C_im(a:ComplexPtr):float; // POLAR begin result:=a.a*sin(a.b); end; procedure C_Inv(a:ComplexPtr); // a:=-a RECTANGULAR begin a.a:=-a.a; a.b:=-a.b; end; |
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]() Код:
|
![]() |
![]() |
![]() |
#5 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]()
http://www.ibrtses.com/delphi/complexrec.html вот вприницпе так проще)
|
![]() |
![]() |
![]() |
#6 |
Форумчанин
Регистрация: 18.08.2010
Сообщений: 140
|
![]()
да пойдет.
готовый калькулятор. Чо именно сделать-то надо?
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 18.08.2010
Сообщений: 140
|
![]()
Кнопочки чтоли отвечающие за функции?
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
|
![]() |
![]() |
![]() |
#8 |
Новичок
Джуниор
Регистрация: 01.11.2010
Сообщений: 7
|
![]()
да
поможете? |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 18.08.2010
Сообщений: 140
|
![]()
не-а. неинтересно. Тут делать нечего. Могу только подсказать: рисуешь кнопочки, потом пишешь для каждой кнопочки что-то типа такого:
Код:
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 18.08.2010
Сообщений: 140
|
![]()
а вообще мож и сделал бы, но у меня нет компилятора этого, его ж искать надо
![]()
Люди бывают десяти типов: те, кто знают двоичную систему, и те, кто нет
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
sinh в комплексных числах | Brabus | Помощь студентам | 11 | 23.01.2010 23:36 |
арифметический калькулятор для 2х чисел | purpura | Помощь студентам | 3 | 21.11.2009 15:00 |
двадцати пяти значный калькулятор целых чисел | GydZu | Помощь студентам | 7 | 13.06.2009 10:55 |
Pascal.Умножние комплексных чисел.Рекурсия | starlet | Помощь студентам | 9 | 19.04.2009 18:36 |