资源简介 (共22张PPT)就像是一场梦,醒了还有97天还是很感动…….泛黄的校服,凌乱的头发别人的高考还有充值一次的机会你们尽情吃瓜看戏,不懂时间的流逝放下手中的游戏,来看看直播的小应一起来开一场学习的party小应喊你来学习!00 回顾事件处理过程每一个事件触发的一段程序叫事件处理过程Sub 对象_事件(参数表)语句块End SubPrivate Sub Form_Load()Msgbox(“欢迎使用”)End SubPrivate Sub Command1_Click()Text1.Text=“123”Text2.Text=“321”End Sub每一段事件处理过程都是一个小小的功能模块,各个过程组合协作,共同完成程序实现00 回顾自定义函数例:Function jdz(x as integer)As integerIf x>=0 Then jde jdz=-xEnd Function开始声明函数自定义函数的名称输入变量的数据类型该函数结果的数据类型声明函数结束语句块注意:①在语句块中,一定要用形如“函数名=表达式”的语句,其作用是将语句块的计算结果作为函数返回值,送到函数的调用点上。②采用了自定义函数的程序,其程序执行次序是先执行主程序,若主程序调用了自定义函数,再执行被调用的自定义函数。00 回顾自定义函数Function 函数名(参数表)As 类型名语句块End Function例:Function jdz(x as integer)As integerIf x>=0 Then jde jdz=-xEnd Function开始声明函数自定义函数的名称输入变量的数据类型该函数结果的数据类型声明函数结束语句块00 作业讲解4.在VB中,有如下程序:Function f(x As Integer) As Integerf =Int(Abs( x)/3)+0.1End FunctionPrivate Sub Command1_Click()Dim As Singley=f(-9)Text1.Text=Str(y)End Sub运行该程序,单击命令按钮Command1,文本框Text1中显示的是( )A.-9 B.9 C 3.1 D.3正确率:33.13%00 作业讲解5.某VB应用程序的两个事件过程如下:Private function out(x as Integer, y as Integer, z as Integer) as IntegerDim temp as integerIf x>y then temp=y else temp=xIf temp>z then temp=zOut=tempEnd functionPrivate sub command1_Click()Dim a as integer, b as integer, c as integera=1:b=2:c=3Text1.text=out(a,b,c)End sub程序运行时,单击命令按钮command1后,文本框text1中显示的内容是( )A、0 B、1 C、2 D、3正确率:55.21%00 作业讲解6.两个素数的差为2,称此两个素数为素数对。下列程序是找出100以内的素数对,并成对地在列表框List1中显示结果,其中函数s判断参数m是否为素数。Function s(m) As BooleanDim i As IntegerS=TrueFor i=2 To Int( Sqr(m))If ① Then s=False: Exit ForNext iEnd FunctionPrivate Sub Command1_Click( )Dim i As IntegerP1=s(3)For i= 5 To 100 Step 2p2 = s(i)If ② Then List1.Addltem Str(i - 2) + “ ” + Str (i)p1 = ③Next iEnd Sub从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?老和尚讲故事从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?递归算法昌化中学 应彤鑫01 递归算法要求计算n的阶乘f(n)=n*(n-1)*(n-2)*…*1,借助自定义函数尝试完成代码。思考01 递归算法要求计算n的阶乘f(n)=n*(n-1)*(n-2)*…*1,借助自定义函数尝试完成代码。思考解:∵f(n)=n*(n-1)*(n-2)*…*1∵f(n-1)=(n-1)*(n-2)*…*1∴f(n)=n*f(n-1)同理:f(n-1)=(n-1)*f(n-2)依次类推:f(2)=2*f(1)而f(1)=1递归01 递归算法递归算法是程序设计中的常用方法,其基本思想是将一个复杂问题逐步化解为规模较小的简单问题的算法。是一种以大化小,以小化了的算法模式。例如:求5的阶乘f(5)递归的展开:f(5)=5*f(4)f(4)=4*f(3)f(3)=3*f(2)f(2)=2*f(1)f(1)=1递归的返回:f(1)=1f(2)=2*f(1)f(3)=3*f(2)f(4)=4*f(3)f(5)=5*f(4)01 递归算法计算n的阶乘的递归算法程序实现:①当n=1时f(1)=1②当n>1时f(n)=n*f(n-1)如果自定义一个函数f来计算n个数的阶乘,如何实现?01 递归算法计算n的阶乘的递归算法程序实现:Function f(n as single) as singleIf n<=1 Thenf=1Elsef=n*f(n-1)End IfEnd Function观察自定义函数f的运行过程,尤其要注意递归算法中,自定义函数是如何调用的从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?老和尚讲故事从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?从前有座山,山上有个庙,庙里有个老和尚,老和尚给小和尚讲故事故事是什么呢?思考:这算不算是递归?为什么?02 课堂练习1、某VB程序使用了递归函数,代码如下:Private Sub Command1_Click()Text1.Text = f(3)End SubFunction f(x As Integer) As StringIf x = 1 Then f = 1 Else f = f(x - 1) + 2End Function运行程序并点击按钮Command1后,文本框Text1中显示的内容是( )A.1 B.3 C.5 D.702 课堂练习2、运行下面程序,则程序画线处正确的语句是( )A、fx(x) B、t=fx(x) C、t=fx(y) D、t=fx(x,y)Private Sub command1_click()Dim x as integer,t as longx=val(text1.text)________________Text2.text=str(t)End subFunction fx(y as integer) as longIf y=0 thenfx=0Elsefx=int(y/2)*10+ y mod 2End if若在文本框text1中输入11,则文本框text2中显示_______________02 课堂练习1、用递归算法设计一个自定义函数s用来计算12+22+32+…+n22、用递归算法设计一个自定义函数s用来计算-1/2+1/4-1/6+1/8+…+(-1)n*1/(2n)02 课堂练习答案:Function s(x as single) as singleIf x<=1 Thens=1Elses=x^2+s(x-1)End IfEnd Function1、用递归算法设计一个自定义函数s用来计算12+22+32+…+n202 课堂练习2、用递归算法设计一个自定义函数s用来计算-1/2+1/4-1/6+1/8+…+(-1)n*1/(2n)答案:Function s(n as single) as singleIf n<=1 Thens=-1/2Elses=(-1)^n*1/(2*n)+s(n-1)End IfEnd Function下 课 ! 展开更多...... 收起↑ 资源预览