欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    Delphi的语法基础 (2).ppt

    • 资源ID:6504508       资源大小:263.99KB        全文页数:28页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Delphi的语法基础 (2).ppt

    第3章 Delphi的语法基础,本章学习要点,l 学习Object Pascal的基本概念l 学习Object Pascal的变量、常量及数据类型l 掌握顺序和选择结构l 掌握三种循环结构l 掌握过程与函数的创建与调用,Delphi是一个基于Object Pascal语言的Windows应用程序开发系统,在所有的事件处理过程和应用程序中都是使用它来编写程序代码,因此学习Delphi的关键是学习和掌握Object Pascal语言的语法与使用方法。,Object Pascal语言保留了Pascal语言具有可读性好、编写容易的特点,这使得它很适合作Windows平台上的快速开发语言。同时,使用Object Pascal语言编译器刨建的应用程序只生成单个可执行文件(.EXE),正是这种结合,使得Object Pascal成为Delphi这种先进集成开发包的编程语言。,下面将讲解有关Object Pascal语言的一些基本语法规则,而不是Pascal语言的一切细节。如果用户不熟悉Turbo Pascal编程而又希望了解有关的内容的话,请参阅一些基础的Pascal教程。,3.1 基本概念,首先介绍Object Pascal语言的最基本内容:标识符和运算符以 及语句的书写规则和符号约定。,3.1.1 标识符标识符是所有编程语言都要使用到的概念。Object Pascal语言程序是由多种语法成分构成的,这些语法成分包括常量、变量、类型、函数、过程、单元等等。为了能够在程序中使用这些语法成分的实例,用户就需要为这些实例各自取一个名字也就是标识符。,在使用标识符前,用户必须首先声明它们。Object Pascal语言的编译器会自动检查标识符的类型以确保标识符的赋值是正确的类型。,Object Pascal语言对标识符的定义有着明确的规定。标识符不区分大小写,标识符只能以字母或下划线开头,标识符中只有前255位有效,标识符中不能包含空格,标识符不能使用Object Pascal语言的保留字,对不同对象中相同标识符的成分必须使用“.”分隔表示所属关系。,保留字(Reserved Words)是由系统规定的、具有特定意义的单词。在编程时不能被重新定义或另作他用。Object Pascal语言规定的保留字在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、proceduce、program、property、raise、record、repeat、resourcestring、set、shl、shr、string、then、threadvar、to、try、type、unit、until、uses、var、while、with、xor、private、protected、public、published、automated、at、on。Object Pascal编程语言对单词的大小写是不敏感的。即不区分所有标识符和保留字的大小写。,3.1.2 运算符,Object Pascal语言的运算符分为数学运算符、逻辑运算符、指针运算符、关系运算符、字符串运算符、集合运算符、类运算符和运算符。其中数学运算符包括:+、-、*、/、div、mod。逻辑运算符包括:not、and、or、xor、shl、shr。指针运算符包括;、=。关系运算符包括:=、=、。集合运算符包括:+、-、*、=、=、in。类运算符包括:as、in。,3.1.3 语句的书写规则,Object Pascal程序语句书写比较自由,可以把多个语句放在一个程序行中,也可把一个语句分多行书写,但需要记住Object Pascal的每个语句都必须以分号“;”(半角)结束。在编写自己的Object Pascal程序时,要注意程序的可读性。Pascal语言是英式结构语言,在程序中选择合适的缩排、大小写风格,并在需要时将程序代码分行,会使得程序代码能够很容易地被自己和他人读懂。对于较为复杂的程序常用到复合语句,复合语句是指将多个语句用begin和end两个保留字包围起来,格式如下:begin;end;复合语句在Object Pascal中被视为一个语句,因此在end后必须加上分号“;”。,3.1.4 语句格式中的符号约定,为了解释语法规则,在说明各语句、函数的格式和功能时用到表3-1中所列符号,这些符号的含义详见表3-1。,表3-1 语句格式中的符号约定,3.2 常量、变量及数据类型,常量和变量都是存储数据的载体,它们在同一时刻只存储一个数据值或字符串。存储于常量中的值从不改变,存储于变量中的值常常随着程序的运行而改变。使用常量代替文字数据值可以使程序易于理解和调试。而当需要改变数据时,可通过变量来引用内存单元。,Object Pascal是一种强类型的语言,其变量在使用之前均要求声明其数据类型。数据类型描述了变量和常量的使用倩况,能够存储数据的形式以及能存储数据的多少。在声明变量时必须确定其类型;在声明常量时,常量值本身就代表其类型,Pascal具有丰富的数据类型,可以将其数据类型分为简单数据类型、字符串类型、构造类型、指针类型、过程类型和可变数据类型等。下面首先介绍常量和变量。,3.2.1 常量,常量是程序执行过程中不发生变化的值。说明常量时,不必指定其数据类型,只需赋予初值,编译器会自动识别该值并确定正确的类型。例如:,const circleate=3.14;i=10;showmessage=你成功地设置了几种类型的常量;在声明常量时也可以指定常量的类型,这样能完全控制编译器对常量的处理,例如:const circleate:double=3.14;i:integer=10;showmessage:string=你成功地设置了几种类型的常量;标准Pascal只允许使用简单的常量,而在Object Pascal中允许使用常量表达式。这些常量表达式应遵循普通表达式的构造规则。在常量表达式中,可以使用编译期间的函数,这些函数如表3-2。,表3-2 可以在常量表达式中引用的标准函数,下面是一些常量表达式的例子:,Const Max=100;Min=0;Medium=(Max-Min)Div 2;Beta=Chr(255);Numchara=Ord(z)-Ord(a)+1;MyMessage=Worng Operation;ErrStr=Error:+MyMessage+!;ErrPos=80-Length(ErrStr)Div 2 Num=0.9;Alpha=A.Z,a.z;AlphaNum=Alpha+Num;,注意:如果程序试图改变常量的值,Delphi编译器就会有一个警告,认为程序违反了规则,因为常量值是只读的。,3.2.2 变量,变量就是在程序运行时其值可以改变的标识符,不同的变量是内存中不同地址的符号表示,用户可以使用这个名称来对该内存地址进行读或写操作。变量就像是一个数据容器,由于它们被赋予了特定的数据类型,因此,它们能够告诉编译器如何对其存放的数据进行解释。,变量声明的最基本的语法是:var:;例如:var i:integer;定义了一个整型变量。var x,y:real;定义了x和y两个实型变量。当连续进行几个变量声明时,可以不必每次都写出其中的保留字var,例如:var x,y,z:Double;i,j,k:Integer;Digit:0.9;Okay:Boolean;,在过程或者函数内部进行声明的变量通常称为局部变量,否则称之为全局变量,全局变量可以在变量声明时就对它进行初始化,其语法为:var:=常量表达式;例如要声明一个全局变量:var i:integer=7;就相当于:var i:integer;i:=7;,当同时声明多个全局变量时(如var x,y,z:real;),不能对变量进行初始化,另外,也不能声明文件类型和其他类型的变量。如果没有初始化全局变量,编译器就自动将其初始化为0,而与此相对应,由于局部变量不能进行初始化,因此,在赋值以前,这个局部变量在内存中的值是随机的。当声明一个变量时,其实用户是在给它分配自由的内存空间,该变量不再使用时,Delphi会自动释放它所占用的内存空间。需要指出的是,局部变量仅仅在程序中它们被声明的函数或过程中才有效。,3.2.5 指针类型,Pascal允许建立动态数据结构,它采用指针类型数据,指针类型变量的引入大大增强了程序的灵活性。一个指针类型变量用于保存一个内存地址,由于该内存地址指向的是一个动态分配的变量,所以,在定义指针类型数据时,必须说明它所指向变量的类型。例如:,Type Pbirthday=TBirthday;TBirthday=Record Name:String30;Year:Integer;Month:1.12;Date:1.31;Var Pbirthday1:Pbirthday;Pint:Integer;BeginPbirthday1.Name:=Smith;Pint:=18;End;,3.3 顺序结构,3.3.1 赋值语句,顺序结构是程序中最简单、最常见的基本结构。在该结构中,各操作模块(对应于程序中的“程序段”)按照出现的先后顺序依次执行,它是任何程序的主体基本结构,即使在选择结构或者更为复杂的循环结构中,也常以顺序结构作为其子结构。,在顺序结构中,通常使用基本控件完成输入及输出操作,使用赋值语句等简单的操作语句组成顺序结构即可实现顺序结构程序的编写。,赋值语句的语法格式为:变量标识符:=表达式;该语句的功能是计算赋值号右边表达式的值,并把此值赋给左边变量。例如:x:=y*z;b:=(x=1)or(y=4)and(z0);t:=sqrt(m)+4*sin(x);,3.4 选择结构,3.4.1 If语句,在日常生活和工作中,经常需要根据给定的条件进行分析、比较和判断,以采取相应的操作。选择结构是计算机科学用来描述自然界和社会生活中分支现象的重要手段。其特点是:根据所给定的条件成立(真)或者(假),决定从实际可能的不同分支中执行某一分支的相应操作。,在Delphi中,实现选择结构的语句是IF语句和Case语句,这两种语句又称为条件语句,条件语句的功能就是根据表达式的值有选择地执行一组语句。,在执行一段代码以前,if语句能让用户判断某个条件是否满足。下面的代码列出了if语句在Pascal中的用法:,if x=4 then y:=x;,注意如果在一条if语句中有多个条件,用户需要用括号把这几个条件分别用括号括起来。例如:if(x=7)and(y=8)then 如果写成if x=7 and y=8 then 将导致编译器警告。,在Pascal中的begin和end,就像是C和C+中的“”和“”,例如,下面的代码是当一个条件满足时要执行多条语句:,if x=6 then beginbegin;end else begin/在else子句之前的end之后没有分号;end;end;用ifelse能组合多个条件:if x=100 then 语句1else if x=200 then,3.5.1 Whiledo循环,whiledo语句的格式如下:while 表达式 do 循环体语句whiledo语句先计算表达式的值,如果为True,则执行一次循环体语句,再次计算表达式的值执行循环体语句,直到表达式的值为False为止。如果一开始,表达式的值就为False,则循环体语句一次也不执行。例如下列语句实现计算s=1+2+3+100的值:,s:=0;i:=1;While i=100 doBegin s:=s+i;i:=i+1;End;,3.5.2 Repeatuntil循环,repeatuntil语句的格式如下:repeat 循环体语句until 表达式repeatuntil语句先执行一次循环体语句,再计算表达式的值,如果表达式的值为False,再执行一次循环体语句,直到表达式的值为True为止。可以看出循环体语句至少会执行一次。例如下列语句同样实现计算s=1+2+3+100的值:,s:=0;i:=1;repeat s:=s+i;i:=i+1;until i100;,3.5.3 Fordo循环,fordo语句是一种事先指定循环执行次数的循环语句。其格式如下:第一种形式:for 计数变量:=初值 to 终值 do 循环体语句第二种形式:for 计数变量:=初值 downto 终值 do 循环体语句,其中计数变量为一个有序类型的数据,初值为计数变量的初始值,终值为计数变量的结束值。在第一种形式中,使用的是保留字to,终值必须大于或等于初值;在第二种形式中,使用的是保留字downto,终值必须小于或等于初值。每次执行一次循环体语句,执行完成后计算变量的值增加1。例如:,s:=0;for i:=1 to 100 dos:=s+1;/同样计算s=1+2+3+100的值fordo语句可以嵌套使用。例如对arraym,n二维数组初始化:for i:=1 to m do for j:=1 to n do arrayi,j:=0;,3.6 过程与函数,3.6.1 过程的定义与调用,fordo语句用于事先知道循环次数的场合。如果事先不能确定循环次数而知道判断循环的条件,就可以用whiledo语句和repeatuntil语句,其中repeatuntil语句至少要执行一次循环体语句。编程时fordo语句是应用最多的循环语句,实际上fordo语句能实现的功能也可以通过whiledo语句和repeatuntil语句来实现。,过程(Procedure)与函数(Function)是结构化程序设计中的重要概念,是程序中用来实现特定功能的语句块。过程在被调用时能执行某种特殊功能并能返回到调用它的地方。函数和过程相似,不同的是函数在返回到调用的地方时要返回一个值。函数和过程在使用前也要声明。在调用过程时要使用过程名和实参,调用函数则需要函数名及其实参。,过程定义的格式如下:procedure 过程名(参数表);过程中变量的定义begin 过程体语句end;,其中过程名的命名应符合标识符的命名规则。在参数表中指明参数的个数及其数据类型,可以不含参数。过程中变量的定义在过程中用到的局部变量,在此处定义的变量的作用范围是整个过程,即只在这个过程中有效。在begin与end之间的过程体语句是实现过程功能的一系列语句。例如:,procedure exchange(var a,b:integer);/交换两个整型变量的值var temp:integer;begin temp:=a;a:=b;b:=temp;end;,过程被定义后,在程序中就可以调用它了。调用的形式为:过程名(实际参数);例如:x:=5;y:=3;exchange(x,y);,3.6.2 函数的定义与调用,以上是通用过程的定义与调用形式,实际上事件过程也可以由其他过程调用而被执行。例如以下代码创建了Button1Click事件过程:procedure TForm1.Button1Click(Sender:TObject);begin showmessage(事件过程的调用!);end;,可以为窗体的Button2按钮创建独立的OnClick事件过程来调用已经存在的Button1Click事件过程,代码 如下:,procedure TForm1.Button2Click(Sender:TObject);begin Form1.Button1Click(Sender);/实际参数Sender还可以改为Form1.Button2/Form1.Button1Click(Form1.Button2);end;,函数的定义与过程非常相似,只是使用的保留字不同,而且多了一个返回值类型。函数定义的格式如下:,function 函数名(参数表):返回值类型;函数中变量的定义begin 函数体语句end;,函数中变量的定义用于定义函数中的局部变量,即在此处定义的变量只在这个函数中有效。函数都具有返回值。每一个Object Pascal函数都有一个隐含的本地变量称为Result,它包含了函数的返回值。也可以在函数体内把值赋给函数名来返回一个值。这是Pascal的标准用法。例如:,function max(a,b:integer):integer;/返回两个变量中的较大值var temp:integer;begin if ab then temp:=a else temp:=b;Result:=temp;/或者max:=temp;end;,3.6.4 SLMIS中函数的创建与调用,3 常量参数,如果不想使传递给函数或过程的参数被改变,就用const关键字来声明它。关键字const能保护变量的值不被修改。,为了简化编程,提高程序执行效率,SLMIS中使用了大量的过程与函数,其中分解房屋座落的函数使用较为频繁,房屋座落是将区、栋、单元、楼层和房号用“-”减号相连接而成,例如“12-8-1-5-2”表示12区8栋1单元5楼层2号房。下面是根据给定座落分解出房屋所属单元的函数。,unit upublicfunc1;interfaceuses Windows,Messages,SysUtils,Classes,Graphics,Controls,shellapi,ComCtrls,DateUtils;function gethouseceng(const S:string):string;/返回房屋座落的单元号implementation,function gethousedanyuan(const S:string):string;var i,n:integer;t,u,v:string;,beginu:=;i:=pos(-,s);n:=length(s);t:=copy(s,i+1,n-i);i:=pos(-,t);n:=length(t);if i0 then u:=copy(t,i+1,n-i);i:=pos(-,u);n:=length(u);if n0 thenbeginif(n0)and(i0)then result:=Copy(u,1,i-1);if(n0)and(i=0)then result:=uend,3.7 小结,可以看出上述函数创建被放在单元文件upublicfunc1.pas中,在调用该函数的单元文件中,要在implementation的声明后加入uses upublicfunc1,这样才能调用upublicfunc1.pas中的函数gethousedanyuan,假设房屋座落从edit1文本框中取得,分解以后的房屋单元被放到字符串变量danyuan中,以下代码是调用gethousedanyuan函数的语句:,elseresult:=;end;,danyuan:=gethousedanyuan(trim(edit1.text);/返回房屋座落的单元号,在本章中,首先介绍了Object Pascal语言的基本概念,包括标识符、运算符、语句的书写规则及其符号约定,然后是常量、变量及常见的几种基本数据类型:数值、字符、布尔、数组、记录和指针;随后分别介绍了三种结构的程序设计思想和实现方法,在程序设计中它是非常重要的。任何复杂的算法都可以用顺序、选择和循环三中结构组合而成,所以这三种结构称为程序的三种基本控制结构;最后介绍了Object Pascal语言的过程与函数的定义与调用,参数的传递,以及在实际应用中根据需要如何创建函数并调用之。,3.8 习题3,1如何来定义Object Pascal语言中合法的标识符?2Object Pascal中提供了哪些运算符?试列举几个说明之。3Object Pascal中有哪几种数据类型?4编制程序:要求输入初始值,输出50个不能被3整除的数。5利用循环计算1+2+n的值(n通过文本框输入)。6利用三种循环结构计算n的阶乘(n通过文本框输入)。7简单说明过程与函数的定义有何不同。8编写一个函数实现把字符传中的小写字母变成大写字母。9按照节中给定的座落,编写分解楼层的函数。,

    注意事项

    本文(Delphi的语法基础 (2).ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开