Delphi开发人员指南 第一部份快速开发的基础 第2章 Object Pascal 语言(一)

本文详细阐述了Object Pascal语言的注释、过程和函数特征、变量与常量的使用,以及新引入的功能如缺省参数、重载等。同时介绍了语言在变量声明、全局变量与局部变量的区别等方面的特点。

======================================================
注:本文源代码点此下载
======================================================

这一章把delphi的可视化元素放在一边,主要讲解delphi使用的语言-object pascal语言。也就是面向对象的pascal,简单的说就是加入了类的pascal。

2.1 注释

注释是对原程序的说明部分,它是对原程序中的语句,或者编程的目的作的说明,是给程序员来看的,并不参加程序的编译,不会被编译成为可执行的代码。object pascal支持三种类型的注释:

{这是花括号注释,被花括号包括的部分为注释的内容}

(*这是圆括号加星号的注解,被圆括号加星号包括的部分为注释的内容*)

//这是双斜线注释,是c++风格的行注解,在双斜线右侧到行尾的内容为注释的内容

注意 相同类型的注释不能嵌套。虽然不同类型的注释进行嵌套在语法上是合法的,但不建议这个做。

2.2 过程和函数特征

介绍一些新的或鲜为人知的特性。

2.2.1 圆括号

虽然不是在delphi 5.0才有的,但object pascal中一个鲜为人知的特性是,当调用一个过程或函数时,如果被调用的过程和函数没有参数,圆括号是可以省略的。因此下面两个例子在语法上都是合法的:

form1.show;

form1.show();

2.2.2 重载

delphi4就引进了函数重载的概念(多个过程或函数有相同的名字,但有不同的参数列表)。所有需要重载的方法都要声明,并用overload来指示,示例如下:

procedure hello(i:integer);overload;

procedure hello(s:string);overload;

procedure hello(d:double);overload;

2.2.3 缺省值参数

缺省值参数是在delphi4中被引进的(当调用有缺省值参数的过程和函数时,可以不提供参数)。为了声明一个有缺省值参数的过程或函数,在参数类型后跟一个等号和缺省值,示例如下:

procedure hasdefval(s:string;i:integer = 0); //带缺省参数的过程

hasdefval('hello',26);//带全部参数的调用

hasdefval('hello');//使用缺省参数调用方法,只给出第一个参数

在使用缺省参数时要遵循下列几条规则:

有缺省值的参数必须在参数列表的最后。在一个过程或函数的参数列表中,没有缺省值的参数不能在有缺省值的参数的后面。

有缺省值的参数必须是有序类型、指针类型或集合类型。

有缺省值的参数必须是数值参数或常量参数,不能是引用(out)参数或无类型参数。

2.3 变量

变量只能在var域进行声明,不能像c++一样随用随声明。

object pascal像visual basic但不像c和c++,它的变量名是大小写不敏感的。

object pascal可以使相同类型的变量合并在同一行上声明。如:varname1,varname2: sometype;

全局变量在声明的时候可以赋初值。如:i:integer = 10;

没有赋初值的全局变量会自动被delphi编译器赋初值。当程序开始时,所有的整型数赋为0,浮点数赋为0.0,指针赋为nil,字符串为空等等,因此,在源代码中不必对全局变量初始化。

2.4 常量

在pascal中用const关键字来声明常量,就像在c语言中const关键字一样。在object pascal语言中不需要在对常量赋值时声明常量的类型,编译器能根据常量的值自动判断常量的类型并分配内存;对于整形常量,编译器在运行时跟踪它的值,并不对它分配内存。

const

adecimalnumber = 3.14;

i = 10;

errorstring = 'danger,danger,danger!';

注意 编译器根据如下规则来对常量分配内存:整型数被认为是最小的integer类型(10被认为是shortint,32000被认为是smallint等等);字符串值被认为是char类型或string类型(通过$h定义);浮点值被认为是extended数据类型,除非小数点位数小于4位(这种情况被当作comp类型);integer和char的集合类型被存储为它们自己。

当然,在声明常量是可以指定常量的类型,这样就能完全控制编译器对常量的处理。

const

adecimalnumber: double = 3.14;

i: integer = 10;

errorstring :string = 'danger,danger,danger!';

object pascal允许在const和var声明时用编译期间的函数,这些函数包括ord()、chr()、trunc()、rount()、high()、low()、和sizeof()。

type

a = array[1..2] of integer;

const

w: word = sizeof(byte);

var

i: integer = 8;

j: smallint = ord('a');

l: longint = trunc(3.14159);

x: shortint = round(2.71828);

b1: byte = high(a);

b2: byte = low(a);

c: char = chr(46);


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
【电动汽车充电站有序充电调度的分散式优化】基于蒙特卡诺和拉格朗日的电动汽车优化调度(分时电价调度)(Matlab代码实现)内容概要:本文介绍了基于蒙特卡洛和拉格朗日方法的电动汽车充电站有序充电调度优化方案,重点在于采用分散式优化策略应对分时电价机制下的充电需求管理。通过构建数学模型,结合不确定性因素如用户充电行为和电网负荷波动,利用蒙特卡洛模拟生成大量场景,并运用拉格朗日松弛法对复杂问题进行分解求解,从而实现全局最优或近似最优的充电调度计划。该方法有效降低了电网峰值负荷压力,提升了充电站运营效率与经济效益,同时兼顾用户充电便利性。 适合人群:具备定电力系统、优化算法和Matlab编程基础的高校研究生、科研人员及从事智能电网、电动汽车相关领域的工程技术人员。 使用场景及目标:①应用于电动汽车充电站的日常运营管理,优化充电负荷分布;②服务于城市智能交通系统规划,提升电网与交通系统的协同水平;③作为学术研究案例,用于验证分散式优化算法在复杂能源系统中的有效性。 阅读建议:建议读者结合Matlab代码实现部分,深入理解蒙特卡洛模拟与拉格朗日松弛法的具体实施步骤,重点关注场景生成、约束处理与迭代收敛过程,以便在实际项目中灵活应用与改进。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值