|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
"Расчет комплексной функции" Незнаю, как исправить ошибки
Здравствуйте. Записал формулу в Delphi, а она ощибки выдает: [Error] Unit1.pas(59): Operator not applicable to this operand type [Error] Unit1.pas(60): Incompatible types: 'Extended' and 'Complex' Что бы вторую исправить, крутил-мутил и ничего не получалось, ошибка поформуле прыгала. А с первой вообще ничего не знаю. Вот формула: Код:
w:=(mulc(cplx(-k,2),cplx(-k,2))-(ln(x)-cplx(arccos((-k/power((power(-k,2)+1),1/2))),(power((power(-k,2)+1),1/2))))); rm:=cplx(cplx(power((power(-x,2)+1),1/2),cplx(arccos((-x/power((power(-x,2)+1),1/2))),x*k); d:=divc(w,rm); s:=mulc(d,Expj(k*x)); Код:
unit Unit1; Вот весь код: interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, StdCtrls, Cmplx, Math; type TForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Button1: TButton; Chart1: TChart; Series1: TLineSeries; Series2: TLineSeries; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var n,k:integer; Xmin,Xmax,x,h:extended; s,d,w,rm:complex; begin series1.Clear; series2.Clear; n:=strtoint(edit1.text); xmin:=strtofloat(edit2.text); xmax:=strtofloat(edit3.text); h:=strtofloat(edit4.text); x:=xmin; repeat s.re:=1; s.im:=1; for k:=2 to n do begin w:=(mulc(cplx(-k,2),cplx(-k,2))-(ln(x)-cplx(arccos((-k/power((power(-k,2)+1),1/2))),(power((power(-k,2)+1),1/2))))); rm:=cplx(cplx(power((power(-x,2)+1),1/2),cplx(arccos((-x/power((power(-x,2)+1),1/2))),x*k); d:=divc(w,rm); s:=mulc(d,Expj(k*x)); end; series1.AddXY(x,s.re,'', clred); series2.AddXY(x,s.im,'',clblack); x:=x+h; until x>xmax; end; end. |
#2
|
|||
|
|||
Скинь проект. Попробую исправить.
|
#4
|
|||
|
|||
А откуда такой модуль Cmplx?
|