《Delphi程序设计基础教程》课件第4章 过程与函数_第1页
《Delphi程序设计基础教程》课件第4章 过程与函数_第2页
《Delphi程序设计基础教程》课件第4章 过程与函数_第3页
《Delphi程序设计基础教程》课件第4章 过程与函数_第4页
《Delphi程序设计基础教程》课件第4章 过程与函数_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

12十二月2023DELPHI程序设计基础教程第四章过程与函数本章学习导读4.1过程的说明和调用4.2函数的定义和调用4.3过程和函数的递归调用本章小结12十二月2023DELPHI程序设计基础教程本章学习导读本章介绍了过程和函数的使用、全局变量及局部变量的使用。过程与函数是实现一个特定功能的语句块,可以在程序的其他地方被调用,也可以进行递归调用。过程在被调用时能执行某种特殊功能并能返回到调用它的地方,但不返回某个值,而函数调用后返回到调用点时要返回一个值。函数和过程使用前都要进行声明。12十二月2023DELPHI程序设计基础教程4.1过程的说明和调用4.1.1过程的说明4.1.2过程的调用12十二月2023DELPHI程序设计基础教程4.1.1过程的说明过程的说明分为过程声明和过程定义两部分,过程的声明在程序的type区中,即指定过程标识符(即过程名)和形式参数。过程名可以是任何合法的标识符;过程名后的括号内可以有多个参数也可以没有参数,若有多个参数,不同类型之间用分号隔开。过程声明后,还需要在implementation部分进行过程定义,过程定义即给出完整的过程头部和过程体的定义。过程声明的格式如下:procedure<过程名>([<形式参数表>]);过程定义的格式如下:procedure<过程名>([<形式参数表>]);

[<局部变量和常量声明>]begin<过程语句体>end;12十二月2023DELPHI程序设计基础教程4.1.2过程的调用过程调用的格式如下:过程名([<实际参数表>]);其中过程名是过程的标识符;实际参数可以是常量、变量或表达式,但实际参数的个数和类型必须与形式参数完全匹配,即个数相同,类型一致。例4-1:使用过程实现三个数从大到小排序输出。12十二月2023DELPHI程序设计基础教程4.2函数的定义和调用4.2.1函数的定义4.2.2函数的调用12十二月2023DELPHI程序设计基础教程4.2.1函数的定义函数与过程基本相同,只是使用的保留字不同,而且多了一个返回值类型,它就可以用于表达式中,称这种子程序为函数,这种语句序列的定义称为函数的定义。函数定义在程序的说明部分进行,由函数首部和函数体组成,它指明函数名、函数形参及类型、函数返回值可以赋给函数名,也可以赋给Result变量。函数定义的格式如下:function函数名(形式参数列表:参数类型):函数返回类型;<说明部分>;

begin

语句1;

……函数体语句nend;例4-2:该实例定义了一个函数ShowNum,可以将一个浮点数按指定的精度输出在屏幕上。12十二月2023DELPHI程序设计基础教程4.2.2函数的调用函数返回一个函数值,过程则能完成一系列各种操作。函数的调用方式出现在表达式中,而过程调用是一句独立的语句。函数调用的格式如下:函数名([<实际参数表>]);其中函数名是函数的标识符,它必须在程序调用之前进行说明;实际参数表是一些由逗号分隔的参数,参数出现的顺序必须和函数定义时形式参数出现的顺序和类型一致,一一对应。例4-3:求五边形的面积,如教材图4-1。12十二月2023DELPHI程序设计基础教程4.3过程和函数的递归调用4.3.1过程和函数的递归调用4.3.2过程和函数的类型4.3.3过程与函数的调用约定12十二月2023DELPHI程序设计基础教程4.3过程和函数的递归调用过程和函数调用他们本身,称为递归调用。过程或函数A直接调用A本身,称直接递归。过程或函数A调用过程或函数B,B又调用A,称间接递归。在递归调用中,一个过程执行的某一步要用到它自身的上一步(或上几步)的结果。递归在解决某些问题中,如在处理阶乘运算、级数运算、幂指数运算等方面是十分有用的方法。它可以使某些看起来不易解决的问题变得容易解决,写出的程序较简短。但是递归通常需要花费较多的机器时间和占用较多的存储空间,效率不太高。12十二月2023DELPHI程序设计基础教程4.3.1过程和函数的递归调用下面的例子是要实现数学运算中的幂指数运算。例4-4:递归计算n!12十二月2023DELPHI程序设计基础教程4.3.2过程和函数的类型Delphi7允许把过程和函数作为一个整体赋给某个变量或者作为参数传递给其他的过程和函数,这种变量就是过程或函数类型的变量。过程和函数类型的声明过程如下例:

typeTIntegerFunction=function:integer;TProcedure=procedure;TStrProc=procedure(consts:string);varf:TIntegerFunction;//f是一个无参数、返回值为整数的函数类型的变量

proc:TProcedure;//proc是一个无参数的过程类型变量

sp:TStrProc;//sp是一个需要一个字符串为参数的过程类型变量12十二月2023DELPHI程序设计基础教程4.3.2过程和函数的类型有了上面的声明之后,若有如下函数定义:

procedureFLength(s:string);begin<过程体>end;12十二月2023DELPHI程序设计基础教程4.3.3过程与函数的调用约定在调用过程或函数的时候,如果参数列表中具有多个参数,那么参数传递给过程或函数的顺序会对结果产生一定的影响。对于不同的语言,参数传递的顺序是不同的:Pascal语言是按照从左向右的顺序进行传递的,而C语言是按照从右向左的顺序来传递的。为了确定传递的顺序,可以在过程或函数定义的时候,在directives部分利用指令字指定传递的顺序。例4-5:可以通过该例看看参数传递的顺序。12十二月2023DELPHI程序设计基础教程本章小结在这一章中主要要求学生了解的要点有过程和函数的区别,过程和函数的声明定义,过程和函数的调用及过

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论