雄关漫道真如铁,而今迈步从头越分享 http://blog.sciencenet.cn/u/max 专业,是一种追求;执着,是一种品质;从容,是一种境界。

博文

Delphi技术(4)——Delphi语言中复数运算的使用

已有 4938 次阅读 2013-9-18 14:23 |个人分类:Delphi技术|系统分类:科研笔记| Delphi, 复数

 

1 背景:

电气工程中经常要进行复数运算,如果采用Matlab计算当然很方便的。但是,如果希望开发具有自主知识产权的软件,则VBDelphiVC是比较好的选择。根据我们对可视化语言的理解和应用,我们采用Delphi语言。然而,Delphi中复数的使用当然有其特殊之处。

 

2 所用的函数:

所有的复数使用都要包含VarCmplx程序文件,所以必须在uses中使用:

Uses VarCmplx;

 

(1) 复数的定义:

  复数的类型称作Variant,如Z表示阻抗,则可以:

  Var

     Z:Variant;    //定义Z为复数类型;

(2) 建立复数函数:VarComplexCreate()

function VarComplexCreate(const AReal, AImaginary: Double): Variant; overload;

function VarComplexCreate(const AReal: Double): Variant; overload;

function VarComplexCreate: Variant; overload;

function VarComplexCreate(const AText: string): Variant; overload;

注意的是,overload,其实也不要太理睬它,就是一个函数被多例程调用,由系统自动识别,这为编程带来极大的方便。

如:创造复数(1+2i)可以通过两种方法:

Z:=VarComplexCreate(1,2);     //第一种的应用;

Z:=varComplexCreate(‘1+2i’);   //第三种的应用;

(3) 其它相关函数

求幅值:function VarComplexAbs(const AValue: Variant): Double;

求幅角:function VarComplexAngle(const AValue: Variant): Double;

   其它相关函数均可以help获得。

这里要注意:参数之间类型的匹配问题。

(4) 复数的输出:

没想到,复数的输出反倒这么容易和方便,直接和运算得到的复数匹配,如复数Z直接可以输出至编辑框:

Z:=varCreateCmplex(‘1+2i’);

Edit1.text:=Z;   //这个太方便了。

 

3 一个求解算例:

 

Button1对应的代码:

procedure TForm1.Button1Click(Sender: TObject);

var

 Z1,Z2,Z3,Z4,Z5,Z6:Variant;

 Abs1,Angle1:Double;

 String1:String;

begin

 Z1:=varComplexCreate('1+2i');

 Z2:=varComplexCreate(2,3);

 Z3:=Z1+Z2;

 Z4:=Z1-Z2;

 Z5:=Z1*Z2;

 Z6:=Z1/Z2;

 Edit1.Text:=varComplexCreate('1+2i');

 Edit2.Text:=Z1-Z2;

 Edit3.Text:=Z1*Z2;

 Edit4.Text:=Z1/Z2;

 Abs1:=varComplexAbs(Z1);

 Angle1:=varComplexAngle(Z1);

 Edit7.Text:=FloatToStr(Abs1);

 Edit8.Text:=FloatToStr(Angle1);

end;

 

4 总结:

   Delphi复数运算几乎和实数一样方便,也不要害怕,尤其输出更方便;想寻找帮助,关键词一般都按照varComplx开始,后面单词就可以猜测了。

 



https://wap.sciencenet.cn/blog-469261-725908.html

上一篇:《电力系统分析》课件——当代电力系统(Ver2013-2014)
下一篇:中国男生的集体沦陷
收藏 IP: 58.213.51.*| 热度|

1 tlw2013

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-26 10:56

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部