项目OMS即将启动了,我是其中的一分子,这是我第一次参加新的项目;当然"磨刀不误砍柴功",首先我去把Delphi的祖母Pascal研究了一番,现在明白为什么Pascal会成为经典的教学语言.的确是有它的优点的.看起来Pascal的确是很舒服的.在下面我对一些Pascal知识做了记录;
一、Pascal代码书写规范:
1.注释规范
{ ... code
//this comment is OK
... code }
2.标识符规范
一个常用的方法是将每个标识符的第一个字母大写,标识符若由几个词组合而成(中间不能插入空格),每个词的第一个字母应大写
eg:MyName
二、Pascal代码一些特性:
1. 优先级
与大多数编程语言相反,Pascal语言中and和or运算符的优先级比关系运算符高。
a < b and c < d ===============> False
(a < b) and (c < d) =============> True
2. 类型 变量 常量 资源串常量
变量使用var标识
var
MyName: String;
常量使用const标识
const
MyName :String = 'liweichi';
资源串常量使用 resourcestring标识 ,指令定义的字符串变量将被保存到程序资源的字符串表中。
recourcestring
AuthorName = 'liweichi';
3. 数据类型
有序类型(基本类型)
Integer
Boolean
Char
实数类型
Double
字符串类型
string
用户自定义类型
子界类型
数组类型
记录类型
枚举类型
指针类型
集合类型
类
type
Uppercase = 'A'..'Z'; //子界
Temperatures = array[1..25] of Integer; //数组
Date = record //记录
Month: Byte;
Day: Byte;
Year: Integer;
end;
Colors = (Red,Yellow,Green,Blue,Violet); //枚举
Letters = set of Char; //集合
var
P: ^Integer; //指针
X: Integer;
begin
P := @X;
P^ := X;
4. 语句方面
if .. then .. else
eg:
if CheckBox1.Checked then
ShowMessage('CheckBox1 has been Checked.')
else
ShowMessage('CheckBox1 donot been Checked.')
end;
while ..
eg:
while (I <= 20) do
begin
I := I + 1;
end;
repeat....until
eg:
repeat I := I + 1;
until (I > 100);
with....
eg:
//define the variable type
type
Date = record
Year: Integer;
Month: Byte;
Day: Byte;
end;
//define the type variable
var
BirthDay: Date;
//inital value assign
begin
BirthDay.Year := 1997;
BirthDay.Month := 2;
BirthDay: Day := 21;
//use the with.. sentence to replace it
begin
with BirthDay do
begin
Year := 1997;
Month := 2;
Day := 21;
三. 过程与函数
procedure and function
1. 函数的值传递和引用传递
//值传递; 定义返回的值类型,使用与函数名相同的变量作返回
function Double01 (Value: Integer) : Integer;
begin
Double01 := Value * 2;
end;
//值传递; 使用Result作为返回值,这个是推荐使用的
function Double02 (Value: Integer) : Integer; begin
Result := Value * 2;
end;
//引用传递;定义一个函数
procedure DoubleTheValue (var Value: Integer);
begin
Value := Value * 2;
end;
//调用上面的函数,运行结果X=20;
var
X: Integer;
begin
X := 10;
DoubleTheValue(X);
end;
2. 开放数组参数
一个开放数组参数就是一个固定类型开放数组的元素。 也就是说,参数类型已定义,但是数组中的元素个数是未知数。
eg:
//定义一个开放数组参数的函数
function Sum(const A: array of Integer): Integer
var
I: Integer;
begin
Result := 0;
for I := Low(A) to High(A) do
Result := Result + A(I);
end;
//在程序中调用这个开放数组参数函数
X := Sum([10, Y, 27*I]);
//或者
var
List: array[1..10] of Integer;;
X, I: Integer;
begin
//初始化数组
for I := Low(List) to High(List) do
List[I] := I * 2;
X := Sum(List);
//或者使用Slice传递部分的数组过去,Slice函数的第二个参数是表示传递多少个数组过去
X := Sum(Slice(List));