精华内容
下载资源
问答
  • 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...
  • VB 递归制作Fibonacci函数 VB 递归制作Fibonacci函数
  • 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函数递归问题

    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选择语句,自定义函数执行过程,具备这些知识点,这题就没问题了

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

    展开全文
  • 2020年计算机等级VB语言核心知识点递归过程 导语2020年计算机等级考试已经延期目前这个阶段教材应该看完一遍大家该强化一下自己对于教材考点的记忆及时查漏补缺下面微博捡捡相因菌为您精心整理了2020年计算机等级VB...
  • VB6.0过程递归调用

    2009-06-10 07:54:57
    VB6.0过程递归调用:在调用一个子程序或函数的过程中又出现直接或间接调用该子程序或函数本身,称为过程递归调用。
  • VB过程求组合数

    2010-06-07 15:06:08
    VB过程求组合数 VB过程求组合数 VB过程求组合数
  • 递归算法在VB程序设计中的实现 摘 要:递归是计算机科学的一个重要概念,递归算法是程序设计中经常采用和有效的编程方法。用递归设 计的程序结构比较简洁和清晰,但递归算法是较难理解和掌握的,因此,对递归算法的概念...
  • vb.net遍历全盘文件

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

    千次阅读 2008-03-13 09:49:00
    阶乘 ‘写个简单的例子,所谓阶乘的递归 Private Sub Command1_Click()Sub Command1_Click() Debug.Print dg(7) End Sub Function dg()Function dg(n) If n = 0 Then dg = 1 Else dg = dg(n...

    1。阶乘

     

    ‘写个简单的例子,所谓阶乘的递归 

    Private   Sub Command1_Click() 
        Debug.Print dg(
    7
    End Sub
     

    Function dg(n) 
        
    If n = 0 Then 
            dg 
    = 1 
        
    Else 
            dg 
    = dg(n - 1* n 
        
    End If 
    End Function
     

     

    2。快速排序法

     



    Private   Sub Command1_Click() 
    Dim a(10000As Long 
    Dim ii As Long 
    For ii = 0 To 10000 
    a(ii) 
    = Fix(10000 * Rnd + 10
    Next 

    Call QkSort(a, 0UBound(a)) 


    For ii = 0 To UBound(a) 
    Debug.Print a(ii) 
    Next 

    End Sub
     
    ' 升序快速排序法 
    Sub QkSort(Ay() As Long, Io As Long, Jo As Long

    Dim I As Long, J As Long, X As Long, tp As Long 
    Dim bQ As Boolean 'i到j跳跃开关 
      '初始化 
      I = Io 
      J 
    = Jo 
      X 
    = Ay(I) 
       
      
    '一轮排序 
    Do While I  < J 
        
    If Not bQ Then 
            
    If Ay(J)  < X Then 
            tp 
    = Ay(J): Ay(J) = Ay(I): Ay(I) = tp 
            bQ 
    = True 
            
    Else 
            J 
    = J - 1 
            
    End If 
        
    Else 
            
    If Ay(I) >  X Then 
            tp 
    = Ay(J): Ay(J) = Ay(I): Ay(I) = tp 
            bQ 
    = False 
            
    Else 
            I 
    = I + 1 
            
    End If 
        
    End If 
     
    Loop 
     
    '递归 
      If I  < Jo Then QkSort Ay, J + 1, Jo '注意靠后的要加1 
      If Io  < J Then QkSort Ay, Io, I 
    End Sub

     

    3。删除空目录

     


    Sub DeleteEmptyFolders(ByVal recentlyPath As String)
    '''''''''''''''''''''''''''''''''''''''''''''''
    '
    删除指定目录下的所有目录.
    '
    recentlyPath参数:指定目录
    '
    ''''''''''''''''''''''''''''''''''''''''''''''
    Dim fsoFolder As Folder '一个由recentlyPath指定的目录对象
    Dim fsoI As Folder
    Dim Fso As FileSystemObject '文件系统对象
    Set Fso = New FileSystemObject

    '交出控制权,及除错
    DoEvents
    On Error Resume Next

    '如果目录不存在的话,退出子过程
    If Not Fso.FolderExists(recentlyPath) Then Exit Sub
    Set fsoFolder = Fso.GetFolder(recentlyPath) '创建一个folder

    '对所有的子目录递归
    If fsoFolder.SubFolders.Count > 0 Then
       
    For Each fsoI In fsoFolder.SubFolders
         DeleteEmptyFolders fsoI.Path 
    '递归
       Next

    '删除空目录
    ElseIf fsoFolder.Files.Count = 0 Then
        fsoFolder.Delete
    End If
    end sub


     
     

     

    4.搜索文件

     


    Private   Sub Command1_Click()
    Dim aay() As String
    Call SeachFile(aay, "e:vbAPI""*.txt,*.gif")
    Dim i As Integer
    For i = 1 To UBound(aay)
    Debug.Print aay(i)

    Next

    End Sub

    ' ==================================================
    '
    搜索文件子过程
    Sub SeachFile(Ay() As StringByVal Path As String, _
                  
    Optional ByVal strSc As String = "")
    'Ay():返回所有符合搜索条件的文件,Ay(0)不是,从Ay(1)开始
    '
    path:搜索路径
    '
    strSc:搜索条件,用逗号分开,比如 "*.txt,win*.*"
    '
    ====================================================
    Static scType() As String '搜索条件字串
    Dim i As Long

    DoEvents
    On Error Resume Next

    '初始化
    If strSc <> "" Then
      scType 
    = Split(Trim(strSc), ",")
      
    ReDim Preserve Ay(0)
    End If
    If Right(Path, 1<> "" Then Path = Path & ""


    '对当前的目录进行文件搜索
    For i = 0 To UBound(scType)
       Ay(
    0= Dir(Path & scType(i), vbNormal Or vbReadOnly Or vbHidden)
       
    Do While Ay(0<> ""
             
    ReDim Preserve Ay(1 + UBound(Ay))
             Ay(
    UBound(Ay)) = Path & Ay(0)
             Ay(
    0= Dir
       
    Loop
    Next

    '列举出所有子目录
    Dim subPath() As String '存放子目录数组
    ReDim subPath(0)
    subPath(
    0= Dir(Path, vbDirectory)
     
    Do While subPath(0<> ""
          
        
    '去掉当前目录,和上级目录
        If subPath(0<> "." And subPath(0<> ".." Then
           
           
    '判断是否是目录
           If (GetAttr(Path & subPath(0)) And vbDirectory) = vbDirectory Then
            
    ReDim Preserve subPath(1 + UBound(subPath))
            subPath(
    UBound(subPath)) = Path & subPath(0)
           
    End If
        
        
    End If
        subPath(
    0= Dir
    Loop

    '如果有子目录的话,进行递归
    If UBound(subPath) > 0 Then
      
    For i = 1 To UBound(subPath)
         
    Call SeachFile(Ay, subPath(i))
      
    Next
    End If

    End Sub


    展开全文
  • 简言之,递归过程就是子程序自己调用自己。在编程有时采用递归的思路进行编程往往能够起到事半功倍的作用。 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/

    展开全文
  • 主要内容是,自定义函数过程和子过程声明与调用的语法格式、参数含义及功能特性;三种参数传递方式(值传递、地址传递、数组传递)的应用;嵌套调用和递归调用的执行流程以及递归过程的特点
  • Java局域网通信——飞鸽传书源代码 28个目标文件 内容索引:JAVA源码,媒体网络,飞鸽传书 Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java...
  • VB6.0通用遍历所选文件夹及其多重子文件夹操作,直接使用Command按钮过程可以操作,无需其他额外控件。新建一个窗体,添加一个Command1按钮,添加一个listbox控件,名称为list1,打开一个Excel空白文件(如不需要请...
  • VB求n的阶乘

    2013-08-10 17:40:51
    运用vb窗体程序求解n的阶乘,有详细代码,可以在vb上直接运行,试试看吧
  • vb.net自带进制算法,但我们这里要学习的是递归算法啊!代码中还有循环算法及vb.net自带进制算法 Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load txtN.Text =...
  • 推理过程 这里假设我们希望永远都是0位置先报数,这个假定逻辑很重要。 按照这个假定逻辑,我们会对整个环形链表逆时针旋转m个位置,也就是3个单位,位置3移动到了0位置。 这样就把10人游戏的第二轮,转换成了9...
  • 解决递归栈溢出

    千次阅读 2018-11-13 22:01:00
    解决递归调用栈溢出的方法是通过尾递归优化,尾递归是指,在函数返回的时候,调用自身本身,并且,return语句不能包含表达式。这样,编译器或者解释器就可以把尾递归做优化,使递归本身无论调用多少次,都只占用一个...
  • 什么是递归 方法自身调用身就是递归。 但是,递归算法很耗费栈内存,可以不用的时候尽量别用。 递归必须有结束条件,否则会发生栈内存溢出错误;即使有了结束条件,也可能发生栈内存溢出错误,因为递归太深了。 原理...
  • vb实现递归操作HANNO

    2009-11-30 09:34:53
    运用vb实现递归操作HANNO 动态实现调用过程
  • C语言

    万次阅读 多人点赞 2019-12-18 23:01:50
    在调用一个函数的过程中又出现直接或间接地调用该函数本身称为函数的递归调用 149.在一个函数内部定义的变量是内部变量,称为局部变量 150.在函数之外定义的变量称为外部变量,是全局变量 151.从变量的作用域角度来...
  • 问题描述 样例输入 一个满足题目要求的输入范例。 3 10 样例输出 与上面的样例输入对应的输出。 数据规模和约定  输入数据中每一个数的范围。  例:结果在int表示时不会溢出。 解题思路1: ...g...
  • 今天在进行数据排序时候用到...如果一个函数中所有递归形式的调用都出现在函数的末尾,我们称这个递归函数是尾递归的。当递归调用是整个函数体中最后执行的语句且它的返回值不属于表达式的一部分时,这个递归调用就是
  • 冒泡排序和递归

    2021-01-11 19:00:14
    能够将多次重复计算的过程用一小段代码表示出来,让代码看起来更为简洁 缺点: 递归是一个一次或多次调用函数本身的过程,而在函数调用时,都要在栈内存中分配空间来存储变量、参数、地址等,这些都回消耗时间和...
  • VB讲课笔记09:过程

    2018-03-13 12:00:13
    VB讲课笔记09:过程一、键盘与鼠标事件过程用户对程序界面的操作都是通过键盘和鼠标完成的。 (一)键盘事件1、KeyPress事件(1)触发条件 用户按下并且释放一个会产生ASCII码的键时被触发。(2)过程格式(3)...
  • 利用递归方法求5!

    2020-10-16 16:44:52
    /*利用递归方法求5!。*/ #include<iostream> using namespace std; int fac(int c) { if(c==1) return 1; else return fac(c-1)*c; } int main() { int num; fac(5); cout<<fac(5)<<...
  • C#基础教程-c#实例教程,适合初学者

    万次阅读 多人点赞 2016-08-22 11:13:24
     完全面向对象:不象C++语言,即支持面向过程程序设计,又支持面向对象程序设计,C#语言是完全面向对象的,在C#中不再存在全局函数、全局变量,所有的函数、变量和常量都必须定义在类中,避免了命名冲突。...
  • 递归算法求5的阶乘

    2019-11-02 15:11:25
    public class FactorialMain { ... //用递归求5的阶乘 int number=factorial(5); System.out.println(number); } static int factorial(int number) { //如果是1的话就返回1结束,否则...
  • 摘至:http://dev.csdn.net/author/shadowsky/231d27652a414acba8e0e03260ad4339.html首先表结构...写个存储过程 GetTreeview 这个不用我说了吧下面用到 为了速度缓存DataTable Public Function GetTreeTable()...
  • 日期:2021年04月23日 作者:Commas 注释:网络上没有一个比较系统的VB6或者VBA的教程,于是打算利用中午休息的时间写一写这方面...文章目录一、前言二、关键字之修饰符介绍三、过程 Sub1)无参过程 Sub2)带参过程 Su.

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,525
精华内容 2,210
关键字:

vb递归过程