Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 26.12.2011, 05:42
ovosch ovosch вне форума
Прохожий
 
Регистрация: 21.12.2011
Сообщения: 2
Репутация: 10
По умолчанию "Расчет комплексной функции" Незнаю, как исправить ошибки



Здравствуйте. Записал формулу в 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  
Старый 26.12.2011, 05:44
Hunter US Hunter US вне форума
Новичок
 
Регистрация: 19.12.2011
Сообщения: 60
Репутация: 10
По умолчанию

Скинь проект. Попробую исправить.
Ответить с цитированием
  #3  
Старый 26.12.2011, 05:57
ovosch ovosch вне форума
Прохожий
 
Регистрация: 21.12.2011
Сообщения: 2
Репутация: 10
По умолчанию

Цитата:
Сообщение от Hunter US
Скинь проект. Попробую исправить.

Вот:

8.rar
Ответить с цитированием
  #4  
Старый 26.12.2011, 22:04
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

А откуда такой модуль Cmplx?
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 13:55.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter