收藏 分销(赏)

Delphi教程.ppt

上传人:二*** 文档编号:8006198 上传时间:2025-01-30 格式:PPT 页数:484 大小:1.35MB
下载 相关 举报
Delphi教程.ppt_第1页
第1页 / 共484页
亲,该文档总共484页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,.,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,二级,三级,四级,五级,*,Delphi,教程,清华大学出版社,1,.,课程介绍,Delphi,是著名的,Borland,公司开发的可视化软件开发环境,自,1995,年问世以来,带来了程序设计中的一场重大变化。,Delphi,作为第四代编程语言,具有简单、高效和功能强大等特点,这些特点使得它为广大程序开发者所青睐。,2,.,第,1,章,Delphi,基础知识,1

2、.1 Delphi,简介,Delphi,作为一种可视化的编程环境,经历了,7,代产品的发展历程,:,Borland,公司在,1995,年推出了基于,Windows,平台的,Delphi 1,。,Delphi 2,新增加的主要功能是对,32,位编程的支持。还增加了如数据模块等多种高效的数据重用功能。,3,.,Delphi 3,对其组件库进行增强,完全支持,ActiveX,组件及其创建。,Delphi 4,提供了,Object Pascal,语言的扩展,但系统稳定性较差。,1999,年推出,Delphi 5,增强了数据库的功能,2001,年,6,月推出,Delphi 6,,增加了大量的新组件,使组

3、件数目达,350,多个,以满足网络开发的需要。,2002,年,8,月推出,Delphi 7,,在集成开发环境,IDE,、,Web,、数据库、编译器、模型生成支持及组件库等很多方面进行了改进,4,.,1.2 Delphi7 IDE,1.2.1,认识集成开发环境,Delphi 7,的,IDE,主要包括,7,个部分:主窗口、组件面板、工具栏、窗体设计器、代码编辑器、对象观察器和代码浏览器。,图,1-1 Delphi 7,的,IDE,5,.,1.,主窗口,主要包括:,菜单栏,、,工具栏,、,标题栏和组件面板,Delphi7,的主菜单包括,11,个下拉菜单,注意:工具栏上的按钮都提供了描述该按钮功能的,

4、tooltip,,除了组件面板,IDE,有,6,个独立的工具栏,IDE,工具栏的定制功能并不仅限于配置需要显示的按钮,还可以调整工具栏、组件面板和菜单栏在主窗口中的位置。,图,1-2 Delphi 7,的主窗图口,6,.,Delphi7,组件板包含了,350,多个组件,是,Delphi,可视化编程的核心部件,它由,27,个选项卡组成,组件面板如图,1-4,所示,包含了,IDE,中安装的所有的,VCL,组件和,ActiveX,组件,将组件板上的组件添加到窗体上的三种方法:,单击组件板上的所需组件的按钮,然后在窗体适当位置拖动鼠标画出组件,即可将组件添加到窗体的指定位置上,图,1-4 Delphi

5、 7,的组件面板,7,.,双击组件板上的所需组件的按钮,即可将组件添加到窗体的中心位置,按下,键不放,单击组件板上的所需组件的按钮,所选组件出现蓝色边框,同时对象选择按钮将弹起,组件板中的组件分为,可视组件,与,非可视组件,2.,窗体设计器,在创建新的项目时,窗体设计器是一个空白的窗口。可以用鼠标调整组件在窗体设计器上的位置和大小,还可以用对象观察器和代码编辑器来控制组件的外观和行为。,8,.,3.,对象观察器,利用对象观察器,可以修改窗体或组件的属性,或者使它们能够响应不同的事件。,属性,(Property),是,一些数据,,如高度、颜色、字体等,它们决定了组件在屏幕上的外观。,事件,(Ev

6、ent),则是一种消,息处理机制,,它能够捕捉某种情况的发生并做出反应,像鼠标单击和窗口打开就是两种典型的事件。,对象观察器类包括,Properties,选项卡和,Events,选项卡,9,.,下图两个对象观察器,左边一个按种类排序,右边一个按名字排序。,注意:帮助系统是和对象观察器紧密结合在一起的,想了解某个属性或事件的帮助信息,只要在该属性或事件上按下,F1,键,图,1-5,按种类或名称查看,Object Inspector,10,.,4.,代码编辑器,代码编辑器是输入代码来指定应用程序行为的地方,也是,Delphi,根据应用程序中的组件自动生成代码的地方。当向应用程序中加入一个窗体时,,

7、Delphi,会自动创建一个新的单元,并添加到代码编辑器顶部的标签中。,5.,代码浏览器,以一种树状视图方式显示列在代码编辑器中的单元文件。通过它,可以方便地在单元文件中漫游或在单元文件中加入新的元素或者把已有的文件改名。要记住,代码浏览器,和,代码编辑器,有一对一的关系。,11,.,6.,源代码生成器,当对窗体设计器中可视化组件进行操作时,Delphi IDE,自动生成,Object Pascal,源代码。,当用,【File】|【New】|【Application】,菜单命令创建一个新的项目时,将看到屏幕上出现一个空白的窗体设计器,同时,代码编辑器中会自动出现一些代码,如下所示:,unit,

8、Unit1;,interface,uses,Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs;,12,.,type,TForm1=,class,(TForm),private,Private declarations,public,Public declarations,end;,var,Form1:TForm1;,implementation,$R*.dfm,end.,13,.,从上述源代码清单中可以看出,窗体对象是从,TForm,继承下来的。,下面这一行非常重要:,$R*.dfm,Pasca

9、l,语言中的,$R,指令用于加载一个外部资源文件。*,.dfm,文件中包含在窗体设计器中创建的表单的二进制代码。其中的“*”表示与当前单元文件同名的文件。,项目文件的扩展名是,.dpr,可以选择主菜单下的,【Project】|【View Source】,命令把项目源文件调入代码编辑器。,14,.,如下用程序示例的项目文件:,program,Project1;,uses,Forms,Unit1,in,Unit1.pas Form1;,$R*.res,begin,Application.Initialize;,Application.CreateForm(TForm1,Form1);,Applic

10、ation.Run;,end.,当添加表单和单元时将出现在,uses,子句中,15,.,1.2.2,基于组件的编程思想,.,早期,DOS,操作系统和,C,语言主导的时代,“数据结构,+,算法”成为构建软件惟一方式,.C+,语言和面向对象技术,.20,世纪,90,年代中期流行一种崭新的程序设计概念,:,软件可以由可互换的组件构成,组件是一种通过公开的,属性,、,方法,、,事件,,是可以重复使用的一种经过编译的二进制文件,其文件名可以是,.OCX,或者是,.dll,,如命令按钮、复选框、单选框、滚动条等都是常见的组件。,16,.,1.2.3 Delphi 7,的特点,Delphi,最显著的特点就是

11、高效性和稳定性,主要体现在以下,4,个方面:,可视化开发环境的性能。,编译器的速度和已编译代码的效率。,编程语言的功能及其复杂性。,丰富的,VCL,1.,可视化开发环境,可视化开发环境通常可分为,3,个部分:,编辑器,、,调试窗口,和,窗体设计器,。,17,.,2.,编译器的速度和已编译代码的效率,Pascal,编译器最著名特点就是速度快,而,Delphi,正是建立在这种编译器基础之上的。增加了链接和各种缓存策略,尤其是在,Visual C+,和,C+Builder,中。,3.,编程语言的功能及其复杂性,汇编是一种最有力的语言,即便是用汇编开发最简单的应用程序,难度也非常大,还可能一无所获。,

12、4.,丰富的,VCL,VCL,是,Delphi7,最重要的组成部分,包含不同种类的组件。,18,.,1.2.4,帮助的使用,(,1,)当遇到问题时,可以尝试按下,【F1】,键,一般情况下,Delphi,都会准确地定位。,(,2,)如果需要浏览系统的一些帮助内容,比如说对象,Pascal,语言,可以通过菜单,【Help】|【Delphi Help】,命令打开,【,帮助主题:,Delphi Help】,对话框,在目录标签中展开相关条目,进行系统学习。,3,)当使用,Windows API,函数时,通过,【Help】|【Delphi Help】,打开的,【,帮助主题:,Delphi Help】,对话

13、框中,在,【,索引,】,选项卡中可能查不到有关的帮助信息,有两种解决办法:,19,.,一种办法是在代码编辑器中输入,Windows API,函数的名称,然后将光标定位到该名称中,接着按下,【F1】,键。,另一种办法是通过,【Help】|【Windows SDK】,打开帮助文件,Win32.hlp,,在,【,索引,】,选项卡中查找。,(,4,)帮助文件打开时,要浏览相关内容,可以按下工具栏中的,【】,或,【】,按钮,通常这样是在同一个主题中浏览。通过一些,See Also,热链接,也可以查看相关的帮助内容。,(,5,)在组件栏上右击,通过快捷菜单的,Help,命令,可以查看有关组件的帮助内容。,

14、20,.,(,6,)在,Delphi,集成开发环境中,通过,【Help】|【Customize】,命令可以打开,【Open Help】,窗口,在该窗口中可以对帮助文件进行管理,其中包括,帮助内容,、,帮助索引,、,链接位置,和,帮助工程文件,等的管理。,1.3,简单,Delphi,程序设计,Delphi 7,编写应用程序包括,新建应用程序,、,设置窗体属性,、,添加组件,、,设置组件属性,、,添加事件,、,编写事件响应代码,、,编译运行,等,1.,新建应用程序,21,.,启动,Delphi 7,,选择,【File】|【New】|【Application】,菜单,新建一个应用程序。,2.,设置窗

15、体属性,单击,【Object Inspector】,,在对象观察器中打开,【Properties】,选项卡,单击,Caption,属性右侧,输入窗体的新标题“窗口”。,3.,向窗体中添加组件,单击,Standard,选项卡上的,Button,组件,将鼠标指向窗体中的任意位置(标题栏除外),单击鼠标,即可把,Button1,组件放入窗体中。或者直接双击组件面板上的,Button,组件,也可以在窗体中添加一个,Button1,组件。,22,.,4.,设置组件属性,选中组件,单击,Object Inspector,的标题栏以激活对象观察器,并选择,Properties,选项卡。在对象观察器中单击要设

16、置的属性,进行属性设置。,5.,添加事件,选中要添加事件的组件,激活对象观察器,并选择,Event,选项卡,在对象观察器中单击要添加的事件,在其右侧输入事件的响应函数名称,然后回车即可。,6.,编写事件响应代码,23,.,选定要编写事件响应代码的组件,打开,Event,选项卡,双击要编写响应代码的事件右侧的空白部分,进入代码编辑窗口。,procedure,TForm1.Button1Click(Sender:TObject);,/,单击放大按钮,窗口将放大,begin,form1.Height:=form1.Height+10;,/,窗口高度,10,form1.Width:=form1.Wid

17、th+10;,/,窗口宽度,10,end;,procedure TForm1.Button2Click(Sender:TObject);,/,单击缩小按钮,窗口将缩小,Begin,form1.Height:=form1.Height-10;,/,窗口高度减,10,24,.,form1.Width:=form1.Width-10;,/,窗口宽度减,10,end;,procedure,TForm1.Button3Click(Sender:TObject);,/,关闭窗口,begin,close;,/,退出,end;,7.,编译运行程序,图,1-6,例程运行界面,25,.,1.4 Delphi,上机

18、步骤,1.,启动程序,2.,添加组件,在窗体设计器中添加如图,1-7,所示的各组件。,3.,设置组件属性,4.,编写代码,组件属性设置完成后,编写如下代码:,图,1-7,窗体布局图,26,.,procedure,TForm1.Edit1Change(Sender:TObject);,/,编辑框,1,中的内容改变时的事件,var,stringlength:integer;,/,定义整型变量,记录编辑框,1,中字符的个数,begin,stringlength:=edit1.GetTextLen;,/,得到编辑框,1,中字符个数,edit2.Text:=inttostr(stringlength);

19、,/,编辑框,2,显示编辑框,1,中字符个数,end;,procedure,TForm1.Button1Click(Sender:TObject);,/,关闭窗口,begin,close;,end;,27,.,5.,保存工程,保存工程分为,保存单元文件,和,保存项目文件,两步。,第一步是保存单元文件,单击工具栏上的,Save,按钮,将打开,Save Unit1 As,窗口,默认的单元文件名是“,Unit1.pas”,,以“,.pas”,为扩展名,单元文件名根据需要可以另取。,第二步是保存项目文件,单击工具栏上,Save Project1 As,按钮,默认的项目文件名是“,Project1.dp

20、r”,,工程文件名根据需要可以另取以“,.dpr”,为扩展名,28,.,6.,运行工程,保存工程结束后即可运行工程,小结,在本章中,主要介绍了,Delphi,的产生和发展,,Delphi,的特点,使用,Delphi,进行程序设计的一些基础知识。本章的重点是,Delphi,的开发环境和开发方法,通过实例介绍了,Delphi,的程序设计和上机操作的一般步骤。,图,1-10,工程运行界面图,29,.,第,2,章,Delphi,语法基础,2.1,保留字与标识符,2.1.1,标识符,标识符是,Object Pascal,语言中各种成分的名称,这些成分包括变量(,Var,)、常量(,Const,)、类型(

21、,Type,)、过程(,Procedure,)、函数(,Function,)、方法(,Method,)、单元(,Unit,)等。,30,.,标识符可以分为三类:,标准标识符,、,自定义标识符,和,限定标识符,。,1,标准标识符,(1),标准常量,如,False,、,Maxint,、,True,等;,(2),标准类型,如,Boolean,、,Char,、,Real,等;,(3),标准函数,如,Sin,、,Cos,、,Abs,、,Arctan,等;,(4),标准过程,如,Dispose,、,Get,、,New,、,Pack,、,Put,等;,(5),标准文件,如,Input,、,Output,等。

22、,31,.,2,自定义标识符,程序员根据程序设计的需要,自己定义的常量、变量、类型、函数、过程等所取的名字。自定义标识符可以由任意长的一个不带空格的字符串组成,包括字母,A,Z,、,a,z,、数字,0,9,和下划线“,_”,等。,定义标识符需要遵循以下规则:,(1),标识符不区分大小写;,(2),标识符只能以字母或下划线开头,不能以数字开头;,(3),标识符可任意长度,但只有前,225,个字符有效;,(4),标识符中间不允许有空格;,32,.,(5),不允许使用,Object Pascal,语言的保留字作为标识符。,3,限定标识符,在,Delphi,程序中可引用多个单元,而各个单元中全局变量、

23、函数、过程等可能会同名,在引用时需用限定标识符来区分它们:,Var,Y:real;,Y:=System.cos(pi);,其中,System,称为限定符,而,System.cos,称为限定标识符。,33,.,2.1.2,保留字,保留字由系统规定具有特定意义,不能被重新定义或作他用,定义了,65,个保留字。,注意:,1,单词,at,和,on,具有特殊含义,不要与它们同名。,2,保留字和,Object Pascal,一样不区分大小写。,3,Delphi,集成开发环境的代码编辑器中,黑体显示保留字和指令字,定义时不要与这些黑体字一样。,34,.,Object Pascal,的保留字,and,arra

24、y,as,asm,begin,case,class,const,constructor,destructor,dispinterface,div,do,downto,else,end,except,exports,file,finalization,finally,for,function,goto,if,implementation,in,inherited,initialization,inline,interface,is,label,library,mod,nil,not,object,of,or,out,packed,procedure,program,property,raise,

25、record,repeat,resourcestring,set,shl,shr,string,then,threadvar,to,try,type,unit,until,uses,var,while,with,xor,35,.,2.1.3,指令符,指令字只在特殊的程序位置、或当上下文关联时有意义的程序区段有自己特殊的意义,而在其他场合,用户可对其重新定义,即可将其定义为标识符,,Object Pascal,不会指示出错,当用户重新定义这些指令字后,在作用域内它们就失去了原来的意义了。,Object Pascal,中规定的指令符有,39,个,说明:指令符,private,、,protected

26、,、,public,、,published,和,automated,在定义对象类型时也作为保留字,而在其他场合则作为指令符。,36,.,2.1.4,注释,注释可增加程序的,可读性,和,可维护性,。,Object Pascal,语言中注释有三种形式:,1,组合符号“,”,与“,”,的成对使用表示它们之间的内容为注释部分。,2,组合符号“,(*”,与“*,)”,的成对使用表示它们之间的内容为注释部分。,3,符号“,/,”,的单个使用表示所在行的该符号之后的内容为注释。,37,.,注意:,1,注释符“,”,与“,”,、“,(*”,与“*,)”,在使用时不支持注释的嵌套,而且必须成对使用。,2,对于单

27、行和少量几行注释使用符号“,/,”,,对于大块注释使用“,”,和“,”,或“,(*”,和“*,)”,。,3,有时可利用注释在代码中形成一个醒目标志。,4,在注释符“,”,或“,(*”,后紧接着是一个美元符号“,$”,时,表示该句是一个编译器指令,它与普通的注释不同,通常用来对编译过程进行设置。,38,.,2.2,数据类型,描述客观事物的,数,、,字符,以及所有能输入到计算机中并被计算机程序加工处理的,符号,的集合称为数据。,数据类型可以分为,标准数据类型,及,高级数据类型,等,还可以通过数据类型声明语句在预定义数据类型的基础上定义新数据类型。,说明:,1,标准数据类型属于,Object Pas

28、cal,内部约定的数据类型,无需定义就可以直接使用。,39,.,2,高级数据类型体现了特殊的数据结构,在使用之前必须由用户自己定义。,3,数据类型中整型、字符型、布尔型、枚举型和子界型被称为,顺序类型,,其取值是一个有序集合,每一个可能取值都与顺序有关。,2.2.1,数值型数据,数值型数据可分为,整数类型,和,实数类型,。,1.,整数类型,整数类型是存储整数数据的类型,分为基本整形和一般整形。,40,.,基本整形:短整型、小整型、长整型、,64,位整型、字节型、字型、长字型,一般整形:整型、序数型,注意:尽量使用一般整型,Integer,和,Cardinal,,可以最大限度发挥,CPU,和操作

29、系统的性能。,2.,实数类型,实数类型是存储实数数据的类型,分为基本实型和一般实型。,基本实型:单精度实型、扩展型、双精度实型、货币型,一般实型:实型,41,.,注意:,Real,类型与,Double,类型完全等价。,Currency,类型至少有,4,位有效的小数位。,2.2.2,字符型数据,Object Pascal,中的字符型数据可以分为,字符型,和,字符串型,2,类,7,种。,1.,字符类型,Object Pascal,包括,3,种形式的字符型数据,类型,名称,字节数,取值范围,Ansi,字符型,AnsiChar,扩展,ANSI,字符集,宽字符型,WideChar,UniCode,字符集

30、,字符型,Char,(),扩展,ANSI,字符集,42,.,说明,:,(1),前,2,种为基本字符类型后一种为一般类型。,(2)Char,与,AnsiChar,完全等价,但,Char,常用。,2.,字符串类型,字符串类型是存储字符串数据的类型,,Object Pascal,包括了,4,种形式的字符串型数据,类型,名称,最大长度,所需内存空间,短字符串型,ShortString,255,个字符,2,256B,长字符串型,AnsiString,231,个字符,4,2GB,宽字符串型,WideString,230,个字符,4,2GB,字符串型,String,231,个字符,4,2GB,43,.,说明

31、,:,(,)AnsiString,类型的定义是动态分配的,内容由,AnsiChar,类型的字符组成,长度仅受可用内存空间的限制,以空字符,Nul,作为结尾。,(,)String,字符串类型,既可以是,ShortString,类型也可以是,AnsiString,类型,默认定义是,AnsiString,类型。,2.2.3,布尔型数据,布尔型数据用于关系运算和条件语句的逻辑运算,包括,4,种形式的布尔型数据。,44,.,说明,:,(1),后,3,种类型是为了兼容其他语言而设置的,编程时应尽量使用,Boolean,类型。,(2)Boolean,取值为,False,和,True,两个符号常量。,类型,名

32、称,字节数,取值,布尔型,Boolean,只能为,0,(,False,)或,1,(,True,),字节布尔型,ByteBool,0,(,False,)或非,0,(,True,),宽布尔型,WordBool,0,(,False,)或非,0,(,True,),长布尔型,LongBool,0,(,False,)或非,0,(,True,),45,.,2.3,常量与变量,2.3.1,常量,常量即在程序的执行过程中其值不能改变的量。,常量有两种,一种是常量值本身,也称为,直接常量,;另一种是要用声明定义的标识符表示的常量,也称为,声明常量,。声明常量又可以分为,符号常量,和,类型常量,。,1.,直接常量,

33、直接常量是指在程序中直接引用的常数,如整型常数、实型常数、字符型常数、字符串型常数和布尔型常数。,2.,声明常量,46,.,(1),符号常量,在程序中,某一个常数反复多次出现,可以定义一个标识符来代表该常数,这个标识符就是符号常量,其值在定义后不会改变。也称纯常量。定义符号常量使用常量说明语句,其语法格式为:,Const,=,;,=,;,其中,Const,是保留字,表示常量定义段开始。,47,.,注意:,保留字,Const,可单独一行也可与常量一行。,不能在程序中给常量另行赋值,否则将导致语法错误。,Delphi,由常量值判断常量名属于哪种类型。,(2),类型常量,类型常量用于保存,数组,、,

34、记录,、,过程,以及,指针,等类型的值,不能出现在常量表达式中。在默认的编译器状态下,类型常量的值可改变,但当在程序中加入编译命令,$j-,时,则类型常量的值在运行期就无法改变。,48,.,声明类型常量的语法规则为:,Const,:,=,;,其中类型是除,文件型,和,可变型,的所有类型,常量值可以是和类型相应的常量表达式。,2.3.2,变量,1.,变量的声明,变量在单元、函数或过程的声明部分进行声明,声明的位置决定了变量的作用域。声明包括两部分:,变量名,和它,所属的类型,,变量声明的语法格式为:,49,.,Var,:,;,:,;,当多个变量具有相同数据类型时,格式如下:,Var,,,,,:,

35、;,其中,,Var,是保留字,表示变量声明段的开始;同类型的,可超过一个,,间用“,”,分隔;,可以是基本数据类型或是由用户定义的高级数据类型;,50,.,2.,变量的使用,一旦声明了一个变量应及时对它进行初始化,最简单方法就是给变量赋值,在表达式中使用变量。,2.4,运算符与表达式,按照操作数数目的多少来分,运算符分为下面两类:,单目运算符,和,双目运算符,。单目运算符一般放在操作对象的前面,双目运算符都放在两个操作数之间。,表达式是表示某个求值规则的运算公式,由运算符和配对的圆括号将常量、变量、函数、对象等操作数以合理的形式组合而成。,51,.,2.4.1,算术运算符与算术表达式,1.,算

36、术运算符,算术运算符对浮点数和整数进行加、减、乘、除和取模运算,取正“,+”,和取负“,-”,是单目运算符,其他均为双目运算符。,说明:,(1)+,、,-,、*运算中,参加运算的数可以是整型和实型,结果自动向精度高的类型转化。,(2),参加除法运算“,/”,,结果都是实型的商。,(3),参加整数除法“,Div”,和求余运算“,Mod”,的数必须是整型,结果也是整型数,符号与被除数的符号相同,小数部分被舍去。,(4),在表达式,a/b,、,a Div b,和,a Mod b,中,如果,b,的值为,0,,将会触发一个错误。,52,.,2.,算术运算符的优先级,同级运算自左至右,如果含有括号,则先计

37、算括号内表达式的值。,3.,算术表达式,将数学式改写为算术表达式,考虑三个问题:一是语法,二是优先级,三是类型。,优先顺序,运算符,+,、,-,(取正、取负),*、,/,(法、除法),Div,、,Mod(,整除、求余,),+,、,(加法、减法),53,.,说明:,(1),数学式中省略的运算符和表示函数参数的括号必须添加上去,(2),必须注意优先级的处理,恰当利用标准函数,注意数据类型。,2.4.2,逻辑运算符与布尔表达式,逻辑运算符可分为,布尔运算符,、,位运算符,和,关系运算符,。,1.,布尔运算符,只能对两个布尔型操作数进行运算,结果仍为布尔型,,True,或,False,。,54,.,其

38、中,,NOT,是求“非”,为一元运算符;,AND,是求“与”,,OR,是求“或”,,XOR,是求“异或”,均为二元运算符。,2.,位运算符,运算符,操作举例,操作数类型,结果类型,功能说明,NOT,NOT x,integer,integer,即按二进制形式将每位求反,AND,a AND b,integer,integer,将两者相对应的位进行,AND,运算,OR,a OR b,integer,integer,将两者相对应的位进行,OR,运算,XOR,a XOR b,integer,integer,将两者相对应的位进行取,XOR,运算,两者不同时结果为,1,SHL,a SHL b,integer

39、,integer,将,a,的二进制值向左移动,b,位,左移一位相当于乘,2,SHR,a SHR b,integer,integer,将,a,的二进制向右移动,b,位,右移一位相当于除,2,55,.,注意:右移操作时原值的低位丢失,高位补,0,;左移操作时原值的高位丢失,低位补,0,。,3.,关系运算符,关系符,操作,操作数类型,结果类型,=,等于,简单类型,字符串或可变类型,类,类引用,指针,集合类型,Boolean,不等于,简单类型,字符串或可变类型,类,类引用,指针,集合类型,Boolean,大于,简单类型,字符串或可变类型,Boolean,=,大于等于,简单类型,字符串或可变类型,Boo

40、lean,56,.,4.,布尔表达式,布尔表达式由布尔运算符和布尔类型的操作数所组成,包括关系运算表达式和运算结果为布尔类型的函数,如,Odd(x),、,FileExists(x),、等。但位运算符的结果是整数类型,不能直接作为布尔操作数。,2.4.3,字符串运算符,连接运算符“,+”,主要用于连接两个或更多的字符串。最简单的字符串表达式是字符常量、字符串常量、字符变量、字符串变量或字符函数的引用。字符串表达式格式为:,57,.,+|,当两个字符串用连接运算符连接起来后,第二个字符串直接添加到第一个字符串的尾部,结果是包含两个源字符串全部内容的新字符串。如果要把多个字符串连接起来,每两个字符串

41、之间都要用“,+”,号分隔。,2.4.4,运算符的优先级,优先顺序,运算符,分类描述,1,(取地址),NOT,-,一元运算符,2,*,/,DIV,MOD,AND,SHL,SHR,乘除及类型强制转换运算符,3,+,OR,XOR,加减运算符,4,=,=,in,is,关系、集合成员及类型比较运算符,58,.,2.5,常用系统函数与过程,2.5.1,数值运算函数,Delphi,的数值运算函数包含了常用的数学函数(如三角函数、对数函数等)和适合计算机数据处理的其他函数(如求数组中的最大值、求三角形的斜边长等)。,2.5.2,字符处理函数,对字符的处理主要包括:大小写转换、比较先后顺序、合并、查找、截取、

42、插入、求长度以及类型转换等。,2.5.3,日期时间函数,调用日期时间函数可对日期和时间进行处理,59,.,2.5.4,顺序类型函数,1.,顺序类型,顺序类型指,整型,、,字符型,、,布尔型,、,枚举型,、,子界型,5,种数据类型,如下所述:,(1),整数的的序数是其自身;,(2),字符的序数是其,ASCII,码;,(3),布尔型数据:,False,序数为,0,,,True,为,1,;,(4),枚举型第一个数据序数为,0,,其余类推;,(5),子界型第一个数据序数为,1,,其余类推。,除第一个序数,每一个都有一个前趋值;除最后一个序数,每一个都有一个后继值。,60,.,2.,顺序函数,2.6,语

43、句,2.6.1,语句的基本概念,按执行时间可分为:,声明语句,和,可执行语句,。,顺序函数,引用形式,函数功能描述,序数函数,Ord(x),;,返回数据,x,的序数,前趋函数,Pred(x),;,返回数据,x,的前趋值。如果将,Pred,函数用于第一个数据,就可能产生一个编译时的错误,后继函数,Succ(x),;,返回数据,x,的后继值。如果将,Succ,函数用于最后一个数据,就可能产生一个编译时的错误,首序数函数,Low(x),;,返回顺序型数据,x,取值集合中的第一个值(序数最小)。它还可以返回数组的第一个元素,末序数函数,High(x),;,返回顺序型数据,x,取值集合中的最末一个值(序

44、数最大),它还可以返回数组的最末一个元素,61,.,声明语句包括,单元说明语句,、,类型说明语句,、,变量说明语句,、,过程说明语句,、,函数说明语句,和,程序区段标识语句,等。,可执行语句包括,赋值语句,、,运行控制语句,和,结构控制语句,等。,按语句的描述形式,可分为,简单语句,、,结构语句,和,复合语句,等。,简单语句只含有一个语句定义符或特殊标志;结构语句往往含有多于一个的语句动词;复合语句则是由,begin,和,end,括起来的若干个简单语句、结构语句和复合语句,允许复合语句多层嵌套,或为空,也就是在,begin,和,end,之间没有其他语句。,62,.,2.6.2,常见声明语句,1

45、.,标号声明语句,标号声明语句即用一个整型数来表示程序的某个执行语句,一行标号声明语句可以同时声明几个标号,其用法如下所示:,label,Aa,Ab;,var,I:integer;,begin,/,语句,if,(I=0),then goto,Aa;,/,语句,Aa:,begin,/,语句,end;,end;,63,.,2.,类型声明语句,在,Object Pascal,中,所有的变量必须是某种特定的数据类型,类型决定了它所能包含的数值和可进行的操作,用类型声明语句可以定义新的数据类型。例如:,Type,TmyDim:,Array,1.10,1.5,of,Double;,3.,过程声明语句,过程

46、可以被看成一段小程序,用来实现某种特定的目标,在完整的程序中它被当作一个语句来执行。在建立过程之前应先声明。,procedure,NumString(N:Integr;,Var,S:,string,);,64,.,4.,函数声明语句,函数与过程相似,主要区别在于函数必须有返回值,函数的声明参见下面的语句,其中,最后的,Real,表示函数的返回数据类型。,Function,Power(X:Real;Y:Integer):Real;,2.6.3,赋值语句和程序的顺序结构,1.,赋值语句,赋值语句的语法格式为:,:=,;,2.,类型兼容,类型兼容是指数据类型不完全相同的量之间能进行的运算和赋值操作。

47、,65,.,3.,利用赋值语句给对象属性赋值,由于属性总是归属于对象才有实际意义,所以引用属性时用符号“,.”,来连接表示其隶属关系。如组件,Editl,的字体的颜色属性表示为:,Editl.Font.Color,。,4.,顺序结构,顺序结构是最简单、最常用的结构。在该结构中,各操作块按照出现的先后顺序依次执行,不产生程序流程的其他转移。它是任何程序的主体结构,即使在选择结构或循环结构中,也常以顺序结构作为其子结构。通常由若干个赋值语句或其他简单语句构成。,66,.,2.6.4,条件语句和程序的选择结构,实现选择结构的是,IF,语句,和,Case,语句,,这两种语句又称条件语句,条件语句的功能

48、就是根据表达式的值有选择地执行一组语句。,1.if,语句,通过条件的布尔表达式值选择执行路径。,if,then,else,;,if,语句分为,简单条件语句,和,复合条件语句,。简单条件语句的,中不包含其他的条件语句。如果在,If,语句格式中的,或,本身又是一个,If,语句,则称为,If,语句的嵌套,嵌套的,If,语句又被称为复合条件语句。,67,.,2.Case,语句,Case,语句用来实现多分支选择结构。,Case,语句描述了多路择一的功能,它根据“选择器表达式”的值决定执行相应的语句。,Case,语句的语法格式为:,case,of,:,;,:,;,else,;,end;,说明:,的值必须是

49、顺序类型。,68,.,2.6.5,循环语句和程序的循环结构,从某处开始有规律地反复执行某一程序块的现象称为“循环”,完成这一功能的程序结构为“循环结构,”而其中重复执行的程序块称为“循环体”。循环结构语句有,3,种,它们分别是:,While,语句,、,Repeat,语句,以及,For,语句,。,1.While,语句,While,语句属于前测型循环结构。首先判断条件,根据条件决定是否执行循环,执行循环的最少次数为,0,。其语法格式为:,while,do,;,69,.,说明:可在(循环体)中任何位置,Break,语句来终止,While,循环,,Break,语句通常位于,IF,语句后。可在循环体中任

50、何位置放置,Continue,语句,以便在整个循环体没有执行完就重新判断(条件),以决定是否开始新的循环。,Continue,语句通常位于,IF,语句之后。,2.Repeat,语句,Repeat,语句属于后测型循环结构,首先执行循环体,然后判断条件,根据条件决定是否继续执行循环,执行循环的最少次数为,1,。,repeat,until,;,70,.,3.For,语句,若知道要执行多少次循环时,则使用,For,循环结构。,For,循环使用一个循环变量,每重复一次循环之后,循环变量的值就会自动增加或者减少。,For,语句的语法格式为:,for,=,to|downto,do,;,说明:,只能是顺序类型

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 初中其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服