Delphi语言语法基础适用于初学者.ppt

上传人:tia****nde 文档编号:11495626 上传时间:2020-04-25 格式:PPT 页数:79 大小:675.50KB
返回 下载 相关 举报
Delphi语言语法基础适用于初学者.ppt_第1页
第1页 / 共79页
Delphi语言语法基础适用于初学者.ppt_第2页
第2页 / 共79页
Delphi语言语法基础适用于初学者.ppt_第3页
第3页 / 共79页
点击查看更多>>
资源描述
第2章Delphi语言基础,本章主要内容:常量、变量、数据类型程序语句过程与函数面向对象的编程,2.1标识符和保留字,2.1.1标识符标识符用作常量、变量、数据类型、过程、函数、单元及程序等的名称。标识符由一个或多个ASCII码字符序列组成,定义标识的规则如下:(1)标识符由字母、数字或下划线组成;(2)标识符的第一个字符必须是字母或下划线;(3)标识符的长度不应超过255个字符,超过255个字符只有前255个字符有效;(4)不能将关键字(保留字)用作标识符;(5)标识符不区分大、小写。,2.1标识符和保留字,在Delphi语言中,有一类标识符是系统预先定义的,它们用于标识系统预先定义的标准函数、标准过程、标准类型、标准常量及标准文件。标准常量,如:False、True、Maxint;标准类型,如:Boolean、Char、TDateTime;标准函数,如:Abs、Eof、ShowMessage、Sqrt;标准过程,如:Dispose、New、Read、ReadIn、Reset。注意:标准标识可以重新定义,但是要注意作用域,2.1标识符和保留字,2.1.2保留字保留字又称为关键字,它在Delphi语言中有着特殊含义。保留字不能用作标识符,在实际编程中不应该把任何保留字用作标识符。,2.1标识符和保留字,Delphi中使用的关键字,2.2常量与变量,2.2.1常量对于在程序运行期间保持不变的数据,Delphi允许通过声明常量来调用。声明常量不必指定数据类型,但需指定常量所代表的数据的值。常量的声明格式如下:Const常量名=表达式;,2.2常量与变量,2.2.1常量例如:CONSTThousand=1000;Pi=3.14159;ErrMessage=类型错误;注意:Delphi根据常量的值来决定它的数据类型。,2.2常量与变量,2.2.2变量变量用于在程序执行过程临时存放数据其值可以被改变。变量分全局变量和局部变量。注释:在过程或函数中说明的变量叫局部变量;之外说明的变量叫做全局变量。,2.2常量与变量,变量说明的一般形式为:VAR变量名列表:类型名;例如:VARiCount:Integer;/说明了一个整型变量bCorrect:Boolean;/说明了一个布尔型变量cX,cY:Char;/说明了两个字符型变量,2.3数据类型,类型大致可以分为简单类型、字符串类型、结构类型、指针类型、过程类型和变体类型。简单类型又分为有序类型和实数类型。,2.3数据类型,2.3.1有序类型有序类型定义一个有次序的数值集合,除了它的第一个值以外,其它每个值都有一个唯一的前驱值;除了最后一个外,其它每个值都有一个唯一的后继值。并且,每个值都有一个序数决定它在这个类型中的位置。包括:整型、字符型、布尔型、枚举型和子界型。,2.3数据类型,2.3.1有序类型1.整型整型是整数的一个子集。整型有通用整型和基本整型之分。通用整型:Integer、Cardinal基本整型:Shortint、Smallint、Longint、Int64、Byte、Word、Longword。,2.3数据类型,2.3.1有序类型2.字符型字符型的数据只能是单个字符,不能是一串字符。,2.3数据类型,例如:Varc:char;beginc:=A;c:=#65;c:=#$41;c:=Chr(65);end,注意:如果想用中文,必须用widechar,且c:=WideString(万);,3.布尔型布尔类型的标识符为Boolean。布尔型变量的取值仅有False和True两个值。,2.3数据类型,4.枚举类型枚举类型是一种自定义有序类型。在枚举类型中列出了所有该类型可能的取值,而不是指定现有类型的范围。格式:TYPEtypename=val1,valn;,2.3数据类型,例:定义了一个枚举类型TWeekDay来表示一周中的七天。TYPETWeekDay=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);VARWeekDay:TWeekDay;beginWeekDay:=Sunday;end,2.3数据类型,2.3数据类型,5.子界类型子界类型定义了某种类型的取值范围。所用类型必须是基本类型的有序类型。语法如下:TYPE类型标识符=上界值.下界值;例如:TYPETage=18.60;VARstudentage:Tage;,2.3数据类型,2.3.2实数类型实数类型定义了一类可以用浮点数表示的数字。,2.3数据类型,2.3.3日期时间类型TDateTime在delphi里本质上是Double类型的,其中整数位用于表达从1899年12月30日到现在所已经过去的天数,小数部分用于表示当天已经流逝的分数值。,vart:TDateTime;s:string;begint:=EncodeDate(2009,5,22);s:=FormatDateTime(yyyy-m-d,t);ShowMessage(s);/2009-5-22end;,2.3数据类型,2.3.4.字符串类型字符串表示一个字符序列。Delphi共有三种字符串类型:(1)ShortString:最多255个字符。(2)ANSIString:20亿个。ANSI(3)WideString:20亿个。Unicode注意:Delphi中的字符串用单引号!,vars:string;begins:=ThefirstDelphiProgram;ShowMessage(s);end;,2.3数据类型,2.3.5结构类型结构类型的一个实例可包含多个值。包括:集合、数组、记录,也包括类、类引用和接口。,2.3数据类型,1.集合集合类型表示一组值,该组值由集合所依据的有序类型定义,一般用枚举或子界类型格式:SETof基本类型,2.3数据类型,例如:TYPETIntSet=SETOF1.10;VARa:Tintset;或:VARa:setof1.10;,2.3数据类型,集合有一些特殊的运算,如:并(+)、交(*)、差(-)、成员检测(in)等。但是一般不用来输出和输入。如:VARset1,set2:setof1.100;.set1:=1,3,5,7;set2:=55.100;,2.3数据类型,2.数组Delphi中的数组下标从1开始!定义的格式:VAR数组名:ARRAY上标.下标of类型;如:VARa:ARRAY1.10ofInteger;b:ARRAY1.5,1.5ofchar;b1,2:=1;,2.3数据类型,3.记录类型结构体记录类型用于定义不同类型数据项的固定集合。记录中每个字段有它自己的类型。记录类型定义中列出了所有字段,每个字段对应一个字段名,通过字段名可以访问字段值。,2.3数据类型,TYPETDate=recordYear:Integer;Month:Byte;Day:Byte;end;VARBirthDay:TDate;BEGINBirthDay.Year:=1997;BirthDay.Month:=2;BirthDay.Day:=14;.END,2.3数据类型,5、指针类型指针类型的变量存储的是内存地址,利用指针可以灵活地访问内存中的数据。指针类型的声明格式如下:type指针类型标识符=数据类型;,varX,Y:Integer;/XandY整数类型P:Integer;/P指向整数类型的指针beginX:=17;/给X赋值P:=X;/把x的地址赋给pY:=P;/取出p所指向的数值赋给yend;,2.4运算符与表达式,运算是对数据进行计算的过程,记述各种不同运算的符号称为运算符。根据运算规则,用运算符将常量、变量、数值和函数组合起来就形成表达式,表达式运算的结果就是表达式的返回值。表达式可以传递给过程或函数的值参,但不能传递给过程或函数中的引用参数。,2.4运算符与表达式,2.1.1表达式最简单的表达式是变量和常量,更复杂的表达式由简单表达式使用运算符、函数调用、集合构造器、索引和类型转换构成。例如:X/变量15/整数常量abs(X)/函数调用X*Y/X和Y的乘积X=Y/条件表达式a,b,c/集合Char(48)/类型转换,2.4运算符与表达式,2.4.2Delphi语言中的运算符及其优先级1赋值运算符(:=)赋值运算符“:=”是先计算赋值运算符右边表达式的值,再将结果赋给左边的变量。2算术运算符P24+、*、/、Div、Mod,2.4运算符与表达式,2.4.2Delphi语言中的运算符及其优先级3关系运算符关系运算符是对两个类型相容且可以比较大小的数据进行比较,结果为布尔类型。=等于、不等于、大于、=大于或等于、In属于。,2.4运算符与表达式,4逻辑运算符逻辑运算符对逻辑类型的操作数进行运算,结果为布尔型。not逻辑非、and逻辑与、or逻辑或、xor逻辑异或。5集合运算符+集合的并集、-集合的差集、*集合的交集、=、=两个集合是否相等、两个集合是否不相等、in。,2.4运算符与表达式,6运算符的优先级各运算符的优先级,2.5语句,2.5.1注释与空白1.注释Delphi中的注释有三种形式:花括号“”注释:位于“”中的内容为注释。双斜杠“/”注释:“/”之后到本行结束的内容为注释。圆括号及星号对“(*)”注释:(*)中的内容为注释。,2.5语句,2.空白(1)空行:可视作空语句;(2)空格(3)缩进,2.5语句,2.5.2简单语句和复合语句简单语句最常用的语句,结束要用“;”分隔。包括:赋值语句、函数和过程调用。赋值语句的格式如下:变量名:=表达式;,2.5语句,2.复合语句多个简单语句的组合,复合语句用begin开始,以end结束。begini:=1;j:=i+1;s:=abc;end;,2.5语句,3.with语句with语句是一种简写方式,用来引用一个记录的字段,或一个对象的字段、属性和方法。如:withlabel1dobegin/label1是一个标签组件caption:=Red;font.Color:=clRed;end;,2.5语句,2.5.3条件语句条件语句通过条件检测,判断是否执行该条件语句中包含的语句。基本形式有:if语句与case语句。,2.5语句,1.if语句(1)if.then语句语法:if表达式then语句例如:ifx=ythenz:=x;,2.5语句,(2)if.then.else语句语法:if表达式then语句1else语句2例如:ifx=ythenz:=xelsez:=y;,注意:不允许在else之前的语句加“;”!,2.5语句,if语句可以嵌套,当使用复合语句时,复合语句前后需要用begin和end括起来。例如:ifx=ythenbeginz:=x;Count:=Count+1;endelseifCount=LastthenDone:=TrueelseExit;,2.5语句,【例2-1】编写一个程序,用于判断输入的年份是不是闰年。注:是闰年的条件必须满足下列条件之一:(1)能被4整除,但不能被100整除的年份;(2)能被100整除,也能被400整除的年份。【实现步骤】(1)新建应用程序(2)定制窗体,图2-1设计窗体界面,2.5语句,表2-10各组件属性设置,(3)编写代码(4)运行程序,图2-2运行结果,2.5语句,2.case语句case语句包括用来选值的表达式、可能值序列或一个取值范围,属于有序类型。其语法如下:case选择表达式of值1:语句1;值2:语句2;.值n:语句n;End,2.5语句,caseaof1:t:=one;2:t:=two;3:t:=three;End,2.5语句,case选择表达式of值1:语句1;值2:语句2;.值n:语句n;else语句n+1;end;,2.5语句,例如:caseMyCharof+:Text:=Plussign;-:Text:=Minussign;*,/:Text:=Multiplicationordivision;0.9:Text:=Number;a.z:Text:=Lowercasecharacter;A.Z:Text:=Uppercasecharacter;elseText:=Unknowncharacter;end;,2.5语句,2.5.4循环控制语句循环语句重复执行循环体(即语句或语句块),并根据设定的条件判断何时退出循环。delphi提供了三种循环语句:while语句、repeat语句、for语句。1.while语句while的语法格式如下:while条件表达式do循环体;,whilei100;,2.5语句,【例2-3】编写程序求两个正整数的最大公约数。分析:我们使用“辗转相除法”求最大公约数,方法如下:以大数m作被除数,小数n作除数,相除得余数为r;如果r不为0则将n赋给m,r赋给n,相除得到新的r,反复该过程直到r=0。最后的m就是最大公约数。,2.5语句,【实现步骤】(1)新建应用程序(2)定制窗体,图2-5设计窗体界面,2.5语句,(3)编写代码(4)运行程序,表2-12各组件属性设置,2.5语句,图2-6运行结果,2.5语句,3.for语句在循环次数已知或可计算的场合,用for语句来实现循环比较简便。for语句分为递增式和递减式两种形式。语法格式:for循环变量=初值to终值do循环体;或for循环变量=初值downto终值do循环体;,2.5语句,(1)循环变量为循环计数器,只能为有序类型变量。(2)初值和终值为循环变量的初始值和终止值。(3)to为计数递增,downto为计数递减。(4)循环体可以是简单语句也可以是复合语句。,2.5语句,(5)对于递增循环,循环执行时先判断循环变量的值是否大于终值,若循环变量的值没有大于终值,则开始执行do后面的循环体,然后循环变量自动递增,并开始一个新的循环。(6)对于递减循环,循环执行时先判断循环变量的值是否小于终值,若循环变量的值没有小于终值,则开始执行do后面的循环体,然后循环变量自动递减,并开始一个新的循环。,fori:=1to100dobegins:=i+s;end;to表示大于;downto表示小于;,2.5语句,【例2-4】用for语句编程计算1+2+3+99+100的值;【实现步骤】(1)修改【例2-2】中的代码。(2)运行程序,2.6过程与函数,Delphi把预先定义好的子程序称作运行库。包括:过程和函数。过程和函数的主要区别在于过程定义使用保留字procedure,执行后没有返回值,而函数定义使用保留字function,执行后有返回值。,2.6过程与函数,2.6.1过程声明过程声明的语法:procedure过程名(参数表);局部声明部分begin过程体语句块end;注意:参数表中同类型参数之间用逗号隔开,不同类型的参数用分号隔开。,procedureTForm1.showsum(N:integer);varsum,i:integer;beginsum:=0;fori:=1toNdosum:=sum+i;showmessage(inttostr(sum);end;,2.6过程与函数,2.6.2函数声明函数声明的语法:function函数名(参数表):返回值数据类型;局部声明部分begin函数体语句块end;,functionTForm1.tryfun(i,j:integer;c:char):integer;begintryfun:=1;end;,2.6过程与函数,2.6.3过程和函数调用用户定义过程调用的形式与标准过程调用的形式是相同的,用户定义函数调用的形式与标准函数调用的形式是相同的。过程:过程名(参数);函数:变量:函数(参数);,2.6过程与函数,【例2-5】过程和函数的调用的例子。在程序中定义了一个名为showSum的过程,用于显示1到n的累加和;定义了一个名为intSum的函数,用于返回1到n的累加和。然后在程序中调用过程showSum和函数intSum。【实现步骤】(1)新建应用程序(2)定制窗体,图2-7设计窗体界面,2.6过程与函数,表2-13各组件属性设置,2.6过程与函数,图2-8运行结果,(3)编写代码(4)运行程序,本章实训指导,4.超市为促销,给出以下优惠措施购物100元以上,9折优惠购物200元以上,8折优惠购物300元以上,7折优惠购物400元以上,6折优惠购物500元以上,5折优惠编写相应程序完成输入购物款额,计算出优惠价。5.如果一个数刚好出现在其平方的右边,如5的平方为25,6的平方为36,这样的数我们称为同构数,请编程找出1-9999的全部同构数。,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!