一、简介
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
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
function main():integer
begin
return fab(4);
end
![](http://www.cppblog.com/images/cppblog_com/lyt/Pascal1.jpg)
![](http://www.cppblog.com/images/cppblog_com/lyt/Pascal2.jpg)
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.0001) do
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.cppblog.com/images/cppblog_com/lyt/Pascal3.jpg)
源代码:http://www.cppblog.com/Files/Lyt/Pascal简化版.rar
posted on 2009-04-09 22:38
Lyt 阅读(1988)
评论(5) 编辑 收藏 引用 所属分类:
Pascal简化版