找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
宇哥帮你零基础建设外贸独立站
宇哥淘宝虚拟类目-付费微信群
宇哥闲鱼3个月陪跑课
Access数据库-零基础入门课程
Access数据库-自用软件开发课程
Access数据库-即学即用课程
Access数据库-进销存课程
Access数据库-VBA入门课程
Access数据库-陪跑课程
查看: 685|回复: 0

编程入门练习:递归和迭代训练(VBA语言,基于Access数据库)

[复制链接]

23

主题

3

回帖

187

积分

注册会员

积分
187
发表于 2024-2-22 14:10:23 | 显示全部楼层 |阅读模式
本帖最后由 宇哥编程 于 2024-2-22 14:12 编辑

递归(Recursion)迭代(Iteration)是比较重要的算法,核心思想是自己调用自己、循环往复,把复杂问题简单化,解决一些实际问题。


本文选取一个极限问题,有助于理解自己调用自己、循环往复的解题思路,这个问题是一个数列极限,问n趋近于无穷大时,方程的极限是多少。


本文选用的极限
本题采用两种方法进行解题:一种是递归;一种是迭代。通过计算过程可以加深对这两种计算机逻辑的理解。
1.迭代法计算过程
运用迭代法计算的VBA代码如下:
  1. Function IterationA(n As Integer) '迭代法
  2. Dim i As Integer
  3.     IterationA = 2 ^ 0.5 '初始状态
  4. For i = 1 To n
  5.     IterationA = (2 * IterationA) ^ 0.5 '往前赶
  6. Next i
  7. End Function
复制代码


迭代法的计算过程演示迭代法的原理比较容易理解,计算过程就是先设定一个初始状态,然后设定一个从1到n的循环条件,每次计算结果都是下一次计算的原料。直到循环结束。

2.递归法计算过程
运用递归法计算的VBA代码如下:
  1. Function RecursiveA(n As Integer) '递归法
  2. If n = 0 Then
  3.     RecursiveA = 2 ^ 0.5 '初始状态
  4. Else
  5.     RecursiveA = (2 * RecursiveA(n - 1)) ^ 0.5 '往回搂
  6. End If
  7. End Function
复制代码


递归法的计算过程演示递归法计算过程略微复杂一些,分为两个步骤:先分解传递,再回归。不过本案例的极限算法并不太适合用递归。递归原理如下:
--The End--
作者介绍:

宇哥副业是一名央企总部员工,电力工程师。

主业是一名编程培训讲师、电商从业者和电商讲师。

目前运营有3家淘宝店、6家闲鱼店、2家抖店、1家亚马逊(没生意),以及10多个自媒体平台和2个个人网站。

目前来看,全网学习办公软件和编程的女同学几乎没有不认识我的,但我更希望全网搞电商的女同学也都认识我。

现在宇哥做电商做培训还是比较顺的,而且主业还上班,目前一年到手的收入加起来有100来个。本来可以躺平,但是由于个人情绪一直不稳定、精神状态时好时坏,因此挺爱吐吐槽、码码字,挺愿意分享的。

我未来的打算是回老家做跨境,一边过退休生活,一边赚点躺着赚钱的生意。另外我计划每年写100万字不糊弄事的精品文章,包括宇哥的人生经验、做技术培训的经验、做电商的经验、做自媒体的经验、在央企当异类跟领导对着干的经验,都分享给大家。

写作是为了流传后世,能帮助一些人最好。帮不上就当是给自己看了。

承蒙大家厚爱,很多人爱看。

谢谢大家。



您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Access进销存
access陪跑
Access即学即用
access开发
Access零基础

QQ|小黑屋|宇哥编程论坛 ( 京ICP备2022024677号-2|京公网安备11011202100561号 )

GMT+8, 2024-12-23 07:38 , Processed in 0.069377 second(s), 22 queries .

Powered by 宇哥

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表