第2章 Object Pascal语言课件.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《第2章 Object Pascal语言课件.ppt》由会员分享,可在线阅读,更多相关《第2章 Object Pascal语言课件.ppt(95页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第2章 Object Pascal语言 Delphi是基于Object Pascal语言的Windows应用程序开发软件,Object Pascal语言是Pascal语言的扩展,它支持类的封装、继承、多态等面向对象的编程技术。Object Pascal语言具有丰富的数据类型和流程控制,它语法简单、易学,是学好Delphi的基础。2.1 语言成分 本节将介绍Pascal语言的程序组程,包括程序结构、关键字、标识符、注释等等。 1程序结构 下面是Object Pascal语言的程序结构(以控制台应用程序为例),它包括程序名称、说明部分(包括函数、过程、类型、变量、常量的说明或定义)和程序体。 pr
2、ogram 程序名;程序名; 单元引用; 常量说明; 类型定义; 变量定义; 过程与函数的定义; begin 语句1; 语句n; end. 说明: (1)程序首部以关键字program开始,其后是程序名称,程序名称是Pascal标识符。 (2)说明部分说明了本程序使用到哪些基本的单元,还包括常量的说明、类型的定义、变量的定义,函数与过程的定义等等。 (3)程序体是以begin开始的end结束的语句序列,每个语句最后都有一个分号,end之前的分号可以省略,程序最后以点号为结束标志。 2关键字和标识符 关键字(Key Word)又叫做保留字(Reserved Word)是系统事先定义好了的有特殊含
3、义并规定不得重新定义的词汇。Object Pascal定义了65个关键字。参见表2-1。表2-1 Object Pascal关键字 说明:除了上面这些保留字外,private、public、protected、automated在定义对象类型的时候也作关键字使用,而在其它地方这几个词汇作为指令符。 标识符是用来表示变量、常量、类型、函数、过程、对象等名称的符号,Pascal标识符分为标准标识符和自定义标识符。 所谓标准标识符,就是系统预先分配给一些标准函数、过程、类型以及标准文件使用的符号。例如: (1)标准常量:如false、true等。 (2)标准类型:如integer、boolean、r
4、eal等。 (3)标准函数:如sin、cos、abs等。 (4)标准过程:如get、put等。 (5)标准文件:如input、output等。 所谓自定义标识符,就是程序员根据程序需要为自己定义的常量、变量、函数、过程以及其它一些名称。Object Pascal规定标识符应该遵循如下命名规则: (1)标识符由大小写英文字母、阿拉伯数字、下划线构成,长度不超过255。 (2)必须以英文字母或者下划线开始。 (3)不得与关键字同名。 (4)最好不要与标准标识符同名,以免混淆。 说明: (1)标识符最好做到见名知义,例如用age表示年龄、stu_name表示学生姓名等等。 (2)长度不要太长,容易出
5、错,例如studentname可以写成stu_name等。 (3)pascal标识符不分大小写。 3分隔符和注释 分隔符用于分隔两个语法单位,Object Pascal语言的分隔符分为两种: (1)分号:用于分隔语句。 (2)逗号:用于分隔数据。 注释,是程序中用于解释或者说明的部分,在程序运行中注释不被执行。程序注释的作用有两个: (1)调试程序的作用:在调试程序的过程中,如果发现某些语句不需要或者有错误,用户不要急于删除这些语句,可以将这些语句加上注释,等到调试通过再来处理这些语句。这样可以避免误删。 (2)注释作用:对于那些难理解的语句,可以适当加一些注释语句,这样可以增强程序的可读性。
6、 Pascal语言提供两种注释: (1)单行注释:注释号“/”之后的内容就是注释。 (2)多行注释:注释号“”和“”之间就是注释,也可以用“(*”和“*)”来注释多行。2.2 数据类型 描述客观事物的数字、字符以及所有能够输入到计算机中并能被计算机接受的各种符号的集合统称为数据(data)。数据是计算机程序处理的对象,数据的一个重要特征就是这个数据属于什么类型。数据类型不仅规定了该类型的数据的表示形式、取值范围,还规定了这种数据类型所能参与的各种运算。 Object Pascal继承了Pascal数据类型丰富的特点,提供了丰富的数据类型,参见表2-2。 说明: (1)整型、实型、字符型、字符串
7、型、布尔型这5个类型可以直接使用,称之为标准类型,而枚举、子界等共12个其它类型需要先定义再使用。 (2)整型、字符型、布尔型、枚举型和子界型称之为顺序类型。关于顺序类型,将在后面详细介绍。 2.2.1 数值型数据 Object Pascal数值型数据类型又分为整型和实型。 1整型 整型的数据类型有正整型、零、负整型,含义与数学中的含义相同。整型数据类型是顺序类型。例如,1的前导是0,1的后继是2。 2实型 实型的数据有整数部分和小数部分,含义和数学中一样。实型数(简称实数)不是顺序类型。实数有两种表示方法,小数表示方法和科学计数表示方法。例如,12.3450就是小数表示形式,而1.35700
8、00E+2就是科学计数表示形式。E之间的数字称为尾数,表示精度,E之后的数表示阶码,表示10的次方数,阶码必须是整数。 下面都是合法的实数: 1.0 123.0 0.0 -0.0 0.8 1E-3 1.6E-7 3.5E4 下面的实数表示方法有错误: 12. .234 E6 2E0.6 12 说明: (1)实数的小数点表示方法规定,小数点两边都有数字。 (2)科学计数表示方法规定,E的前后都必须有数字,之后的数为整数。 实型数如表2-4所示。 2.2.2 字符型数据 Object Pascal字符型数据类型又分为字符型和字符串型。 1字符型 字符型(char)也是顺序类型,表示单一的字符,如A
9、,a, (不是),#,*等等。在计算机内存里字符以它的ASCII码的形式保存。因此字符可以用单引号的形式表示,还可以用#加ASCII码的形式表示,如#65表示A,而#97表示a。#常用来表示一些不显示的字符,如#13表示回车,#8表示BackSpace,#32表示空格,#0表示空字符,#27表示ESC等等。 注意:两个单引号不表示空字符。 除了char外,还有一种字符型widechar,表示一个16位的Unicode字符。 2字符串类型 由多个字符组件的字符序列就是字符串。例如abc就是一个字符串。Object Pascal包含4种类型的字符串。如表2-5所示。 2.2.3 布尔型数据 布尔型
10、数据用于逻辑计算,表示事件的真假,它只有两个值真(true)和假(false)。它是顺序类型,false的序号是0,true的序号是1。false的后继是true,true的前导是false。 2.3 常量和变量 有两种数据,一种是在程序运行的过程中值保持不变,称之为常量,常量有两种,一种是符号常量,一种是数值常量。还有一种数据就是在程序运行过程中值可以改变的,这种数据称之为变量。 2.3.1 常量 常量(constant)分为直接常量和符号常量两种。 1直接常量 直接常量就是在程序中直接引用的常数,如整型的常数、实型的常数、布尔型的常数,字符型常数、字符串型常数等等。 (1)整型常数:如10
11、0,0,-123等等。 (2)实型常数:如1.2,0.0,-0.0,1E6,2.8E-4等等。 (3)字符型常数:如#8,#27,#13,a等等。 (4)字符串常数:如asd,1+2等等。 (5)布尔型常数:如true和false。 2符号常量 以标识符形式出现的常量。如果在程序中某个常数经常出现,就可以定义一个标识符来代替这些常数,这个标识符就是符号常量。定义符号常量使用常量定义语句,语法格式如下: const :=; :=;const :=; :=; 说明: (1)const是Object Pascal标识符,表示常量定义段的开始。 (2)常量名是合法的Object Pascal标识符。
12、(3)表达式可以是直接常量或者是由已经定义过的符号常量组成的表达式。 (4)可以在定义常量的时候,定义常量的类型。 【例2-1】请看下面的常量定义。 const pi=3.1415926; /常量定义 alph=pi/3; /pi此前已经定义过,可以直接使用 pi=3.1416; /出错,pi不可以重新定义 enterchar:char=#13; /定义常量并定义类型 pi2:real=3.1416; xingming:string8=zhangsan; 建议在常量命名的时候,尽量做到见名知义。这样可以提高程序的可读性,使程序更容易懂,更容易修改。 2.3.2 变量 变量(variable)是
13、指在程序执行过程中其值可以改变的量,变量其实就是某个内存地址的标识符。 变量有3个特征。 (1)变量名:变量名就是变量的标识符,实际上就是所代表的内存单元的符号地址。 (2)类型:变量的类型决定了这个数据的表示数的范围,占据的内存单元的多少,可以进行哪些操作运算。 (3)变量的值:变量的值就是所代表的内存单元中存放的数据的值。 变量的定义,在Object Pascal中变量要先定义,才能使用。变量的定义格式为: var :; :; :; 当多个变量具有相同的类型的时候,可以使用比较紧凑的格式: var ,:; 说明: (1)var是关键字,表示变量定义段的开始。 (2)变量名是合法的Objec
14、t Pascal标识符。 (3)类型名是Object Pascal的标准类型或者是其它Object Pasal数据类型。 (4)同一作用范围的变量名不能同名。 【例2-2】请看下面的变量定义。 type month=1.12; /定义类型 var x,y,z:real; /3个变量之间用逗号隔开 i,j,k:integer; /定义整型 ch:char; /字符型变量 m1,m2:month; /month类型已经定义 days:array1.12of integer; /数组类型 变量定义以后就可以在程序种使用了,使用包括给变量赋值,在表达式中使用变量等等。变量定义之后最好要给变量赋一个初始
15、值,因为Object Pascal编译器不会自动对变量初始化,如果不初始化变量,变量的值将是一个随机的值,可能会对程序运行造成影响,甚至出错。2.4 运算符和表达式 运算是程序加工数据的过程,描述程序不同运算的符号称为运算符,参与运算的数据称之为操作数。 表达式是表示某个求值规则的运算公式,它包含运算符、操作数、函数、括号等等。最简单的表达式是常量、变量或者函数。表达式是可以计算出唯一的值的,表达式的类型由表达式的值决定,而表达式的值取决于运算符。为此,Object Pascal提供了丰富的运算符,它包括算术运算符、位运算符、字符串运算符、关系运算符、逻辑运算符等等。 2.4.1 算术运算符
16、算术运算符有+、*、/、div、mod。其中+、*、/可以完成加、减、乘、除四则运算。而div和mod分别用于求整除的商和余数,div和mod运算符要求操作数必须是整型数。 【例2-3】要请看下面算术表达式的值。 7 mod -2; /值为1 -7 mod 2; /值为-1 -7 mod 2 /值为-1 7 div 2; /值为-3 -7 div -2; /值为3 -7 div 2; /值为-3 假设a,b,m,n都是整数,且b不为0。如果m是a整除以b的商,n是a整除以b的余数,则有表达式: a=m*b+n恒成立。 【例2-4】假设今天星期w,w=0表示星期天、w=1表示星期一等等,求明天是
17、星期几,昨天又是星期几? 经过分析,明天星期几应表示为: w:=(w+1) mod 7; 昨天星期几表示为: w:=(w-1+7) mod 7; 说明:w在06之间,故(w+1) mod 7也在06之间。当w的值在05之间的时候(w+1) mod 7就是w+1的值,当w=6(表示星期六)时,其下一个序号应该为w=0(表示星期天),而w=6时(w+1) mod 7的值也刚好为0。综合两种情况(w+1) mod 7表示明天。同样的道理(w-1+7) mod 7可以表示昨天星期数。 2.4.2 位运算符 位运算符对操作数进行二进制的位运算,位运算有and(与)、or(或)、not(非)、xor(异或
18、)、shl(左移)、shr(右移)。位运算的对象是整数。位运算的真值表如表2-6所示。 【例2-5】请看下面的位运算结果。 not 6的结果为-7,因为not 00000110结果为11111001(表示-7) 8 and 7的结果为0,因为000001000and 00000111的值为00000000(表示0) 6 or 3的结果是7,因为00000110 or 00000011的值为00000111(表示7) 6 xor 3的结果是5,因为00000110 xor 00000011的值是00000101(表示5) 9 shl 1的结果是18,相当于9乘以2,因为00001001移动后为0
19、0010010(表示18) 27 shr 2的结果是6,相当于27 div 2。 2.4.3 字符串运算符 字符串运算符用于将多个字符串或者字符连接起来。运算符为“+”,运算格式为: | + | 当多个字符串连接起来的时候,后面一个字符串直接添加到前面一个字符串的后面,字符串的长度变长。例如: 1+2+=3 /连接后变成1+2=3 聪明的程序员使用+Delphi! /连接后变成聪明的程序员使用Delphi! 2.4.4 关系运算符 关系运算符用于数值型、布尔型、字符型、字符串型数据的比较,运算结果是布尔型,关系运算符有:=、=、=、in。字符比较依据是字符ASCII码的大小、字符串的比较是从左
20、到右进行的。 例如: 2.03.0 /值为false A=2 /值为false 33.5 /值为true abac /值为false,从左到右比较,前一个字符相同,故比较后面的b和c。 1 in 2,3 /值为false,in用于判断一个元素是否在一个集合中 2.4.5 逻辑运算符 逻辑运算符又成为布尔运算符,用于对布尔类型的数据进行运算。主要有not(非)、and(与)、or(或)、xor(异或)。 逻辑运算的真值表如表2-7所示。 布尔运算具有短路计算功能,即从左往右计算,如果表达式的值已经确定,则立即终止计算,不再继续计算其它表达式的值。例如: var a:boolean; false
21、and a; /值为false,不会计算a的值 true or a; /值为true,不会计算a的值 2.4.6 运算符的优先级 运算符是有优先级的,优先级用于决定表达式中的运算的先后次序,优先级高的先运算,优先级低的后运算,同一优先级的按照从左到右运算的顺序运算。各种运算符按照从高到低的优先级顺序列出如下: (1)括号() (2)函数 (3)not、+、-(取正、负符号) (4)乘法类:*、/、div、mod、and、shl、shr (5)加法类:+、or、xor (6)=、=、=、in 建议在复杂的表达式中人为地加上括号以便提高表达式的可读性。2.5 常用函数与过程 Delphi提供了丰富
22、的程序库,其中包含了大量的标准函数和过程。这些函数和过程都是在SysUtils单元中定义的,而SysUtils单元会自动被其它程序单元引用,因此用户无需在uses语句之后引用该单元。 掌握这些标准函数将大大降低编程的复杂度,因此本节介绍比较多的标准函数。 2.5.1 数学运算函数和过程 数学函数用于各种数学运算,主要有如下一些数学函数。 (1)绝对值函数 函数格式为: function Abs(X); 说明:返回参数的绝对值。 (2)平方函数 函数格式为: function Sqr(X: Extended): Extended; function Sqr(X: Integer): Intege
23、r; 说明:两种重载形式,一般使用第一种,参数为实型表达式。返回参数的平方即x*x。 (3)平方根函数 函数格式为: function Sqrt(X: Extended): Extended; 说明:返回非负数x的平方根。 (4)三角函数 正弦函数的格式是: function Sin(X: Extended): Extended; 余弦函数的格式是: function Cos(X: Extended): Extended; 反正切函数的定义: function ArcTan(X: Extended): Extended; 说明: 正弦、余弦函数的参数是弧度,利用正弦、余弦可以计算出正切、余切。
24、 ArcTan返回正切值为x的角度(单位是弧度)。 利用ArcTan以及数学关系可以求出其它反正弦、反余弦函数。 下面的公式成立: tan(x)=sin(x)/cos(x) ctan(x)=cos(x)/sin(x) arcsin(x)=arctan(x/sqrt(1-sqr(x) arccos(x)=arctan(sqrt(1-sqr(x)/x) arcctan(x)=/2-arctan(x) (5)取整函数 取整函数分为四舍五入取整和返回最大的不大于该数的整数的取整,四舍五入取整函数格式为: function Round(X: Extended): Int64; 说明:对x四舍五入取整。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第2章 Object Pascal语言课件 Pascal 语言 课件
![提示](https://www.deliwenku.com/images/bang_tan.gif)
限制150内