大学生VB程序计.ppt

  1. 1、本文档共13页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
工程训练中心 Company Logo Company Logo Company Logo Company Logo Company Logo Company Logo Company Logo Company Logo Company Logo Company Logo Visual Basic程序设计 常用的算法(一) 工程训练中心 * 学习内容 累加连乘 1 穷举法 2 递推法 3 在循环结构中最常用的算法是累加和连乘。累加是在原有和的基础上再加上一个数,并重复该操作;连乘则是在原有积的基础上再乘以一个数,并重复该操作。 【例1】求n! 【解析】n!=1×2×3×…×n 思考:如果将变量jc定义为Integer型,输入大于7的n值,运行程序,观察结果,解释原因。 累加连乘 工程训练中心 * Private Sub Form_Click() Dim n%, jc, i% n = InputBox(请输入一个自然数:) jc = 1 For i = 1 To n jc = jc * i Next Print n; !=; jc End Sub 定位输出 利用Tab等定位输出函数修饰输出。 【例2】打印7行7列由星号组成的方阵。 工程训练中心 * Private Sub Form_Click() Dim i%, j% For i = 1 To 7 ‘外层循环变量i控制行 For j = 1 To 7 ‘内层循环变量j控制列 Print *; Next Print ‘换行 Next End Sub 穷举法 穷举法又称枚举法,其基本思想是根据提出的问题,列举所有可能的情况,并用问题中给定的条件检验哪些是符合要求的解,哪些是不符合的。因此,穷举法常用于解决“是否存在”或“有多少种可能”等类型问题,通常采用循环结构来实现。? 【例3】我国古代算书《张丘建算经》中有一道著名的百钱买百鸡问题:“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一。百钱买百鸡,问鸡翁、母、雏各几何?” 【解析】根据题意,设公鸡、母鸡、小鸡各有x、y、z只,列出方程 x+y+z=100 5x+3y+z/3=100 3个未知数,只有两个方程,这是一个不定方程问题。 工程训练中心 * Private Sub Form_Click() Dim x, y, z As Integer Print cock, hen, chick For x = 0 To 20 ‘100文钱最多可买20只公鸡 For y = 0 To 33 ‘100文钱最多可买33只母鸡 z = 100 - x – y ‘小鸡的只数 If 5 * x + 3 * y + z / 3 = 100 And z Mod 3 = 0 Then Print x, y, z ‘z Mod 3 = 0保证小鸡只数是整数 Next Next End Sub 工程训练中心 * 穷举法 递推法 递推法又称“迭代法”,其基本思想是把一个复杂的计算过程转化为简单过程的多次重复。每次重复都从旧值的基础上递推出新值,并由新值代替旧值。 【例4】求斐波纳契(Fibonacci)数列:1,1,2,3,5,8…的前20项 【解析】斐波纳契(Fibonacci)数列,第1个数是“2”,第2个数是“3”,从第3个数开始,每个数都是前两个数之和,即要想知道第N个数,必须先知道第N-1个和第N-2个数,这是一个典型的递推问题。 定义如下:f(1)=1,f(2)=1,f(n)=f(n-1)+f(n-2),n2。因此,Fibonacci数列为1,1,2,3,5,8,13,21,34,…,推理为f(3)=f(2)+f(1),f(4)=f(3)+f(2),f(5)=f(4)+f(3),…,如图所示: 工程训练中心 * Private Sub Form_Click() Dim i%, f1%, f2%, f% ‘f为从第3项开始到第20项的具体每项的值 f1 = 1: f2 = 1 ‘给Fibonacci数列前两项赋初值 Print f1, f2, For i = 3 To 20 f = f2 + f1 Print f, f1

文档评论(0)

wu96658427ye + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档