VB程序设 第八章.pptVIP

  • 2
  • 0
  • 约1.21万字
  • 约 39页
  • 2019-04-18 发布于浙江
  • 举报
Visual Basic程序设计教程 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.1 过程的定义与调用 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.2 函数和过程的参数传递 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.3 变量、过程的作用域 8.4 递归 8.4 递归 8.4 递归 8.5 常用算法与数据结构三 8.5 常用算法与数据结构三 8.5 常用算法与数据结构三 8.5 常用算法与数据结构三 8.3.3 静态变量 例[8-10] 一个窗体单击事件过程(Form_click())和一个求和函数(sum())组成的应用程序,在Form_click()过程中5次调用函数sum() Dim i As Integer, isum As Integer For i = 1 To 5 isum = sum(i) Print isum=; isum; Next Private Function sum(n As Integer) Static j As Integer Dim j As Integer j = j + n sum = j End Function 递归是指一个自己调用自己的过程。 VB允许定义一个自定义过程或函数在过程内部自己调用自己,这样的子过程或函数叫做递归子过程或递归函数。 例[8-11] 求n!的函数。 解题思路:递归就是一个自己不断调用自己的过程,直到达到递归结束条件,而后逐级返回到上一次调用过程。每一次调用自己,先把形参、局部变量、调用结束时的返回地址压栈,直到递归结束,这个过程叫做递归过程;然后一级一级从堆栈弹出参数,直到栈空,这个过程叫做回归。 定义阶乘运算如下: n!=n(n-1)! (n-1)!=(n-1)(n-2)! 若用fn(n)表示n!,则由有: 求n!的函数定义如下: public function fn(n as integer) as integer if n=1 then fn=1 else fn=n*fn(n-1) endif end function 假设n=3,则上诉函数的步骤如下: ⑴ fn(3) =3*fn(2),n=3时调用fn(2); ⑵ fn(2)=2*fn(1),n=2时调用fn(1); ⑶ fn(1)=1,n=1时求得fn(1)的值; ⑷ fn(2)=2*1,返回fn(2)的值; ⑸ fn(3)=3*fn(2)=3*2,返回fn(3)的值; 设计一个递归过程或函数应具备的条件: ⑴具备递归条件及递归的条件; ⑵递归调用递归结束的条件发展; 例[8-12]在一个三角形中,取三边的中点构成一个三角形,然后在所画的三角形的边与相邻的三角形的角构成的三角形内又画一个三角形,如此循环下去直到满足给定层次为止。 解题思路:本题中的递归子过程为triangle(x1,x2,x3,y1,y2,k),k的初值为三角形的层次,递归结束条件为k=1,在递归子过程中,每调用一次,k的值就减1。 (x1,y1) (x2,y2) (x3,y1) (u1,v1) (x2,y1) (u2,v1) 8.5.1 素数问题 求素数的方法:对于一个自然数N,用大于1小于N的各个自然数都去除N,若都除不尽,则N为素数;否则为合数。 例[8-13] 编写程序,求[500,1999]十位数字为7的素数的个数 解题思路:定义一个函数isprime(k as integer) 来判断一个数是否素数,再判断这个数的十位数是否为7。 8.5.2 加密和解密 例[8

文档评论(0)

1亿VIP精品文档

相关文档