DELPHI语言基础知识教材.ppt

上传人:文库蛋蛋多 文档编号:2905437 上传时间:2023-03-02 格式:PPT 页数:100 大小:786.50KB
返回 下载 相关 举报
DELPHI语言基础知识教材.ppt_第1页
第1页 / 共100页
DELPHI语言基础知识教材.ppt_第2页
第2页 / 共100页
DELPHI语言基础知识教材.ppt_第3页
第3页 / 共100页
DELPHI语言基础知识教材.ppt_第4页
第4页 / 共100页
DELPHI语言基础知识教材.ppt_第5页
第5页 / 共100页
点击查看更多>>
资源描述

《DELPHI语言基础知识教材.ppt》由会员分享,可在线阅读,更多相关《DELPHI语言基础知识教材.ppt(100页珍藏版)》请在三一办公上搜索。

1、DELPHI语言基础,DELPHI语言基础,DELPHI语言基础,常量,无需定义1、整型常量2、实数常量3、布尔常量4、字符常量5、字符串常量,字面常量,DELPHI语言基础,常量,符号常量,需定义语法规则:const=注:没有“:”号。例:const pi=3.14;/正确pi1=abc/错误pi2=-pi;/正确pi=-k/错误(即使k被定义为变量),DELPHI语言基础,unit Unit1;interfaceuses Windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,;type TForm1=class(TForm

2、)Button1:TButton;procedure Button1Click(Sender:TObject);private Private declarations public Public declarations end;var Form1:TForm1;const pi=3.14;implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);const pi=3.1415;beginend;end.,DELPHI语言基础,变量,语法规则:var:例:varX:integer;Y,z:string;注:不区分大小

3、写,unit Unit1;interfaceuses SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type TForm1=class(TForm)Button1:TButton;procedure Button1Click(Sender:TObject);private Private declarations public Public declarations i:integer;end;var Form1:TForm1;i:integer;x,y:string;implementation$R*.d

4、fmprocedure TForm1.Button1Click(Sender:TObject);var i:integer;st:string;beginend;end.,DELPHI语言基础,类型常量,语法规则:const:=注:没有“:”号。例:const pi:integer=3.14;/正确pi1:string=abc/错误符号常量和类型常量唯一不同:类型常量指定了类型。,DELPHI语言基础,unit Unit1;interfaceuses SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type

5、TForm1=class(TForm)Button1:TButton;procedure Button1Click(Sender:TObject);private Private declarations public Public declarations end;var Form1:TForm1;const pi:integer=3;pi1:string=abc;implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);const pi:integer=3.14;pi1:string=abcbeginend;end

6、.,DELPHI语言基础,DELPHI语言基础,自定义类型,语法规则:type=注:没有“:”号。例:typeint=integer;/int代替integer类型 str=array1.10 of string;/str代替string数组,DELPHI语言基础,unit Unit1;interfaceuses SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type TForm1=class(TForm)Button1:TButton;procedure Button1Click(Sender:TObje

7、ct);private Private declarations public Public declarations end;Type int=integer;str=array1.10 of string;var Form1:TForm1;implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);beginend;end.,DELPHI语言基础,数据类型,表示数据有顺序,有序数据类型,DELPHI语言基础,整型,有序数据类型,DELPHI语言基础,整型的运算-算术运算,有序数据类型,+加法运算-减法运算*乘法运算D

8、iv整除运算Mod取余运算例:9 div 2返回为417 mod 5返回2-17 mod 5返回-3,DELPHI语言基础,整型的运算-关系运算,有序数据类型,=2返回为 true17 5返回false,DELPHI语言基础,整型的运算-整数的逻辑运算符,有序数据类型,not整数转二进制后按位取反and两整数转二进制后位按与比较or两整数转二进制后位按或比较xor两整数转二进制后位按异或比较例:5 and 9返回1;101 1001,DELPHI语言基础,整型的运算-左右移动运算,有序数据类型,shl整数转二进制后按位向左移动shr整数转二进制后按位向右移动例:9 shl 4返回144;100

9、1将转为10010000,DELPHI语言基础,整型的运算-常用函数,有序数据类型,Abs()求绝对值Sqr()求平方Chr()求数字对应的ASC码,DELPHI语言基础,字符型(不是字符串)char字符型包括:字母、数字、控制字符等所有ASC码。例:ch=a;ch=%;ch=qwerqwer;/出错ch=#90;其中#90表示将ASC码为90的符号。字符型的序列按照ASC序列。,有序数据类型,DELPHI语言基础,字符型-运算符及常用函数(1)运算符=用于比较字符大小,按照ASC码比较。例:aA/真A9/真(2)常用函数ord()返回该字符的ASC码例:ord(a)/返回97ord(ab)/

10、出错,有序数据类型,DELPHI语言基础,DELPHI语言基础,布尔型boolean布尔型只有”真”和”假”,对应到”true”和”false”。例:ch:=true;ch:=false;ch:=1;/出错布尔型中false为0,true为1常用函数ord()/返回其序列false为0,true为1,有序数据类型,DELPHI语言基础,DELPHI语言基础,枚举类型(属于自定义类型)语法:type类型名称=val1,val2.valn默认情况下,其值对应0,1,2,3常用函数ord()/返回其对应的数例:有枚举类型 xingqi=(zhou1=4,zhou2,zhou3);那么其zhou2=5

11、;zhou3=6;,有序数据类型,DELPHI语言基础,procedure TForm1.Button1Click(Sender:TObject);type xingqi=(zhou1=3,zhou2,zhou3);/定义枚举类型局部变量var s:xingqi;begin s:=zhou2;showmessage(inttostr(ord(s);end;,unit Unit1;interfaceuses Windows,Classes,Graphics,Controls,Forms,Dialogs,StdCtrls;type xingqi=(zhou1=3,zhou2,zhou3);/全局变

12、量,DELPHI语言基础,子界类型(属于自定义类型)语法:type类型名称=上界.下界注:上界和下界必须是整数、枚举数、布尔型等有序类型。例:type age=0.200/正确type age=1.0.200/错误例:有子界类型 age=0.200;那么其有变量i:age;i:=100;/正确i:=201;/错误,有序数据类型,DELPHI语言基础,无序数据类型,DELPHI语言基础,实数类型,无序数据类型,DELPHI语言基础,DELPHI语言基础,实数类型运算-运算符,无序数据类型,+-*/,实数类型运算-关系运算符,=,DELPHI语言基础,无序数据类型,实数类型运算-常用函数,Abs(

13、)求绝对值sqr()求平方Floattostr()将实数转为字符型strtofloat()将字符转为实数型sin()求正玄(弧度制)cos()求余玄(弧度制)arctan()求反正切(弧度制)exp()求指数次方Exin()求自然对数log(x)sqrt()求算术平方根Round()四舍五入返回整型trunc()移去小数部分,返回整型Int()获取整数字部分,返回实型Frac()获取小数部分,DELPHI语言基础,日期时间类型,无序数据类型,Tdatetime日期时间型Tdate日期型Ttime时间型例:procedure TForm1.Button1Click(Sender:TObject)

14、;var riqi:tdatetime;begin riqi:=now();showmessage(datetimetostr(riqi);end;,DELPHI语言基础,DELPHI语言基础,日期时间类型运算符+D+N日期时间型+实型/返回日期时间型-D-N日期时间型-实型/返回日期时间型D-D日期时间型-日期时间型/返回实数类型例procedure TForm1.Button1Click(Sender:TObject);var riqi:tdatetime;begin riqi:=now()+3.7;/当前日期加上 3天7小时 riqi:=riqi-3.7;/当前日期减 3天7小时 sho

15、wmessage(datetimetostr(riqi);end;,无序数据类型,DELPHI语言基础,DELPHI语言基础,日期时间类型关系运算符=例:strtodatetime(2001-1-1)strtodatetime(2002-1-1)/返回为false,无序数据类型,DELPHI语言基础,DELPHI语言基础,日期时间类型常用函数需要引用单元 DateUtilsDate()返回当前日期,日期型Time()返回当前时间Now()返回当前日期时间Strtodate()将字符型转换成日期型Strtotime()将字符型转换成时间型Strtodatetime()将字符型转换成日期时间型da

16、tetimetoStr()将日期时间型转换成字符型datetoStr()将日期型转换成字符型timetoStr()将时间型转换成字符型Yearof()获取年份返回整型Monthof()获取月分返回整型Dayof()获取日号,返回整型Weekof()获取该日期是本年的第几个星期,返回整型Dayofweek()获取星期几,返回整型,无序数据类型,DELPHI语言基础,结构类型,DELPHI语言基础,集合类型(设置数据集合)Type类型名称=set of 数据类型;注:集合类型不能超过256个值例:Typejihea=set of 1.256;/正确jiheb=set of 2.257;/正确jih

17、ec=set of char/正确 ASC最大127jihed=set of 1.257/错误 超过范围,结构类型,DELPHI语言基础,集合类型并交差运算*两集合的交集+两集合的并集-集合的差集例:x:=1.4,9;y:=2,3,6;x:=x*y/返回 2,3x:=x+y/返回 1,2,3,4,6,9y:=x-y/返回 1,4,9x:=1,2+2;/错误,结构类型,DELPHI语言基础,集合类型关系运算A=BAB集合数据是否相同ABB集合的数是否在A集合中都出现过,且A集合大于B集合A=BB集合的数是否在A集合中都出现过AB判断AB是否完全相等.例:f为boolean类型 A1,2,3,4B

18、2,3,4F:=(AB);/返回真F:=(A=B);/返回假F:=(A=B);/返回真,结构类型,DELPHI语言基础,集合类型in运算A元素 in B集合判断A元素是否在B集合中出现。例:f:=3 in 1,2;返回假f:=1 in 1,2;返回真,结构类型,DELPHI语言基础,数组类型静态数组:在程序定义时,给定了数组元素个数。数组的声明:arraylow1.high1,low2.high2,.,lown.highn of 数据类型例:var st:array1.10 of integer;/定义一维数组 st1:array1.9 of string;/定义一维数组 st2:array1

19、.10,2.10 of string/定义二维数组使用方式:st11:=qwer;st1#54:=123;st154:=13;/错误 st21,4:=qwre;,结构类型,DELPHI语言基础,数组类型动态数组:在程序定义时,未给定了数组元素个数。数组的声明:array of 数据类型数组空间分配:setlength(数组名,长度)下标从0开始例var st:array of integer;/动态一维数组 st1:array of array of integer;/动态二维数组数组空间分配:setlength(st,10);setlength(st1,10,10);setlength(st

20、10,5);,结构类型,DELPHI语言基础,数组类型数组常用函数Low(数组)返回数组下标High(数组)返回数组上标,结构类型,DELPHI语言基础,例:varsk:array of array of integer;i:integer;i定义为动态二维数组setlength(sk,10);/一维含有10个元素/将一维元素设为不同各数的数组for i:=low(sk)to high(sk)dobegin setlength(sk i,i+1);end;,数组元素如下:sk0,0 sk1,0 sk1,1 sk2,0 sk2,1 sk2,2,DELPHI语言基础,字符串类型,结构类型,DELP

21、HI语言基础,字符串类型例:,结构类型,?,DELPHI语言基础,字符串类型合并运算符+字符号串相加字符串类型比较运算符=字符串的比较按照ASC码,结构类型,DELPHI语言基础,字符串类型 例:abaabc/返回假Aa/返回假张abc/真aa张abc/返回假注:中文大于英文,结构类型,DELPHI语言基础,字符串类型标准函数Copy(string st,int i,int j)字符串st从i截取长度为j的字符Leftstr(string st,int i)截取字符串st左边长度为i的字符Rightstr(string st,int i)截取字符串st右边长度为i的字符Pos(string s

22、t1,string st2)获取st1在st2中的位置,若不存在返回0Trimleft(string st1)除去st1左边的空格Trimright(string st1)除去st1右边的空格Trim(string st1)除去st1两边的空格Length(string st1)获取st1的长度Uppercase(string st1)返回st1转成大写Lowercase(string st1)返回st1转成小写Stringofchar(char c,int i)返回连续i个c字符的字符串Dupestring(string st1,int i)返回连续i个c字符串的字符串(引用StrUtils

23、)注:红色为常用函数,结构类型,DELPHI语言基础,例:st:=hello world;st1:=or;st3:=123 Leftstr(st,3)/返回helRightstr(st,4)/orldPos(st1,st)/8Trimleft(st3)/123 Trimright(st3)/123Trim(st3)/123Length(st)/11,结构类型,DELPHI语言基础,记录类型定义:type 类型名称=record成员1:数据类型;成员2:数据类型;成员1:数据类型;end;注:记录类型使用方式变量名.成员,结构类型,DELPHI语言基础,var Form1:TForm1;type

24、 ss=record xm:string;end;implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);var kk:ss;begin kk.xm:=123;showmessage(kk.xm);end;,记录类型例:,结构类型,DELPHI语言基础,指针类型(指向内存地址)定义:变量名:数据类型;注:获取地址变量名 获取该指针指向地址的值变量名 通过inc()和dec()向前向后移动。inc(变量)dec(变量)例:有指针变量 k:integer,整型变量 i:integer;i:=100;k:=i;/获取i的内

25、存地址k:=k+100;,结构类型,DELPHI语言基础,procedure TForm1.Button1Click(Sender:TObject);var i:array 1.2 of integer;k:integer;begin i1:=1;i2:=30;k:=i;inc(k);k:=k+1;showmessage(inttostr(k);end;,例:,结构类型,DELPHI语言基础,特殊类型,DELPHI语言基础,可变类型定义:变量名:variant;注:可变类型可以保存任何类型的数据,可变类型速度慢。例:k为可变类型k:=12;k:=aaa;k:=123+121;k:=aaa+12

26、3;/错误,特殊类型,DELPHI语言基础,运算符号优先级,DELPHI语言基础,DELPHI语言基础,由高到底:1.2not3*/divmodandshlshr4+-or xor5=in,运算符优先级,DELPHI语言基础,语句与流程控制,DELPHI语言基础,基本语句1.赋值语句变量:=表达式;例:i:=1;/i为整型k:=(12);/k为逻辑型2.符合语句begin 语句组end;3.注释/注释内容 注释内容(*注释内容*),语句与流程控制,DELPHI语言基础,IF语句格式一:if 条件表达式 then语句A;/包含一条语句情况格式一:if 条件表达式 then begin语句A;/包

27、含多条语句情况 end;格式一:if 条件表达式 then语句A/包含一条语句情况(最后不加分号)else语句B;/包含一条语句情况格式二:if 条件表达式 then begin语句组A/包含多条语句 end/没有分号else begin语句组B end;,语句与流程控制,DELPHI语言基础,分支语句例:if(12)then showmessage(12)/没有分号 else showmessage(12)then Begin showmessage(12);End/没有分号Else Begin showmessage(12);end;,语句与流程控制,DELPHI语言基础,CASE语句格式

28、:case 表达式 of 常量1:语句 1;/包含一条语句的情况 常量2:begin/包含多条语句的情况 语句组;end;常量n:语句 n;else 语句n;end;注:case后面的表达式必须是有序类型。例:case 3.1 of/错误,不允许是非有序类型,语句与流程控制,DELPHI语言基础,CASE语句例:知道成绩输出等级。cj:=92.6;/cj实数类型cjz:=trunc(cj);/cjz整数类型case cjz of 90.100:showmessage(优);80.89:showmessage(良);70.79:showmessage(中);60.69:showmessage(及

29、格);else showmessage(需要补考);end;,语句与流程控制,DELPHI语言基础,循环语句 while 格式一:while 条件表达式 do 语句;/包含一条语句 格式二:while 条件表达式 dobegin/包含多条语句 语句组;end;,语句与流程控制,DELPHI语言基础,循环语句 while例:求1.100所有数之和。sum:=0;i:=1;while i=100 do begin sum:=sum+i;i:=i+1;end;showmessage(inttostr(sum);,语句与流程控制,DELPHI语言基础,循环语句 repeat格式:repeat 语句组u

30、ntil 条件达式;/条件表达式为真时跳出,语句与流程控制,DELPHI语言基础,循环语句 repeat例:求1.100所有数之和。sum:=0;i:=1;repeat sum:=sum+i;i:=i+1;until i 100;showmessage(inttostr(sum);,语句与流程控制,DELPHI语言基础,循环语句 for格式一:for 循环变量:=初值 to 终值 do begin 语句组 end;格式二:for 循环变量:=初值 downto 终值 do begin 语句组 end;,语句与流程控制,DELPHI语言基础,循环语句 for例:求1.100所有数之和。sum:=

31、0;for i:=1 to 100 do begin sum:=sum+i;end;showmessage(inttostr(sum);,语句与流程控制,DELPHI语言基础,循环语句 特殊处理break跳出该层循环continue进入下一次循环例:输出1.100所有奇数之和 sum:=0;for i:=1 to 100 do begin if(i mod 2=0)then continue;sum:=sum+i;end;showmessage(inttostr(sum);,语句与流程控制,DELPHI语言基础,一、教材60页 2-6、2-7,2-8,2-10二、1.输出9*9乘法表。2.对数

32、组 a=(4,56,78,3,6,8,9,4,23,6,7,9,4)降序排列。,作业练习,DELPHI语言基础,过程与函数,DELPHI语言基础,过程和函数使程序中代码的使用率提高,提高程序开发速度和程序的一致性。过程和函数的功能内似,区别在于过程无返回值,函数有返回值。返回值过程无函数有,过程与函数,DELPHI语言基础,过程的声明格式procedure 过程名(参数表);/末尾有;号begin 语句组end;,过程与函数,DELPHI语言基础,例:建立过程 isum(i:integer),求1+2+i的和,并显示。procedure isum(i:integer);/声明过程isumvar

33、 sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;showmessage(inttostr(sum);end;/调用过程procedure TForm1.Button1Click(Sender:TObject);begin isum(100);/调用过程isumend;/注:调用过程之前必须声明过程。,过程与函数,DELPHI语言基础,var Form1:TForm1;implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);begin isum(100);

34、/调用未声明的isum过程,错误end;procedure isum(i:integer);/声明isum过程var sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;showmessage(inttostr(sum);end;,过程与函数,DELPHI语言基础,var Form1:TForm1;procedure isum(i:integer);/声明isum过程implementation$R*.dfmprocedure TForm1.Button1Click(Sender:TObject);begin isum(100);/调用

35、isum过程,正确end;procedure isum(i:integer);/isum过程代码var sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;showmessage(inttostr(sum);end;,过程与函数,DELPHI语言基础,函数的声明格式function 函数名(参数表):返回数据类型;/末尾有;号begin 语句组end;,过程与函数,DELPHI语言基础,例:建立函数 isum(i:integer):integer,求1+2+i的和并返回结果。function isum(i:integer):intege

36、r;/声明过程isumvar sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;isum:=sum;/返回结果以函数名为变量或 result:=sum;end;/调用过程procedure TForm1.Button1Click(Sender:TObject);begin showmessage(inttostr(isum(100);/调用函数isumend;/注:在过程的声明必须在调用过程之前。,过程与函数,DELPHI语言基础,function isum(i:integer):integer;/声明函数isumvar sum,j:

37、integer;begin sum:=0;for j:=0 to i do sum:=sum+j;isum:=sum;/函数名作为返回结果end;function isum(i:integer):integer;var sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;result:=sum;/result变量作为返回结果end;,过程与函数,DELPHI语言基础,function isum(i:integer):integer;var sum,j:integer;begin sum:=0;for j:=0 to i do sum:=

38、sum+j;isum:=sum;isum:=123;end;调用函数k:=isum(100);/K的结果等于多少?,过程与函数,DELPHI语言基础,function isum(i:integer):integer;var sum,j:integer;begin sum:=0;for j:=0 to i do sum:=sum+j;isum:=sum;exit;/退出过程或函数 isum:=123;end;调用函数k:=isum(100);/K的结果等于多少?,过程与函数,参数的传递,DELPHI语言基础,参数的传递 传值例:procedure isum(i:integer);传地址例:pro

39、cedure isum(var i:integer);常量参数例:procedure isum(const i:integer);实参:调用函数的实际参数。形参:函数中的参数。k:=100;/k 实参isum(i);/在isum过程中变量 i 为形参,过程与函数,DELPHI语言基础,1、传值值参传递的是一个值,实参是一个表达式,函数内部形参修改时,其实 参不发生变化。procedure isum(i:integer);/传值Begin i:=i+1;End;procedure TForm1.Button1Click(Sender:TObject);Var k:integer;begin k:

40、=100;isum(k);isum(k+100);showmessage(inttostr(k);/显示多少呢?end;,过程与函数,主程序k,Isum函数i,内存地址,内存地址,DELPHI语言基础,数组传值数组作为实参,形参中,数组自动将数组下标从0开始。数组传值,在过程与函数中修改形参,实参不变。procedure isum(a1:array of integer);var i:integer;Begin showmessage(数组的下标是:+inttostr(low(a1);/下标是多少呢?showmessage(数组的上标是:+inttostr(high(a1);/上标是多少呢?f

41、or i:=low(a1)to high(a1)do/修改形参 a1i:=a1i+100;End;procedure TForm1.Button1Click(Sender:TObject);var a:array2.5 of integer;i:integer;begin a2:=2;a3:=3;a4:=4;a5:=5;isum(a);for i:=low(a)to high(a)do showmessage(a+inttostr(i)+=+inttostr(ai);/实参是多少呢?end;,DELPHI语言基础,2、传地址形参数前面var修饰,实参必须是变量,不允许是表达式。函数内部形参修改

42、时,实参也将发生变化。procedure isum(var i:integer);/传值Begin i:=i+1;End;procedure TForm1.Button1Click(Sender:TObject);Var k:integer;begin k:=100;isum(k);isum(k+101);/错误的调用函数,实参必须是变量 showmessage(inttostr(k);/显示多少呢?end;,过程与函数,主程序k,Isum函数i,内存地址,DELPHI语言基础,数组传地址数组作为实参,形参中,数组自动将数组下标从0开始。数组传值,在过程与函数中修改形参,实参不变。proced

43、ure isum(var a1:array of integer);var i:integer;Begin showmessage(数组的下标是:+inttostr(low(a1);/下标是多少呢?showmessage(数组的上标是:+inttostr(high(a1);/上标是多少呢?for i:=low(a1)to high(a1)do/修改形参 a1i:=a1i+100;End;procedure TForm1.Button1Click(Sender:TObject);var a:array2.5 of integer;i:integer;begin a2:=2;a3:=3;a4:=4

44、;a5:=5;isum(a);for i:=low(a)to high(a)do showmessage(a+inttostr(i)+=+inttostr(ai);/实参是多少呢?end;,DELPHI语言基础,3、常量参数形参数前面const修饰,函数内部不允许修改形参。procedure isum(const i:integer);/传值Begin i:=i+1;/错误,形参不允许修改End;procedure TForm1.Button1Click(Sender:TObject);Var k:integer;begin k:=100;isum(k);isum(101);end;,过程与函

45、数,DELPHI语言基础,过程与函数的重载,DELPHI语言基础,过程与函数的重载重载:多个相同名称,而参数不同的过程和函数。格式:function 函数名(参数):返回类型;overload;procedure 函数名(参数):返回类型;overload;比如:编写自定义函数ADD,调用方式如下:add(st1,st2:string)/函数参数为2个字符串add(i,j:integer)/函数参数为2个数字,过程与函数,DELPHI语言基础,function add(i,j:integer):integer;Begin add:=i+j;End;function add(st1,st2:st

46、ring):string;Begin add:=st1+st2;End;,错误,function add(i,j:integer):integer;overload;Begin add:=i+j;End;function add(st1,st2:string):string;overload;Begin add:=st1+st2;End;,正确,DELPHI语言基础,过程与函数的重载function add(i,j:integer):integer;overload;/重载Begin add:=i+j;End;function add(st1,st2:string):string;overlo

47、ad;/重载Begin add:=st1+st2;End;procedure TForm1.Button1Click(Sender:TObject);var st:string;i:integer;begin st:=add(one,two);/调用重载函数 i:=add(1,2);/调用重载函数 showmessage(st);showmessage(inttostr(i);end;,过程与函数,DELPHI语言基础,过程与函数的递归,DELPHI语言基础,过程与函数的递归调用递归调用:所谓递归调用就是过程或函数调用自身。例:function add();begin add();/递归调用e

48、nd;递归调用优点:简单易懂。递归调用缺点:时间长,消耗资源高。,过程与函数,DELPHI语言基础,例:求1+2+100之和。(通过递归调用实现)function isum(i:integer):integer;Begin if i=1 then isum:=1/跳出点 else isum:=isum(i-1)+i;End;procedure TForm1.Button1Click(Sender:TObject);var i:integer;begin i:=isum(100);showmessage(inttostr(i);end;,过程与函数,DELPHI语言基础,100,isum:=is

49、um(99)+100,99,isum:=isum(98)+99,98,isum:=isum(97)+98,2,isum:=isum(1)+2,1,isum:=1,递归调用图,DELPHI语言基础,自定义外部单元文件,DELPHI语言基础,自定义外部单元文件 开发软件过程中,通常将常用的类、函数、过程存放到外部单元文件中,需要使用是通过uses引用外部自定的单元文件。,过程与函数,DELPHI语言基础,例:编写函数add(i,j:integer):integer;并将起放入外部单元。1、建立单元文件unit。2、新建单元中定义过程与函数接口,编写过程与函数。,unit Unit2;/新建单元文件

50、Interface 单元文件接口(即声明过程与函数字)implementation 过程与函数编写区域 end.,DELPHI语言基础,unit Unit2;interface function add(i,j:integer):integer;/声明过程与函数,外部程序才能调用implementation function add(i,j:integer):integer;/函数与过程的编写 begin add:=i+j;end;end.,3、引用单元文件并调用函数。,var Form1:TForm1;implementation uses unit2;/引用单元文件$R*.dfm,unit

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号