梦想号黄包车wei.lee net-home

Have my best life at SZ....................

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  6 随笔 :: 3 文章 :: 6 评论 :: 0 Trackbacks

项目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));



  


  

posted on 2006-05-30 21:00 Wei.Lee 阅读(262) 评论(0)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: