夢(mèng)想號(hào)黃包車(chē)wei.lee net-home

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            6 隨筆 :: 3 文章 :: 6 評(píng)論 :: 0 Trackbacks

          項(xiàng)目OMS即將啟動(dòng)了,我是其中的一分子,這是我第一次參加新的項(xiàng)目;當(dāng)然"磨刀不誤砍柴功",首先我去把Delphi的祖母Pascal研究了一番,現(xiàn)在明白為什么Pascal會(huì)成為經(jīng)典的教學(xué)語(yǔ)言.的確是有它的優(yōu)點(diǎn)的.看起來(lái)Pascal的確是很舒服的.在下面我對(duì)一些Pascal知識(shí)做了記錄;
          一、Pascal代碼書(shū)寫(xiě)規(guī)范:
          1.注釋規(guī)范
          ? {? ... code
          ? //this comment is OK
          ? ... code }

          2.標(biāo)識(shí)符規(guī)范
          一個(gè)常用的方法是將每個(gè)標(biāo)識(shí)符的第一個(gè)字母大寫(xiě),標(biāo)識(shí)符若由幾個(gè)詞組合而成(中間不能插入空格),每個(gè)詞的第一個(gè)字母應(yīng)大寫(xiě)
          ? eg:MyName

          二、Pascal代碼一些特性:
          1. 優(yōu)先級(jí)
          與大多數(shù)編程語(yǔ)言相反,Pascal語(yǔ)言中and和or運(yùn)算符的優(yōu)先級(jí)比關(guān)系運(yùn)算符高。
          ? a < b and c < d?? ===============> False
          ? (a < b) and (c < d) =============> True

          2. 類(lèi)型 變量 常量 資源串常量
          變量使用var標(biāo)識(shí)?
          ? var
          ??? MyName: String;
          常量使用const標(biāo)識(shí)???
          ? const
          ??? MyName :String = 'liweichi';
          資源串常量使用 resourcestring標(biāo)識(shí) ,指令定義的字符串變量將被保存到程序資源的字符串表中。
          ?? recourcestring
          ???? AuthorName = 'liweichi';

          3. 數(shù)據(jù)類(lèi)型
          有序類(lèi)型(基本類(lèi)型)
          ? Integer
          ? Boolean
          ? Char
          實(shí)數(shù)類(lèi)型
          ? Double
          字符串類(lèi)型
          ? string
          用戶(hù)自定義類(lèi)型
          ? 子界類(lèi)型
          ? 數(shù)組類(lèi)型
          ? 記錄類(lèi)型
          ? 枚舉類(lèi)型
          ? 指針類(lèi)型
          ? 集合類(lèi)型
          ? 類(lèi)
          type
          ? Uppercase = 'A'..'Z';? //子界

          ? Temperatures = array[1..25] of Integer;? //數(shù)組

          ? 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. 語(yǔ)句方面
          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;

          三. 過(guò)程與函數(shù)
          procedure and function
          1. 函數(shù)的值傳遞和引用傳遞
          //值傳遞;? 定義返回的值類(lèi)型,使用與函數(shù)名相同的變量作返回
          function Double01 (Value: Integer) : Integer;
          begin
          ? Double01 := Value * 2;
          end;

          //值傳遞; 使用Result作為返回值,這個(gè)是推薦使用的
          function Double02 (Value: Integer) : Integer; begin
          ? Result := Value * 2;
          end;

          //引用傳遞;定義一個(gè)函數(shù)
          procedure DoubleTheValue (var Value: Integer); begin
          ? Value := Value * 2;
          end;

          //調(diào)用上面的函數(shù),運(yùn)行結(jié)果X=20;
          var?
          ? X: Integer;
          begin
          ??X := 10;
          ? DoubleTheValue(X);
          end;

          2. 開(kāi)放數(shù)組參數(shù)
          一個(gè)開(kāi)放數(shù)組參數(shù)就是一個(gè)固定類(lèi)型開(kāi)放數(shù)組的元素。 也就是說(shuō),參數(shù)類(lèi)型已定義,但是數(shù)組中的元素個(gè)數(shù)是未知數(shù)。
          eg:
          //定義一個(gè)開(kāi)放數(shù)組參數(shù)的函數(shù)
          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;

          //在程序中調(diào)用這個(gè)開(kāi)放數(shù)組參數(shù)函數(shù)
          X := Sum([10, Y, 27*I]);
          //或者
          var
          ? List: array[1..10] of Integer;;
          ? X,?I:?Integer;
          begin
          ? //初始化數(shù)組
          ?? for I :=?Low(List) to High(List) do
          ?????? List[I] := I * 2;
          ? X := Sum(List);
          //或者使用Slice傳遞部分的數(shù)組過(guò)去,Slice函數(shù)的第二個(gè)參數(shù)是表示傳遞多少個(gè)數(shù)組過(guò)去
          X :=?Sum(Slice(List));



          ??


          ??

          posted on 2006-05-30 21:00 Wei.Lee 閱讀(268) 評(píng)論(0)  編輯  收藏

          只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 乌拉特后旗| 成武县| 长葛市| 自治县| 蒲江县| 玛纳斯县| 化州市| 彰化县| 新竹市| 晋江市| 江山市| 平潭县| 讷河市| 绥德县| 天津市| 乡城县| 南雄市| 洱源县| 淅川县| 桐城市| 嘉峪关市| 伽师县| 潼南县| 榆社县| 安西县| 武鸣县| 安泽县| 平塘县| 勃利县| 安乡县| 玛纳斯县| 惠东县| 宁南县| 长治市| 福清市| 凤阳县| 清流县| 平度市| 大丰市| 法库县| 永嘉县|