• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Lyt
            posts - 16,comments - 61,trackbacks - 0

            一、簡介

            1.不允許全局變量,全局區域只有函數定義

            2.只能在函數的var里進行變量聲明,不能初始化,不需變量聲明時var可以省略

            3.只支持整型integer、浮點型real、布爾型boolean

            4.對大小寫不敏感

            5.有且只有一個main函數,從調用main函數開始執行程序

            二、詞法

            1.關鍵字:function  procedure  integer  var  begin  end  if  then  else while  do  break  continue  integer  real  boolean  false  true

            2.標識符:字母或下劃線開頭,由字母、下劃線、數字構成

            3.字面量:整型字面量(如【12】【1】等)、浮點型字面量(如【1.0】【0.23】等)、布爾型字面量(包括【false】【true】)

            4.操作符:(  )  +  -  *  /  div  mod  <  <=  =  !=  >=  >  := not  and  or  xor

            5.注釋:/*注釋內容*/,不可嵌套

            三、語法

            1.函數定義

            (1)函數分兩種類型,function有返回值,procedure無返回值

            (2)無參數時參數表可以為空,但括號()不可以省略,參數與類型之間用冒號隔開,參數之間用分號隔開

            (3)變量聲明只出現在var中,無變量聲明時var可省略,變量與類型之間用冒號隔開,變量聲明語句之間用分號隔開,最后一個變量聲明語句分號可加可省略

            (4)函數定義不能嵌套,只能在全局區域

            (5)函數不必先聲明后使用

            function Fun1(Param1:integer;Param2:integer):boolean
            var i,j:integer; k:real;
            begin
              
            /*函數體*/
            end

            procedure Fun2()
            begin
              
            /*函數體*/
            end

            2.語句

            (1)不允許空語句,語句直接用分號隔開,最后一個語句分號可加可省略

            (2)語句塊:a.由begin和end包圍,可包圍0個或以上語句;b.可以嵌套;c.在其所在層次上被視為一個語句

            (3)表達式語句:單獨的表達式可以構成一個語句,如【1】【test()】

            (4)賦值語句:IdentityName:=Value 如【i:=1】(賦值操作是語句而非表達式)

            (5)if語句:if (boolean表達式) then StatementTrue else StatementFalse(else可省略)如【if (true) then return 1】

            (6)while語句:while (boolean表達式) do Statement 如【while (true) dosomething()】

            (7)dowhile語句:do Statements while (boolean表達式) 如【do dosomething() while (true)】

            (8)跳轉語句:break退出循環;continue進入下一次循環

            (9)return語句:【return】出現在procedure函數中,【return 表達式】出現在function函數中

            3.表達式

            (1)函數調用:FunctionName(arg1,arg2)

            (2)操作符:a.算術:+  -  *  /  div  mod;b.邏輯:not  and  or  xor;c.比較:<  <=  =  !=  >=  >

            (3)操作符優先級(由高到低):括號可以改變優先級

            正號+  負號-  not  =>  *  /  div  mod  =>  加號+  減號-  =>  比較 =>  邏輯

            四、示例代碼

            1.斐波納契數列

            function fab(i:integer):integer
            begin
              
            if (i=1) then return 1
              
            else if (i=2) then return 1
              
            else return fab(i-1)+fab(i-2);
            end

            function main():integer
            begin
              
            return fab(4);
            end

            2.求π

            function GetPI():real
            var sum,n,sign:real;
                pd:boolean;
            begin
              sum:
            =1.0;
              n:
            =1.0;
              sign:
            =1.0;
              
            while (1.0/n>0.0001do
              begin
                sign:
            =-sign;
                n:
            =n+2.0;
                sum:
            =sum+sign*1.0/n;
              end;
              
            return 4.0*sum;
            end

            function main():real
            begin
              
            return GetPI();
            end

            源代碼:http://www.shnenglu.com/Files/Lyt/Pascal簡化版.rar

            posted on 2009-04-09 22:38 Lyt 閱讀(2045) 評論(5)  編輯 收藏 引用 所屬分類: Pascal簡化版

            FeedBack:
            # re: Pascal簡化版
            2009-04-09 23:44 | 尹東斐
            不錯,如果結構設計的好的話,擴展可支持的類型,添加新的功能是很容易的。
            如果你有scope的概念的話,增加函數功能也很容易。

            加油。  回復  更多評論
              
            # re: Pascal簡化版[未登錄]
            2009-04-10 14:30 | 那誰
            mark

              回復  更多評論
              
            # re: Pascal簡化版
            2009-04-10 15:38 | 巫云
            請問,這是個編譯器嗎?還是解釋器?  回復  更多評論
              
            # re: Pascal簡化版
            2009-04-10 16:28 | 陳梓瀚(vczh)
            @巫云
            一個編譯到虛擬機的指令上的編譯器。  回復  更多評論
              
            # re: Pascal簡化版[未登錄]
            2009-04-11 16:41 | jans2002
            高手啊,像我們這種半路出來的程序員感覺這些東西都很玄。  回復  更多評論
              
            国产精品9999久久久久| 青青久久精品国产免费看| 奇米综合四色77777久久| 久久免费的精品国产V∧| 国产毛片久久久久久国产毛片| 亚洲欧美国产精品专区久久 | 亚洲欧洲精品成人久久奇米网| 一本久道久久综合狠狠躁AV| 久久久久久久久无码精品亚洲日韩| 久久久精品免费国产四虎| 国产精品久久久久久久久久影院| 成人妇女免费播放久久久| 18禁黄久久久AAA片| 91精品无码久久久久久五月天| 精品久久久无码21p发布| 99久久精品免费观看国产| 色欲久久久天天天综合网| 国产精品99久久久久久猫咪| 日韩乱码人妻无码中文字幕久久| 欧美精品一区二区久久| 99久久免费国产精品特黄| 久久久国产精品亚洲一区| 久久久青草青青亚洲国产免观 | 99久久无色码中文字幕人妻| 色天使久久综合网天天| 久久综合九色综合网站| 久久亚洲私人国产精品| 91性高湖久久久久| 精品久久久久久亚洲精品| 国内精品伊人久久久久影院对白| 亚洲精品国产综合久久一线| 日韩一区二区久久久久久 | 97久久久精品综合88久久| 久久93精品国产91久久综合| 日本久久久久久中文字幕| 69久久精品无码一区二区| 麻豆亚洲AV永久无码精品久久 | 婷婷综合久久中文字幕蜜桃三电影| 手机看片久久高清国产日韩| 亚洲欧美日韩精品久久亚洲区 | 久久精品成人免费看|