《Delphi程序设计及实验指导》电子教案 第2章

上传人:E**** 文档编号:89400682 上传时间:2019-05-24 格式:PPT 页数:49 大小:348.50KB
返回 下载 相关 举报
《Delphi程序设计及实验指导》电子教案 第2章_第1页
第1页 / 共49页
《Delphi程序设计及实验指导》电子教案 第2章_第2页
第2页 / 共49页
《Delphi程序设计及实验指导》电子教案 第2章_第3页
第3页 / 共49页
《Delphi程序设计及实验指导》电子教案 第2章_第4页
第4页 / 共49页
《Delphi程序设计及实验指导》电子教案 第2章_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《《Delphi程序设计及实验指导》电子教案 第2章》由会员分享,可在线阅读,更多相关《《Delphi程序设计及实验指导》电子教案 第2章(49页珍藏版)》请在金锄头文库上搜索。

1、Delphi 7 程序设计与实验指导,张景安 赵慧勤 张叶娥 傅文博 编 著,第二章 面向对象的Pascal,Delphi的编程语言即Object Pascal是在Pascal的基础上发展起来的,它继承了Pascal语言语法结构严谨和编译代码高效优化等优点。本章将介绍Object Pascal的数据类型、常量、变量、运算符、语句、函数和过程等。,2.1 数据类型,2.1.1 简单数据类型 简单类型包括有序类型和实型两种。 1有序类型 有序类型包括整型、字符型、布尔型、枚举型和子界型。 有序类型是一种线性的数据结构,每个值都有唯一的前驱(除第一个)和唯一的后继(除最后一个)。 (1) 整型 整型

2、的表示范围及存储格式见表2-1。,表2-1 整型的取值范围和存储格式,2.1 数据类型,2.1 数据类型,(2) 字符型 字符型的类型标识符是Char。字符型的数据只能是单个字符,不能是一串字符。例如ABC,x=? 等都不是字符型的数据,而是字符串。(3) 布尔型 通常用到的布尔类型是Boolean,一个Boolean类型的变量占一个字节,它只有两种取值:true和false。定义变量i,ch,t分别为整型、字符型、布尔型。 var i: Interge; ch: Char; t: Boolean;,2.1 数据类型,(4) 枚举类型 枚举类型是用一些标识符来表示一系列有序数,即由一些标识符组

3、成的一个线性表。定义枚举类型的语法是: type typeName=(val1,.,valn) (5) 子界类型 子界类型指的是某个有序类型(称为基类)的一个子集。定义子界类型的语法是: type typeName=LowHigh;,2.1 数据类型,2实型 表2-2给出了实型的表示范围和存储格式。,表2-2 实型的表示范围和存储格式,2.1 数据类型,2.1.2 字符串类型 字符串类型是用一对单引号括起来的一系列字符。字符串类型的表示范围和存储格式见表 2-3。,表2-3 字符串类型的表示范围和存储格式,2.1 数据类型,2.1.3 结构类型 结构数据类型是一种复合数据类型,由多个数据组成。

4、结构类型包括集合类型、数组类型、记录类型、文件类型等。 1集合类型 集合类型是一组相同类型元素的组合。定义集合类型: type Name=set of BaseType 2数组 数组是一些具有相同类型元素的有序组合。 (1) 静态数组 静态数组的声明格式为: type Name=arrayindexType1,.,indexTypen of BaseType;,2.1 数据类型,(2) 动态数组 动态数组没有固定的大小或长度。当赋值或使用某些函数(如SetLength)时,动态数组在内存中重新分配。 动态数组的声明格式为: type Name=array of BaseType; 定义动态数组

5、不需声明元素的个数。例如: type Dynamicarray=array of Real; var a1,a2:Dynamicarry; a1:=a2; /a1和a2指向相同的内存单元。,2.1 数据类型,3记录类型 记录类型(有的语言中被称为结构)是一个不同种类元素的集合,每个元素称为字段(field)。在声明时,指定记录的名字和每个字段。声明格式为: type RecordTypeName=record FieldList 1:type1; FieldList 2:type2; FieldList n:type n; end;,2.1 数据类型,4文件类型 文件类型是由相同类型的元素组成

6、的有序集合。文件类型的声明格式为: type fileTypeName = file of type 例:声明一个文件类型RecordList,以上面已定义的TdateRec为数据类型。 type RecordList = file of TdateRec; var Myrecordlist:RecordList;,2.1 数据类型,2.1.4 可变类型 有时要对一些数据类型变化的数据进行操作,并且在编译期间不能确定数据的类型,这时就可以使用可变类型的数据。 可变类型可以使用除记录、集合、静态数组、文件等结构类型、指针类型及长整型外的所有类型。可变类型有一个特殊的值Null,表示不明的或丢失的

7、数据。 可变类型变量的声明格式为: var v1:Variant;,2.2 常量与变量,2.2.1 标识符 标识符是描述Object Pascal程序各个部分的名称,这些部分包括标记、对象、过程、类型、单元、变量及程序。标识符的大小写无关(即它不区分大小写),并且遵循以下规则: 可为任意长度,但只有前255个字符有效。 标识符的第1个字符必须是字母或下划线。 跟在第1个字符后面的字符必须是字母、数字或下划线。 标识符中不允许出现空格。,2.2.2 常量 常量是一个在程序的运行过程中具有不变值的标识符,常量的声明格式如下: Const 常量名=表达式; 变量不能在一个常量声明中使用,但算术和逻辑

8、运算符可以,下面的函数可以在常量声明中使用。 Abs Low Round Chr Odd SizeOf Hi Ord Succ High Pred Swap Length Ptr Trunc Lo,2.2 常量与变量,2.2 常量与变量,2.2.3 变量 变量是程序代码中代表一个内存地址的标识符,而此地址中的内容在程序执行过程中可以改变。在变量使用之前必须先声明,变量声明格式如下: var 变量名表:类型名; 例: var s:string; i:integer; flag:Boolean;,2.3 表达式与运算符,2.3.1 表达式 表达式就是变量、常量、字符串、运算符及函数按照一定规则的组

9、合。例: Peoples Republic Of +China Gross/12 Max(x,y)-Min(x,y) 2.3.2 运算符 1赋值运算符(:=) 赋值运算符“:=”是先计算赋值运算符右边表达式的值,再将结果赋给左边的变量。,2.3 表达式与运算符,2算术运算符 表2-4 算术运算符,2.3 表达式与运算符,3关系运算符 关系运算符是对两个类型相容且可以比较大小的数据进行比较,结果为布尔类型,见表2-5。 表2-5 关系运算符,2.3 表达式与运算符,4逻辑运算符 逻辑运算符对逻辑类型的操作数进行运算,结果为布尔型,见表2-6。 表2-6 逻辑运算符,2.3 表达式与运算符,5集合

10、运算符 表2-7 集合运算符,2.3 表达式与运算符,6运算符的优先级,表2-8 Object Pascal各运算符的优先级,2.4 语句,2.4.1 注释 注释是添加在程序中用来说明代码功能的语句,它是非执行语句,对程序的执行部分不会产生任何影响,有助于提高程序的可读性。在Object Pascal中,有三种注释标记: 花括号“”注释:位于 “”中的内容为注释。 双斜杠“/”注释: “/”之后到本行结束的内容为注释。 圆括号及星号对“(*)”注释:(*)中的内容为注释。 例如以下语句都是注释: The first kind Of comment. /The second kind Of co

11、mment. (*The third kind Of comment.*),2.4 语句,2.4.2 简单语句和复合语句 简单语句是Object Pascal中最简单也最常用的语句,简单语句用分号分隔。赋值语句、函数、过程调用语句等是简单语句,例如下面的语句都是简单语句: r:=m+n; /两个值相加并赋值 ShowMessage(Im a student.); 复合语句是多个简单语句的组合,复合语句以begin表示开始,以end表示结束。例如: begin i:=1; j:=i+1; s:=abc; end;,2.4 语句,2.4.3 条件语句 条件语句是Object Pascal语言提供的

12、选择结构语句,主要有如下两种: 1if语句 if语句的表示形式: if then else ,2.4 语句,【例2-1】求两个数中的最大值。 if ab then max:=a /在变量a之后不能加“;” Else max:=b; 【例2-2】符号函数。 -1 (x0),用if语句的嵌套实现,如下: if x0 then y:=1 else y:=0;,2.4 语句,2case语句 case语句的表示形式: case of : : else end;,2.4 语句,【例2-3】编写一个程序,输入一个年份,判断是否是闰年。闰年的条件是满足下面条件之一: (1) 能被4整除,但不能被100整除的年

13、份; (2) 能被100整除,也能被400整除的年份。 对这两个条件都不符合的年份不是闰年。 程序功能:输入一个年份,显示其是否为闰年的信息。 界面设计:四个组件:两个文本框Label1和Lable2,分别显示提示和结果信息;一个Edit组件Edit1,用来输入要进行判断的年份;一个Button组件Button1,用来查询结果。如图2-1所示。,2.4 语句,图2-1 窗体界面 程序代码: procedure TForm1.Button1Click(Sender: TObject); var year:Integer; flag:Boolean;,2.4 语句,begin year:=Strt

14、oInt(Edit1.text); /将字符串转变为整型 if year mod 4 = 0 then begin if year mod 100 =0 then begin if year mod 400=0 then flag:=true else flag:=false; end else,flag:=true; end else flag:=false; if flag then Label2.Caption:=该年份是闰年 else Label2.Caption:= 该年份不是闰年; end;,2.4 语句,2.4.4 循环控制语句 循环语句可以使用户重复执行一条或多条语句,直到满足

15、某个条件时为止。 1for语句 for语句的一般形式为: for 循环变量:= to/downto do ; 【例2-4】求1100所有整数的累加和。 var s,i: Integer; s:=0; for i:=l to 100 do s:=s+i;,2.4 语句,2while语句 while语句的一般形式为: while do while后面的为逻辑表达式,先计算表达式的结果,如果表达式为true,while语句将重复执行循环体。如果表达式结果为false,则跳出循环,执行while之后的语句。,【例2-5】求1100所有整数的累加和。 var s,i: Integer; i:=1; s:

16、=0; while i=100 do begin s:=s+i; i:=i+1; end;,2.4 语句,3repeat语句 repeat语句的一般形式为: repeat until 当使用repeat语句时,先执行循环体,再判断表达式,只要until后面的表达式为true,则将再执行循环体。因此,repeat语句下面的循环体至少执行一次。,【例2-6】求1100所有整数的累加和。 var s,i: Integer; i:=1; s:=0; repeat s:=s+i; i:=i+1; until i100;,2.4 语句,4break语句 功能是强行退出循环,break语句只能用在循环体内。 【例2-7】利用break语句退出一个while循环。 var s: String; begin while true do /条件恒为真 begin ReadLn

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号