精华内容
下载资源
问答
  • VB6.0 使用递归过程实现阶乘运算  Function F(n As Integer) As Single  If n > 1 And n  F = n * F(n - 1)  Else  F = 1  End If  End Function  Private Sub Command1_Click()  Text2.Text = F(Val(Text...
  • VB6.0过程递归调用

    2009-06-10 07:54:57
    VB6.0过程递归调用:在调用一个子程序或函数的过程中又出现直接或间接调用该子程序或函数本身,称为过程递归调用。
  • 简言之,递归过程就是子程序自己调用自己。在编程有时采用递归的思路进行编程往往能够起到事半功倍的作用。 Win95的资源管理器具有界面直观、 操作简便的特点,深受广大电脑爱好者的欢迎和喜爱。 下面就采用递归过程...
    简言之,递归过程就是子程序自己调用自己。在编程有时采用递归的思路进行编程往往能够起到事半功倍的作用。

      Win95的资源管理器具有界面直观、 操作简便的特点,深受广大电脑爱好者的欢迎和喜爱。

      下面就采用递归过程模拟Windows的资源管理器。

      递归过程实现的思路:

      由于磁盘上的目录是树形结构,而树形的节点和节点级数是不受限定的,如把目录名放入一维或多维数组中则难度较大,不易实现。如采用VB的TreeView控件的Node对象,那就比较方便了。编一子程序,给定目录,并建立当前节点,加入Node对象中,根据Dir1控件判断给定目录下是否有下级目录,如有,添加下级节点,并加入Node对象中;如无则退出子程序。即子程序的功能是:如给定目录有子目录存在,则展开当前目录求子目录。如果在给定目录展开完成后,把下级目录当成给定目录,并调用子程序进行展开,即可把给定目录下的数级子目录全部展开完毕。

      利用VB提供的TreeView控件完全可以把磁盘上的目录(包括子目录)放入Node对象中,其界面具有资源管理器的特点。把磁盘上的目录放入Node对象有多种方法,应该说采用递归方法是比较简洁的。

      实现的过程:

      1、 添加TreeView控件到窗体中:单击—“工程”—“部件”,选择Microsoft Windows

    Common Control 5.0”复选框,单击—“确定“按钮,TreeView控件即可出现在工具箱中。

      2、 在窗体中添加Drive、DirListBox、ImageList控件。

      3、 控件名及主要属性如下:

    控件及窗体名 属性 设置值 备注
    Form Name Form1
    TreeView Name TreeView
    Drive Name Drive1 获得当前电脑的盘符
    DirListBox Name Dir1
    ImageList Name ImageList 给TreeView1的Node对象图标

       实现的源程序如下:

    Dim nodx As Node

    Private Sub Form_Load()

    '在 ImageList 控件中添加一个图象。

    Dim imgX As ListImage

    ' TreeView1.ImageList = ImageList1 '初始化ImageList。

    Set imgX = ImageList1.ListImages.Add(, , _

    LoadPicture("c:my documents72.bmp"))

    TreeView1.ImageList = ImageList1 '初始化ImageList。

    TreeView1.LineStyle = tvwRootLines

    TreeView1.Style = tvwTreelinesPlusMinusPictureText

    Dim DriverCount As Integer

    Dim GivePath As String

    On Error Resume Next

    '创建根节点

    Set nodx = TreeView1.Nodes.Add(, , "本人电脑", "本人电脑", 1)

    For DriverCount = 0 To Drive1.ListCount - 1

    Set nodx = TreeView1.Nodes.Add("本人电脑", tvwChild, _

    Drive1.List(DriverCount) + "", _

    Drive1.List(DriverCount), 1)

    GivePath = Drive1.List(DriverCount) + ""

    Call SSplitNode(GivePath)

    Next DriverCount

    End Sub

    Sub SSplitNode(GivePath As String) ‘子过程

    '把给定目录下的子目录全部加入Node对象中

    Dim SDI As Integer

    Dim SDCount As Integer

    Dim DString(1000) As String

    ‘以下为展开给定目录的下级子目录

    Dir1.Path = GivePath ‘给定目录

    SDCount = Dir1.ListCount ‘利用Dir1控件判断是否有下级目录

    If SDCount = 0 Then Exit Sub

    ‘如无同退出子程序,即为递归出口。否则会形成死循环。

    For SDI = 0 To SDCount - 1

    DString(SDI) = Dir1.List(SDI)

    Set nodx = TreeView1.Nodes.Add(GivePath, tvwChild, _

    DString(SDI), FOnlyPath(DString(SDI)), 1)

    Next SDI

    ‘调用递归(子程序自己调用自己)

    For SDI = 0 To SDCount - 1

    Call SSplitNode(DString(SDI))

    Next SDI

    End Sub

    Function FOnlyPath(DString As String) As String

    '功能是去掉上级目录,只留下当前目录名

    'DString为给定的全路径目录名

    If DString = "" Then Exit Function

    Dim DLength As Integer

    DLength = Len(DString)

    Dim DD As Integer

    For DD = DLength To 1 Step -1

    If Mid(DString, DD, 1) = "" Then Exit For

    Next DD

    FOnlyPath = Mid(DString, DD + 1)

    End Function

      本程序在Win95,VB5.0中文版下通过。

    [@more@]

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-925237/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/8781179/viewspace-925237/

    展开全文
  • vb实现递归操作HANNO

    2009-11-30 09:34:53
    运用vb实现递归操作HANNO 动态实现调用过程
  • VB函数递归问题

    2020-08-30 22:16:20
    这个程序的关键在于,理解被调函数p1,满足n mod 2=1 执行p1=x*p1(x,n\2),下面除了最后一步不是,全是满足这个条件的执行过程, p1(3.0,7) -->3.0p1(3.0,3)–>3.03.0p1(3.0,1)–>3.03.03.0p1(3.0,0)–>...

    在这里插入图片描述

    首先说明一下,这个程序是有问题的,mod运算,前面n没写进去

    这个程序的关键在于,理解被调函数p1,满足n mod 2=1 执行p1=x*p1(x,n\2),下面除了最后一步不是,全是满足这个条件的执行过程,

    p1(3.0,7) -->3.0xp1(3.0,3)–>3.0x3.0xp1(3.0,1)–>3.0x3.0x3.0xp1(3.0,0)–>3.0x3.0x3.0x1=27

    取模运算、if选择语句,自定义函数执行过程,具备这些知识点,这题就没问题了

    关注划地课堂,你会发现编程如此简单!如此有趣!哈哈哈哈哈…

    展开全文
  • VB递归调用程序

    2019-03-02 14:20:58
    Private Sub Command1_Click()  Dim x As Integer  x=Val(InputBox(“请输入一个整数”))  fun(x) End Sub Private Sub fun(x As Integer) ... If x Mod 2=0 Then fun(x / 2) ...解析:fun过程是...

    Private Sub Command1_Click()
      Dim x As Integer
      x=Val(InputBox(“请输入一个整数”))
      fun(x)
    End Sub
    Private Sub fun(x As Integer)
      If x Mod 2=0 Then fun(x / 2)
      Print x;
    End Sub
    问题:当输入6时,窗体如何显示?
    解析:fun过程是一个递归过程,它的结束条件是参数值为奇数。
    第一次调用,参数值为6,是偶数所再次调用fun过程,这次参数为6/2=3,是奇数,不再调用自身,接着执行下一句输出参数值即3,然后返回第一次调用过程中执行下一句输出第一次调用参数值,即6。
    因此程序会输出3 6。

    展开全文
  • 递归算法在VB程序设计中的实现 摘 要:递归是计算机科学的一个重要概念,递归算法是程序设计中经常采用和有效的编程方法。用递归设 计的程序结构比较简洁和清晰,但递归算法是较难理解和掌握的,因此,对递归算法的概念...
  • 主要内容是,自定义函数过程和子过程声明与调用的语法格式、参数含义及功能特性;三种参数传递方式(值传递、地址传递、数组传递)的应用;嵌套调用和递归调用的执行流程以及递归过程的特点
  • 数据表结构如下: 会员ID 上一级ID 会员金额 1 0 100 2 1 50 ...--存储过程大致如下: ...SELECT convert(varchar(10),上一级ID) + '|' + ...在C#或VB.NET程序中,怎么循环执行这个存储过程,上级返回0才退出这个循环。
  • 摘至:http://dev.csdn.net/author/shadowsky/231d27652a414acba8e0e03260ad4339.html首先表结构...写个存储过程 GetTreeview 这个不用我说了吧下面用到 为了速度缓存DataTable Public Function GetTreeTable()...

    摘至:http://dev.csdn.net/author/shadowsky/231d27652a414acba8e0e03260ad4339.html

    首先表结构如下
    表名 Test
     

     

    写个存储过程 GetTreeview

    这个不用我说了吧下面用到  

    为了速度缓存DataTable

            Public Function GetTreeTable() As DataTable

                    Dim dt As New DataTable()

                    dt = HttpContext.Current.Cache("Treeview")

                    If dt Is Nothing Then

                        Dim ConnAs New SqlConnection

                        Dim clsConnDatabase As New ConnectionDatabase

                        Conn = clsConnDatabase.ConnDatabase

     

                        Dim Command As New SqlCommand

                        Command.Connection = Conn

                        Command.CommandText = "GetTreeview"

                        Command.CommandType = CommandType.StoredProcedure

                        Command.ExecuteNonQuery()

     

                        Dim da As New SqlDataAdapter(Command)

                        dt = New DataTable()

                        da.Fill(dt)

                        HttpContext.Current.Cache.Insert("Treeview", dt)

                    End If

                    Return dt

                End Function

     

    这里是主要阿

    Public Sub PopulateNodes(ByVal nodes As TreeNodeCollection, Optional ByVal intParentID As Int32 = 0)

                    Dim dt As New DataTable()

                    dt = clsWebForms.GetTreeTable()

                    Dim strExpression As String

    strExpression = "[parentID] = " & intParentID

                    Dim foundRows() As DataRow

                    foundRows = dt.Select(strExpression)

     

                    Dim I As Integer

                    For I = 0 To foundRows.GetUpperBound(0)

                        Dim tn As New TreeNode()

                        tn.Text = foundRows(I).Item(TableName).ToString()

                        tn.Value = foundRows(I).Item("ID").ToString()

                        Dim dr() As DataRow

                        dr = dt.Select("[parentID] = " & tn.Value)

                        If dr.GetUpperBound(0) > -1 Then

                            tn.PopulateOnDemand = True

                        End If

                        nodes.Add(tn)

                    Next

                End Sub

     

    建立WebForm 放入Treeview

        Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

            If Not Page.IsPostBack Then   

    PopulateNodes(TreeView1.Nodes, 0)

            End If

        End Sub 

        Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.TreeNodeEventArgs) Handles TreeView1.TreeNodePopulate

                    PopulateNodes(e.Node.ChildNodes, e.Node.Value)

        End Sub

    转载于:https://www.cnblogs.com/EasyData/archive/2007/07/17/820534.html

    展开全文
  • 递归函数

    2020-06-30 21:55:31
    递归是一种算法,不是VB或是哪一种编程语言的………… 所谓递归就是在过程中调用过程本身。一般用递归的代码都能用循环来代替。但递归的代码简洁,比循环更容易看懂。 不过由于递归会不断的堆栈要花费相当大的空间与...
  • 过程和函数是VB编程语言中的一个重要内容,它包括事件过程、自定义过程和函数,内容复杂,特性繁多,要想全部掌握有一定困难。好在选考VB主要考查算法分析和应用,只要求掌握基本的语法,能用VB语言实现常见的算法...
  • 第4章 过程与模块 本章学习目标 掌握事件过程 掌握Sub过程的定义与调用 掌握Function过程的定义与调用 掌握实际参数与形式参数 熟悉按值传递与按地址传递参数的特点 了解递归函数的执行过程 4.1 过程的概述 过程通常...
  • “点个关注,养成习惯,带你python爬虫的过程中学习前端”JavaScript中的深拷贝和浅拷贝是前端面试中频繁被问到的一道题, 于是我也自己去查阅了一些资料, 然后动手敲了代码测试了一下。那么我就用我的理解,给大家...
  • 递归的感悟

    2017-04-04 13:47:00
    求n阶乘的VB函数过程。 Private Function F( byval n As Integer ) As long If n=1 Then F=1 Else: F=n*F(n-1) End If End Function 让我们来跟踪这个程序的计算过程,令n=4调用这个函数,用...
  • vb讲义课件

    2012-07-29 16:38:31
    Visual Basic 程序设计概述 语言基础 基本的控制结构顺序结构 选择结构 For循环 Do循环 VB辅助控制语句、数组和自定义函数 使用过程、函数和递归程序及常用算法设计 VB程序调试及编译方法 常用控件
  • vb.net遍历全盘文件

    2020-08-05 17:10:53
    1、遍历全盘采用递归过程,语句简洁,并有简要说明。 2、带计时功能 3、使用全局变量控制程序运行,按停止按钮后可以立即停止
  • VB 考试 习题 复习

    2009-06-13 17:09:23
    . 1. VB提供了结构化程序设计的3种基本结构,这3种基本结构是 (A)递归结构,选择结构,循环结构 (B)选择结构,过程结构,...(A)递归结构(B)选择结构(C)过程结构(D)输入、输出结构 3.下面正确的赋值语句是
  • VB6.0第六课

    2019-10-25 08:33:12
    1、递归:在过程中直接或间接地调用过程本身,即自己调用自己的过程。 如: function F(n as integer) as single if n>1 and n<=30 then F=n*F(n-1) else F=1 end if end function Private sub command...
  • VB课程设计俄罗斯方块

    热门讨论 2011-02-25 10:46:55
    方块在下落的过程中会自动判断每一行方块的visible属性,如果全部为true时,就会将这一行小方块的visible属性全部变成false,在将上面的小方块向下移动,利用for语句进行循环判断,将所有这样情况的行改变小方块...
  • vb6.0文件搜索查找程序实例,操作时选取文件夹所在的路径,选择文件所在范围,输入要查找的文件名进行搜索,调用SearchDirs函数查找文件,声明搜索文件要用到API函数和变量类型,递归调用Searchdirs自定义过程,实现...
  • vb6.0从入门到精通

    2012-12-23 12:54:31
    内容包括Visual Basic环境和帮助系统、调整窗体、建立用户界面、程序流的控制、内部函数、编写函数和过程、用代码或控件组织信息、创建项目、VB对象及面向对象程序设计、完成界面、测试及优化的工具和技术、图形编辑...
  • 自动计算数独VB源码

    2015-06-28 12:38:41
    软件是VB6.0开发的,只用到MSHFLXGD控件用于显示。程序只处理各点有两种可能值的情况,对只存在三种可能值的情况未进一步处理,该情况非常极端了。 软件可以保存布局,可选择预存的关数,退出时自动保存界面状态。...
  • 重点介绍了在游戏过程中各事件的处理,其中又以鼠标事件和清除未靠近地雷区方块这两方面最为最要,鼠标事件是利用鼠标所发出的信息了解使用者的意图,进而做出相对应的动作,而清除未靠近地雷区方块由于引进了“递归...
  • 本文档为VB过程和函数的使用实例。 Sub过程、函数过程、参数的传递、过程的嵌套与递归、变量和过程的作用域等。
  • 本项目根据经典递归游戏汉诺塔,模拟盘子的移动过程,并记录移动次数和时间。也可选择暂停或结束。界面友好且直观,对理解汉诺塔玩法很有帮助。由于递归深度的限制,程序局限于7个盘子以内。
  • 本课件是针对高二算法设计“算法与程序设计”选修模块第三单元的内容而设计的,采用了理论知识与实际动画相结合的方式,具体的讲解了“算法的程序实现”这一节的内容,并用递归算法实现了汉诺塔问题程序设计。...
  • 今天由于试验一个数据,没有采取递归方法,做了一个简单的笨笨的字符串组合程序, 设了一个退出标志 stopflag 为true时跳出循环,可程序就是不跳出,所以造成窗体退不出,大家给看看,问题出在哪里? Option ...

空空如也

空空如也

1 2 3 4
收藏数 61
精华内容 24
关键字:

vb递归过程