第6章过程的使用课件.ppt

上传人:牧羊曲112 文档编号:2109416 上传时间:2023-01-11 格式:PPT 页数:67 大小:417.30KB
返回 下载 相关 举报
第6章过程的使用课件.ppt_第1页
第1页 / 共67页
第6章过程的使用课件.ppt_第2页
第2页 / 共67页
第6章过程的使用课件.ppt_第3页
第3页 / 共67页
第6章过程的使用课件.ppt_第4页
第4页 / 共67页
第6章过程的使用课件.ppt_第5页
第5页 / 共67页
点击查看更多>>
资源描述

《第6章过程的使用课件.ppt》由会员分享,可在线阅读,更多相关《第6章过程的使用课件.ppt(67页珍藏版)》请在三一办公上搜索。

1、第6章 过程的使用,6.1 Visual Basic的工程6.2 过程6.3 过程的调用6.4 参数的传递6.5 递归过程6.6 变量的作用范围6.7 过程的作用范围6.8 Shell函数6.9 程序举例,1,第6章 过程的使用6.1 Visual Basic的工程,6.1 Visual Basic的工程,6.1.1 Visual Basic的文件类型1466.1.2 工程的组成1476.1.3 管理工程148,2,6.1 Visual Basic的工程6.1.1 Visu,6.1.1 VB的文件类型,1.工程文件(.vbp)工程文件(.vbp)包含了组成应用程序的所有窗体文件(.frm)、标

2、准模块文件(.bas)、类模块文件(.cls)及其他文件,也包含了环境设置方面的信息。2窗体文件(.frm)窗体文件包含本模块中窗体、控件的描述和属性设置,也包含窗体级的常量、变量、外部过程的声明,以及事件过程和通用过程的程序代码。,(快讲),3,6.1.1 VB的文件类型1.工程文件(.vbp)(快讲,6.1.1 VB的文件类型,3窗体的二进制数据文件(.frx)窗体的二进制数据文件含有窗体上控件的二进制属性数据,以二进制数为其值。4标准模块文件(.bas)标准模块文件用于存放在几个模块中都要使用的公共代码,包含常量、变量、类型和过程的声明,以及通用过程代码。5类模块文件(.cls)类模块用

3、于建立新对象,这些新对象可以包含自定义的属性和方法,类模块既包含代码又包含数据,可以被应用程序内的过程调用。,4,6.1.1 VB的文件类型3窗体的二进制数据文件(.fr,6.1.2 工程的组成,图 VB应用程序的组成,5,6.1.2 工程的组成 VB应用程序(.vbp文件)标准模,6.1.2 工程的组成,1.窗体模块(.frm),窗体模块包含事件过程和通用过程,通用过程又分为Sub过程和Function过程。,2.标准模块(.bas),标准模块没有界面只有程序代码,包含通用过程的Sub过程和Function过程。,3.类模块(.cls),类模块用于建立新对象,这些新对象可以包含自定义的属性和

4、方法,类模块既包含代码又包含数据,它可以被应用程序内的过程调用。,6,6.1.2 工程的组成1.窗体模块(.frm)窗,6.1.3 管理工程,1.保存工程,(1)保存工程,(2)生成exe文件,工程资源管理器,7,6.1.3 管理工程1.保存工程(1)保存工程(2)生,6.1.3 管理工程,2.设置工程属性,选择“工程”菜单“工程属性”菜单项则出现“工程属性”对话框,设置工程属性选项。,启动对象,工程类型,工程名称,帮助文件名,工程帮助上下文 ID,工程描述,工程属性设置,8,6.1.3 管理工程 2.设置工程属性,6.1.3 管理工程,3.添加工程,在已建的工程环境中通过添加新的或现有的工程

5、构成工程组。当装入了多个工程时,工程资源管理器窗口的标题就变成“工程组”。,添加新工程:,添加现有工程:,4.删除工程,在工程资源管理器窗口中选择需删除的工程名,选择“文件”菜单“删除工程”菜单项,则从工程组中删除该工程。,5.向工程中添加和删除文件,可以向工程中添加窗体、模块、属性页和用户控件等文件,选择“工程”菜单的下拉菜单的各种添加命令向工程中添加文件。,9,6.1.3 管理工程 3.添加工程 在已建,6.2 过程,一个过程就是一段程序,一个模块由多个过程组成,一个应用程序通过过程间的相互调用构成。6.2.1 Sub过程 6.2.2 Function过程,10,6.2 过程 一个过程就是

6、一段程序,一个模块由多,6.2.1 Sub过程,Vb中的sub过程有两种:事件过程和通用过程。1事件过程事件是能够被对象(窗体和控件)识别的动作。事件过程由vb自行声明,为一个事件所编写的程序代码事件过程。事件过程分为窗体事件过程和控件事件过程。,11,6.2.1 Sub过程 Vb中的sub过程有,6.2.1 Sub过程,语法:Private Sub Form_事件名(参数列表)局部变量和常数声明语句块End Sub说明:不管窗体是什么名字,但在事件过程中都使用“Form _事件名”。窗体过程前面的声明都是Private,表示这个窗体过程只能在窗体模块中使用。在Sub和End Sub之间的语句

7、块,称为程序体或过程体。,1事件过程,(1)窗体事件过程,12,6.2.1 Sub过程语法:1事件过程(1)窗体事件,6.2.1 Sub过程,语法:Private Sub 控件名_事件名(参数列表)局部变量和常数声明语句块End Sub,(2)控件事件过程,控件的事件过程名定义为“控件名_事件名”。,13,6.2.1 Sub过程语法:(2)控件事件过程控件的事,6.2.1 Sub过程,(1)定义Private|Public Static Sub 过程名(参数列表)局部变量和常数声明语句块Exit Sub语句块End Sub,2.通用过程,Sub过程不能嵌套定义,但是可以嵌套调用。,14,6.2

8、.1 Sub过程(1)定义2.通用过程,6.2.1 Sub过程,参数列表:类似于变量声明,列出了从调用过程传递来的参数值,称为形式参数(简称形参),多个形参之间则用逗号隔开,形参的定义如下:ByVal|ByRef 变量名()As 数据类型,形 式 参 数 表,15,6.2.1 Sub过程参数列表:类似于变量声明,列出了,6.2.1 Sub过程,(2)建立通用过程 创建通用过程的方法有两种:一是利用“工具-添加过程”对话框,二是在代码窗口中直接输入。,添加过程对话框,16,6.2.1 Sub过程(2)建立通用过程添加过,6.2.1 Sub过程,例如:Public Sub sub1()Form2.

9、Show Form1.HideEnd Sub,17,6.2.1 Sub过程例如:17,6.2.2 Function过程,Function过程与Sub过程的区别:Function过程可以返回一个值到调用的过程。1.函数定义语法:Private|Public Static Function 函数名(参数列表)As 数据类型局部变量和常数声明函数名=表达式Exit Function语句块函数名=表达式 End Function,18,6.2.2 Function过程 Function过,6.2.2 Function过程,2.建立函数过程 建立函数过程的方法与建立通用过程的方法相同,选择“工具”菜单的

10、“添加过程”菜单项,然后在“添加过程”对话框中输入过程名,在“类型”选项中“函数”类型。,添 加 过 程 对 话 框,19,6.2.2 Function过程2.建立函数过程添 加,6.2.2 Function过程,【例】计算圆面积的Function过程cir:Function cir(r As Single)As Single Const pi As Single=3.1415926 cir=pi*r 2End Function,20,6.2.2 Function过程【例】计算圆面积的Func,6.3 过程的调用,6.3.1 调用Sub过程6.3.2 调用Function过程,21,6.3 过

11、程的调用6.3.1 调用Sub过程21,6.3.1 调用 Sub过程,调用Sub过程的两种方法:1使用Call语句调用过程 Call语句的格式为:Call 过程名(实在参数表列)2.将过程名作为语句使用(直接使用过程名)如果省略 Call 关键字而直接将过程名作为语句使用,也必须省略实在参数表列 外面的括号,参数和过程名用空格隔开。过程名 实在参数表列,22,6.3.1 调用 Sub过程 调用Sub过程的两种方,6.3.1 调用 Sub过程,1.调用Sub 事件过程Sub 事件过程可以由事件自动调用或者在同一模块中的其它过程中使用调用语句来调用。Private Sub Form_Click()

12、Call Command1_ClickEnd Sub或者:Private Sub Form_Click()Command1_ClickEnd Sub例6-1,23,6.3.1 调用 Sub过程1.调用Sub 事件过程Su,6.3.1 调用 Sub过程,2.调用Sub 通用过程 调用Sub 通用过程的语法与调用Sub 事件过程相同。不同的是,通用过程只有在被调用时才起作用,否则不会被执行。Public Sub sub1()Form2.Show Form1.HideEnd SubPrivate Sub Form_Click()Call Sub1End Sub,24,6.3.1 调用 Sub过程2.

13、调用Sub 通用过程24,6.3.2 调用Function过程,调用函数Function过程的方法和调用 VB 内部函数方法一样,在语句中直接使用函数名,Function 过程可返回一个值到调用的过程。,【例61】运行界面,【例62】运行界面,25,6.3.2 调用Function过程 调用函,6.4 参数的传递,在调用一个有参数的过程时,首先进行的是形参和实参的结合,实现调用过程的实参与被调用过程的形参之间的数据传递。6.4.1 形参和实参6.4.2 参数按值传递和按地址传递6.4.3 数组参数6.4.4 对象参数,26,6.4 参数的传递 在调用一个有参数的过程时,,6.4.1 形参和实参

14、,1.形参和实参,在Sub过程和Function过程中,被调过程中的参数是形参。形参列表中的各参数之间用逗号(,)分隔,形参可以是变量名或数组名,但不能是定长字符串变量。实参是在主调过程中的参数,在调用过程时实参将数据传递给形参。形参列表和实参列表中的对应变量名可以不同,但实参和形参的个数、顺序以及数据类型必须相同。否则出错。,参 数 出 错,27,6.4.1 形参和实参1.形参和实参,6.4.1 形参和实参,Public Function Function1(ByVal a As Single,ByVal b As Single)As Single 计算直角斜边函数 Dim c As Sin

15、gle c=Sqr(a 2+b 2)Function1=cEnd FunctionPrivate Sub Command1_Click()计算斜边 Dim a1 As Single,b1 As Single a1=Val(Text1.Text)b1=Val(Text2.Text)Text3.Text=Function1(a1,b1)End Sub,形式参数,实际参数,28,6.4.1 形参和实参Public Function F,6.4.1 形参和实参,2形参的数据类型,(1)实参数据类型与形参定义的数据类型不一致 对于实参数据类型与形参定义的数据类型不一致时,VB会按要求对实参进行数据类型转

16、换,然后将转换值传递给形参。,(2)没有声明形参的数据类型,运行界面,在创建过程时,如果没有声明形参的数据类型,则默认为Variant型。,29,6.4.1 形参和实参2形参的数据类型(1)实参数据类,6.4.1 形参和实参,3.使用可选的参数,VB中被调函数参数列表中的参数也可以是可选的,使用Optional 关键字来表示参数可选。,Private Function Divisor(Optional ByVal x As Variant,Optional ByVal y As Variant)As Integer求最大公约数子函数 Dim r As Integer If IsMissing(

17、x)Then x=1 If IsMissing(y)Then y=1 r=x Mod y Do While r 0 x=y y=r r=x Mod y Loop Divisor=yEnd Function,30,6.4.1 形参和实参3.使用可选的参数,6.4.1 形参和实参,在未提供可选参数时,实际上是将该参数作为具有相应数据类型的初始值来赋值,不会出现编译错误的提示。如果传递的参数是Variant型,可以在过程体中 通过IsMissing函数来测试调用时是否传递可选参数。,31,6.4.1 形参和实参 在未提供可选参数时,实,6.4.1 形参和实参,4.使用可变参数 在传递参数时,如果要求

18、参数的数目可以变化,使之可以接收任意多个参数,则在函数过程或Sub过程中一般采用如下语法:Sub(,ParamArray)注意:ParamArray后面跟Variant型的数组,ParamArray 关键字不能与ByVal、ByRef或Optional 一起使用。,32,6.4.1 形参和实参4.使用可变参数32,6.4.1 形参和实参,例如:Private Function divisor(ParamArray n()通用函数求最大公约 Dim r As Integer If UBound(n)=1 Then x=n(0):y=n(1)ElseIf UBound(n)=0 Then x=n(

19、0):y=1 End If r=x Mod y Do While r 0 x=y y=r r=x Mod y Loop divisor=yEnd Function,33,6.4.1 形参和实参例如:33,6.4.2 参数按值传递和按地址传递,1.按值传递参数,定义被调过程时形参使用ByVal关键字,或调用语句中的实参是常量或表达式,就是按值传递。,传值就是通过传送实参的值而不是传送地址的方法给被调用过程中的形参。系统把需要传送的实参复制到一个临时单元中,然后再把该临时的地址传送给形参。这样,被调用的过程并没有访问实参的地址,因而也就不会改变实参的值。,34,6.4.2 参数按值传递和按地址传递

20、1.按值传递参,6.4.2 参数按值传递和按地址传递,例如,下面都是按值传递:使用ByVal关键字定义被调过程形参 Private Function Divisor(ByVal x As Integer,ByVal y As Integer)As Integer用常量作为实参 Result=Divisor(20,50)将变量变成表达式作为实参 把变量转换成表达式的最简单的方法就是把它放在括号内,则调用过程的语句为:Result=Divisor(m),(n)被调过程的定义语句:Private Function Divisor(x As Integer,y As Integer)As Intege

21、r,35,6.4.2 参数按值传递和按地址传递例如,下面都是按值,6.4.2 参数按值传递和按地址传递,2.按地址传递参数,在定义过程时,如果没有ByVal 关键字,默认的是按地址传递参数,或者用 ByRef 关键字指定按地址传递。,按地址传递参数时,实参和形参共用一段存储单元,修改了形参的值就修改了实参的值。,36,6.4.2 参数按值传递和按地址传递2.按地址传递,6.4.2 参数按值传递和按地址传递,【例6-3】,(a)运行结果,37,6.4.2 参数按值传递和按地址传递【例6-3】(a),6.4.2 参数按值传递和按地址传递,按地址传递参数有几点说明:,(1)对于按地址传递的形参,如果

22、在过程调用时与之结合的实参是常数或表达式,则VB会给形参分配一个临时的内存单元,用按值传递的方法处理。,(2)当形参和实参数据类型不同时,按地址传递会提示出错。,(3)按地址传递参数比按值传递参数更节省内存空间,程序运行效率更高。,编译出错,38,6.4.2 参数按值传递和按地址传递 按地址传,6.4.3 数组参数,【例6-5】程序代码如下:Option Base 1Private Sub Command1_Click()单击计算按钮 Dim Score1(8)As Single,Score2(8)As Single Dim i As Integer,j As Integer 输入分数 Sco

23、re1(1)=98:Score2(1)=84 Score1(2)=82:Score2(2)=86 Score1(3)=76:Score2(3)=79 Score1(4)=66:Score2(4)=72 Score1(5)=88:Score2(5)=84 Score1(6)=82:Score2(6)=76 Score1(7)=75:Score2(7)=79 Score1(8)=60:Score2(8)=70 Text1.Text=Int(Average(Score1)*100)/100 Text2.Text=Int(Average(Score2)*100)/100End Sub,数组作为参数向过

24、程传递,数组传递只能是按地址传递。,39,6.4.3 数组参数【例6-5】程序代码如下:数组作为参,6.4.3 数组参数,子函数Average计算平均成绩,形参s为数组。Private Function Average(s()As Single)As Single 求平均成绩子函数 Dim i As Integer Dim Aver As Single,Sum As Single For i=1 To 8 Sum=Sum+s(i)Next Aver=Sum/8 Average=AverEnd Function,40,6.4.3 数组参数子函数Average计算平均成绩,形,6.4.4 对象参数

25、,在VB中对象也可以作为形参,即对象可以作为参数向过程传递,对象的传递只能是按地址传递。对象作为形参变量的类型声明为Control或控件类型。【例67】,(a)窗体FormCover的运行界面(b)窗体Form1的运行界面,(自学),41,6.4.4 对象参数 在VB中对象也可以作为,6.5 递归过程,过程具有递归调用的功能,递归调用是指在过程中直接或间接地调用过程本身。递归调用在完成阶乘运算、级数运算、幂指数运算等方面特别有效,很多数学模型和算法设计本身就是递归的。递归分为两种类型,一种是直接递归,即在过程中调用过程本身;一种是间接递归,即间接地调用一个过程。注意:递归结构构成了另外一种形如

26、循环的结构。,42,6.5 递归过程 过程具有递归调用的功能,递,6.5 递归过程,显然:上述例子会无限递归(无限执行)。所以,在递归调用时都有条件限制。,即:条件成立,调用递归,否则结束。,43,6.5 递归过程f过程调用f过程过程f1调用f2过程过,6.5 递归过程,过程的嵌套调用:,r,44,6.5 递归过程过程的嵌套调用:r主程序srrrs子过,6.5 递归过程,【例68】计算阶乘n!可以表示为:,运 行 界 面,45,6.5 递归过程【例68】计算阶乘n!可以表示为:,6.5 递归过程,5!的运算过程:,?5!,54!,43!,32!,21!,1,21,32,46,524,120,逐

27、层调用,逐层返回,到达终止条件,逐层调用结束,46,6.5 递归过程5!的运算过程:?5!54!4,6.6 变量的作用范围,6.6.1 过程级、模块级和全局变量6.6.2 静态变量6.6.3 使用同名的变量,47,6.6 变量的作用范围6.6.1 过程级、模块级和全局变,6.6.1 过程级、模块级和全局变量,1过程级变量,过程级变量是在过程中声明的也称为局部变量,其作用范围仅限于本过程,无法在其他过程中访问或改变该变量的值。用dim或static来声明。,2模块级变量,模块级变量是在窗体模块或标准模块顶部“通用”声明段定义的变量,模块级变量对该模块的所有过程都有效,在模块中的任何过程都可以访问

28、该变量,但其它模块的过程则不能访问该变量。用dim或private来声明。,48,6.6.1 过程级、模块级和全局变量1过程级变量,6.6.1 过程级、模块级和全局变量,【例6-10】使用文本框显示变量的范围。,运行界面,49,6.6.1 过程级、模块级和全局变量【例6-10】使用文本,6.6.1 过程级、模块级和全局变量,3.全局变量,全局变量的作用范围可以是应用程序的所有过程,也称为公用变量。全局变量可以在模块顶部的“通用”声明段用Public关键字声明。,语法:Public 变量名 As 数据类型,在代码窗口分别声明a为全局变量,b为模块级变量,c为过程级变量,其变量的的声明语句如图所示

29、。,声 明 变 量,50,6.6.1 过程级、模块级和全局变量3.全局变量,6.6.1 过程级、模块级和全局变量,【例6-11】,(a)Form1运行界面(b)Form2运行界面,注意:常数、固定长度字符串、数组、自定义类型与 Declare 语句不能是窗体对象模块中的 Public 成员。,51,6.6.1 过程级、模块级和全局变量【例6-11】(a,6.6.2 静态变量,局部变量可以分为动态变量和静态变量。动态变量:在本过程执行期间分配内存的变量,当一个过程执行完毕,变量所占的内存被释放,变量的值就不存在了。用Dim来声明,静态变量:在过程结束后仍保留值的变量,即其占用的内存单元未释放。当

30、以后再次进入该过程时,变量原来的值可以继续使用。用static来声明。,运行结果,52,6.6.2 静态变量 局部变量可以分为动态变量,6.6.2 静态变量,程序代码如下:Private Function Sum(n As Integer)计算求和子函数 Static f As Integer f=f+n Sum=fEnd FunctionPrivate Sub Form_Click()单击窗体 Dim i As Integer For i=1 To 5 Print&i&=&Sum(i)Next iEnd Sub,【例6-13】使用函数调用的方法计算n,在函数中使用静态变量。,运 行 结 果,

31、53,6.6.2 静态变量程序代码如下:【例6-13】使用函,6.6.3 使用同名的变量,1.不同模块中的全局变量同名,如果不同模块中的全局变量使用同一名字,则通过引用“模块名.变量名”来引用变量。,2.全局变量与局部变量同名,当全局变量与局部变量同名时,全局变量和局部变量在不同的范围内有效。在过程内部局部变量有效;而在过程外全局变量有效。,54,6.6.3 使用同名的变量1.不同模块中的全局变量同名,6.6.3 使用同名的变量,3.窗体的属性、控件名与变量同名,窗体的属性、控件、符号常数和过程都被视为窗体模块中的模块级变量。在窗体模块内和窗体中控件同名的局部变量将遮住同名控件。因此必须引用窗

32、体名称或 Me 关键字来限定控件,才能设置或得到该控件的属性值。,55,6.6.3 使用同名的变量3.窗体的属性、控件名与变量,6.7 过程的作用范围,6.7.1 调用其他模块的过程6.7.2 静态过程6.7.3 Sub Main过程,56,6.7 过程的作用范围6.7.1 调用其他模块的过程,6.7.1 调用其他模块的过程,1.局部过程和全局过程,过程的作业范围是通过定义语句来声明的。语法:Private|Public Static Sub 过程名(参数列表)Private|Public Static Function 函数名(参数列表)As 数据类型,57,6.7.1 调用其他模块的过程1

33、.局部过程和全局过程,6.7.1 调用其他模块的过程,2.调用其他模块的过程,(1)调用其他窗体模块中的过程,调用其他窗体中的全局过程,必须以窗体名为调用的前缀,即“窗体名.过程名”。,(2)调用其他标准模块中的过程,调用其他标准模块中的过程,如果过程名是唯一的则不必在调用时加模块名。,(3)调用其他类模块的过程,调用类模块中的全局过程,要求用指向该类的某一实例作前缀。,58,6.7.1 调用其他模块的过程2.调用其他模块的过程(1,6.7.2 静态过程,在过程定义中也可以添加“Static”关键字来声明过程,或选择“工具”菜单“添加过程”菜单项,在出现的对话框中选择“所有本地变量为静态变量”

34、,如图所示。,59,6.7.2 静态过程 在过程定义中也可以,6.7.2 静态过程,在过程名前加上Static关键字,表明该过程中的变量(无论它们是怎么声明的)都是静态变量。Private Static Sub Test()测试静态变量子过程 Dim x As Integer Static y As Integer x=x+1 y=y+1 Print x=&x,Print y=&yEnd Sub,60,6.7.2 静态过程 在过程名前加上Static,6.7.3 Sub Main过程,Sub Main过程称为启动过程,当应用程序启动时不希望加载任何窗体,或者在装载窗体前对一些条件进行初始化,可

35、以通过在标准模块中创建一个Sub Main 的子过程,运行工程时先运行Sub Main 子过程。,设置 Sub Main 过程为启动对象的方法是选择“工程”菜单“工程属性”菜单项,在“工程属性”属性页中的“通用”选项卡中“启动对象”框选定“Sub Main”,如图所示。,61,6.7.3 Sub Main过程 Sub,6.8 Shell函数,VB不但可以调用各种过程,而且可以调用各种可执行文件。Shell函数用来调用一个可执行文件,所有在Windows环境下可以运行的可执行文件都可以在VB中被调用。语法:Shell(命令字符串,窗口类型),窗口类型设置表,(自学),62,6.8 Shell函数

36、 VB不但可以调用各种过,6.9 程序举例,【例614】输入一个十进制数,将其转换成二进制、八进制或十六进制数。,运行界面,界面设计:用组合框Combo1输入“转换进制”,用文本框Text1输入要转换的十进制数,单击“计算”按钮Command1计算进制转换,并将结果显示在文本框Text2中。运行的界面如图所示。,(自学),63,6.9 程序举例【例614】输入一个十进制数,将其转,6.9 程序举例,【例615】使用选择法将学生成绩按从高到低排序,并显示出学生姓名和成绩。,选择法排序第一轮两两比较找出最大的数,记录下最大元素的位置Max,然后与第一个元素a0对换;第二轮将从a1开始的数中找出最大

37、的数与a1对换;每比较一轮找出未经排序的数中最大的一个进行对换;将数组中的元素一轮一轮地进行比较,直到剩下最后一个元素为止。,运 行 界 面,64,6.9 程序举例【例615】使用选择法将学生成绩按,小 结,1.Sub过程和函数的编写;2.使用保留字Call和不使用Call对过程调用的区别;3.虚实结合的两种方式:按值传送和按址传送;4.正确理解数组参数、可选参数、可变参数、对象形式参数和Shell()函数的功能;5.正确理解变量和过程的作用范围。,65,小 结1.Sub过程和函数的编写;65,作 业 1,1.编写输入一个06数字,输出星期的Function过程。2.编制判断奇偶数Function过程。输入一个整数,判断其奇偶性。,66,作 业 11.编写输入一个06数字,输出星期的Func,作 业 2,1.有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁,问第3人,又说比第2个人大2岁,问第2人,说比第1人大2岁。问第1人,他说是10岁。求第5个人多少岁?2.编制Sub过程,删除数组中指定位置的元素。,67,作 业 21.有5个人坐在一起,问第5个人多少岁?他说比,

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

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号