收藏 分销(赏)

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

上传人:w****g 文档编号:14440208 上传时间:2026-09-14 格式:PPT 页数:79 大小:551.54KB 下载积分:10 金币
下载 相关
Delphi语言语法基础适用于初学者.ppt_第1页
第1页 / 共79页
Delphi语言语法基础适用于初学者.ppt_第2页
第2页 / 共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中使用的关键字,and,array,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,record,repeat,resourcestring,set,Shl,shr,string,then,threadvar,To,try,type,unit,until,uses,var,while,With,xor,2.2 常量与变量,2.2.1 常量,对于在程序运行期间保持不变的数据,Delphi容许通过申明常量来调用。申明常量不必指定数据类型,但需指定常量所代表的数据的值。,常量的申明格式如下:,Const 常量名=体现式;,2.2 常量与变量,2.2.1 常量,例如:,CONST,Thousand=1000;,Pi=3.14159;,ErrMessage=类型错误;,注意:Delphi 根据常量的值来决定它的数据类型。,2.2 常量与变量,2.2.2 变量,变量用于在程序执行过程临时寄存数据其值可以被变化。变量分全局变量和局部变量。,注释:在过程或函数中阐明的变量叫局部变量;之外阐明的变量叫做全局变量。,2.2 常量与变量,变量阐明的一般形式为:,VAR,变量名列表:类型名;,例如:,VAR,iCount: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。,Shortint,-128.127,1,有符号8位,Smallint,-32768.32767,2,有符号16位,Longint,-2147483648.2147483647,4,有符号32位,Int64,-2,63,.2,63,8,有符号64位,Byte,0.255,1,无符号8位,Word,0.65535,2,无符号16位,Longword,0.4294967295,4,无符号32位,2.3 数据类型,2.3.1 有序类型,2.字符型,字符型的数据只能是单个字符,不能是一串字符。,字符,AnsiChar(Char),ANSI字符集,8位,WideChar,Unicode字符集,16位,2.3 数据类型,例如:,Var,c:char;,begin,c:=A;,c:=#65;c:=#$41;,c:=Chr(65);,end,注意:假如想用中文,必须用widechar,且,c:=WideString(万);,3.布尔型,布尔类型的标识符为Boolean。布尔型变量的取值仅有False和True两个值。,2.3 数据类型,4.枚举类型,枚举类型是一种自定义有序类型。在枚举类型中列出了所有该类型也许的取值,而不是指定既有类型的范围。,格式:,TYPE,typename=val1,valn;,2.3 数据类型,例:定义了一种枚举类型TWeekDay来表达一周中的七天。,TYPE,TWeekDay=(Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday);,VAR,WeekDay:TWeekDay;,begin,WeekDay:=Sunday;,end,2.3 数据类型,2.3 数据类型,5.子界类型,子界类型定义了某种类型的取值范围。所用类型必须是基本类型的有序类型。,语法如下:,TYPE,类型标识符=上界值.下界值;,例如:,TYPE,Tage=18.60;,VAR,studentage:Tage;,2.3 数据类型,2.3.2 实数类型,实数类型定义了一类可以用浮点数表达的数字。,Real,5.010,-324,.1.710,308,8,精度15.16,Real48,2.910,-39,.1.710,38,6,精度11.12;向后兼容,Single,1.510,-45,.3.410,38,4,精度7.8,Double,5.010,-324,.1.710,308,8,精度15.16,Extended,3.610,-4951,.1.110,4932,10,精度19.20,Comp,-2,63,+1.2,63,-1,8,精度19.20,Currency,-922337203685477.5808.922337203685477.5807,8,精度19.20,2.3 数据类型,2.3.3 日期时间类型,TDateTime在delphi里本质上是Double类型的,其中整数位用于体现从1899年12月30日到目前所已通过去的天数,小数部分用于表达当日已经流逝的分数值。,var,t:TDateTime;,s:string;,begin,t:=EncodeDate(,5,22);,s:=FormatDateTime(yyyy-m-d,t);,ShowMessage(s);/-5-22,end;,2.3 数据类型,2.3.4.字符串类型,字符串表达一种字符序列。,Delphi共有三种字符串类型:,(1)ShortString:最多255个字符。,(2)ANSIString:20亿个。ANSI,(3)WideString:20亿个。Unicode,注意:Delphi中的字符串用单引号!,var,s:string;,begin,s:=The first Delphi Program;,ShowMessage(s);,end;,2.3 数据类型,2.3.5 构造类型,构造类型的一种实例可包括多种值。包括:集合、数组、记录,也包括类、类引用和接口。,2.3 数据类型,1.集合,集合类型表达一组值,该组值由集合所根据的有序类型定义,一般用枚举或子界类型格式:,SET of 基本类型,2.3 数据类型,例如:,TYPE,TIntSet=SET OF 1.10;,VAR,a:Tintset;,或:,VAR,a:set of 1.10;,2.3 数据类型,集合有某些特殊的运算,如:并(+)、交,(*)、差(-)、组员检测(in)等。不过一,般不用来输出和输入。,如:,VAR,set1,set2:set of 1.100;,.,set1:=1,3,5,7;set2:=55.100;,2.3 数据类型,2.数组,Delphi中的数组下标从1开始!,定义的格式:,VAR,数组名:ARRAY 上标.下标 of 类型;,如:,VAR,a,:,ARRAY 1.10 of Integer;,b,:,ARRAY 1.5,1.5 of char;,b1,2:=1;,2.3 数据类型,3.记录类型构造体,记录类型用于定义不一样类型数据项的固定集合。记录中每个字段有它自己的类型。记录类型定义中列出了所有字段,每个字段对应一种字段名,通过字段名可以访问字段值。,2.3 数据类型,TYPE,TDate=record,Year:Integer;,Month:Byte;,Day:Byte;,end;,VAR,BirthDay:TDate;,BEGIN,BirthDay.Year:=1997;,BirthDay.Month:=2;,BirthDay.Day:=14;,.,END,2.3 数据类型,5、指针类型,指针类型的变量存储的是内存地址,运用指针可以灵活地访问内存中的数据。,指针类型的申明格式如下:,type 指针类型标识符=数据类型;,varX,Y:Integer;/X andY整数类型 P:Integer;/P指向整数类型的指针,beginX:=17;/给X赋值P:=X;/把x的地址赋给p Y:=P;/取出p所指向的数值赋给y,end;,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.2 Delphi语言中的运算符及其优先级,1赋值运算符(:=),赋值运算符“:=”是先计算赋值运算符右边体现式的值,再将成果赋给左边的变量。,2算术运算符 P24,+、*、/、Div、Mod,2.4 运算符与体现式,2.4.2 Delphi语言中的运算符及其优先级,3关系运算符,关系运算符是对两个类型相容且可以比较大小的数据进行比较,成果为布尔类型。,=等于、不等于、不小于、=不小于或等于、In属于。,2.4 运算符与体现式,4逻辑运算符,逻辑运算符对逻辑类型的操作数进行运算,成果为布尔型。,not逻辑非、and逻辑与、or逻辑或、xor逻辑异或。,5集合运算符,+集合的并集、-集合的差集、*集合的交集、=、=两个集合与否相等、两个集合与否不相等、in。,2.4 运算符与体现式,运算符,优先级,not,1(最高),*,/,div,mod,and,2,+,or,xor,3,关系运算符,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结束。,begin,i:=1;,j:=i+1;,s:=abc;,end;,2.5 语句,3.with语句,with语句是一种简写方式,用来引用一种记录的字段,或一种对象的字段、属性和措施。,如:,with label1 do begin /label1是一种标签组件,caption:=Red;,font.Color:=clRed;,end;,2.5 语句,2.5.3 条件语句,条件语句通过条件检测,判断与否执行该条件语句中包括的语句。,基本形式有:if语句与case语句。,2.5 语句,1.if语句,(1)if.then 语句,语法:,if 体现式 then 语句,例如:,if x=y then z:=x;,2.5 语句,(2)if.then.else语句,语法:,if 体现式 then 语句1 else 语句2,例如:,if x=y then,z:=x,else,z:=y;,注意:不容许在else之前的语句加“;”!,2.5 语句,if语句可以嵌套,当使用复合语句时,复合语句前后需要用begin和end括起来。,例如:,if x=y then,begin,z:=x;,Count:=Count+1;,end,else,if Count=Last then,Done:=True,else,Exit;,2.5 语句,【例2-1】,编写一种程序,用于判断输入的年份是不是闰年。,注:是闰年的条件必须满足下列条件之一:,(1)能被4整除,但不能被100整除的年份;,(2)能被100整除,也能被400整除的年份。,【实现环节】,(1)新建应用程序,(2)定制窗体,图2-1设计窗体界面,2.5 语句,组件名,属 性,属 性 值,Label1,Caption,请输入年份:,Label2,Caption,显示结果,Edit1,Text,Button1,Caption,判断,表2-10 各组件属性设置,(3)编写代码,(4)运行程序,图2-2 运行成果,2.5 语句,2.case语句,case 语句包括用来选值的体现式、也许值序列或一种取值范围,属于有序类型。,其语法如下:,case 选择体现式 of,值1:语句1;,值2:语句2;,.,值n:语句n;,End,2.5 语句,case a of,1: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 语句,例如:,case MyChar of,+:Text:=Plus sign;,-:Text:=Minus sign;,*,/:,Text:=Multiplication or division;,0.9:,Text:=Number;,a.z:Text:=Lowercase character;,A.Z:Text:=Uppercase character;,else,Text:=Unknown character;,end;,2.5 语句,2.5.4 循环控制语句,循环语句反复执行循环体(即语句或语句块),并根据设定的条件判断何时退出循环。delphi提供了三种循环语句:while语句、repeat语句、for语句。,1.while语句,while的语法格式如下:,while 条件体现式 do,循环体;,while i100;,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 语句,组件名,属 性,属 性 值,Label1,Caption,请输入第一个整数,Label2,Caption,请输入第二个整数,Label3,Caption,显示结果,Edit1,Text,Edit2,Text,Button1,Caption,开始求最大公约数,(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背面的循环体,然后循环变量自动递减,并开始一种新的循环。,for i:=1 to 100 do,begin,s:=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;,注意:参数表中同类型参数之间用逗号隔开,不一样类型的参数用分号隔开。,procedure TForm1.showsum(N:integer);,var,sum,i:integer;,begin,sum:=0;,for i:=1 to N do,sum:=sum+i;,showmessage(inttostr(sum);,end;,2.6 过程与函数,2.6.2 函数申明,函数申明的语法:,function 函数名(参数表):返回值数据类型;,局部申明部分,begin,函数体语句块,end;,function TForm1.tryfun(i,j:integer;c:char):integer;,begin,tryfun:=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 过程与函数,组件名,属 性,属 性 值,Form1,Caption,求1到N的累加和,Label1,Caption,请输入第一个整数,Label2,Caption,显示函数调用结果,Edit1,Text,Button1,Caption,过程调用,Button1,Caption,函数调用,表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的所有同构数。,
展开阅读全文

开通  VIP、SVIP  下载更划算
下载10份以上建议开通 VIP 会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

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

关于我们      便捷服务       自信AI       AI导航        抽奖活动

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

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

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

关注我们 :微信公众号    抖音    微博    LOFTER 

客服