计算机二级考试VB常用算法难点.docxVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机二级考试VB常用算法:约数因子 1、算法说明 1) (1) (2) (3) (4) 譬如: 最大公约数:用辗转相除法求两自然数 m、 n 的最大公约数。 首先,对于已知两数 m n,比较并使得 mn m除以n得余数r ; 若r = 0,则n为求得的最大公约数, 算法结束;否则执行步骤(4) m^ n n宀r 再重复执行(2) 10 与 5 分析步骤: m=10 n=5 r=m mod n=0 所以 n(n=5) 为最大公约数 24 与 9 分析步骤: m=24 n=9 r=m mod n=6 r 丰 0 m=9 n=6 r=m mod n=3 r 丰 0 m=6 n=3 r=m mod n=0 所以 n(n=3) 为最大公约数 算法实现 Private Function GCD(ByVal m As Long, ByVal n As Long) As Long Dim temp As Long If m n Then temp = m: m = n: n = temp Dim r As Long Do r = m Mod n If r = 0 Then Exit Do m = n n = r Loop GCD = n End Function 最小公倍数 mx n*最大公约数 互质数 最大公约数为 1 的两个正整数 (3 (3) Then List1. AddItem p (3 (3) Then List1. AddItem p 解题技巧 该算法需要识记! 这种类型题目的扩展是约数和因子题型。 2、实战练习 1) 补充代码(2003春二(9)) 给定一个十进制正整数,找出小于它并与其互质的所有正整数 (所谓互质数是 指最大公约数为1的两个正整数,下图是程序执行画面)。 Optio n Explicit( (1 Optio n Explicit ( (1) Private Function gcd )As Integer Dim r As In teger r = m Mod n If r = 0 Then Elsegcd = n Else gcd = n m = n: n = r (2) End If End Fun cti on Private Sub Comma nd1_Click() Dim n As In teger, p As In teger n = Val(Text1) For p = n - 1 To 2 Step -1 If 3)( 3) (3) Next p End Sub 2) 编程题(2002秋上机试卷01) 生成一个三行八列的二维数组 A(3,8),其中前两行元素产生的方法是: 用初值 X仁26及公式Xi+1=(25 XXi+357) Mod 1024,产生一个数列: X1、X2、……、X16 其中X1~X8作为A的第一行元素;X9~X16作为A的第二行元素;A的第三行元素值取前 两行同列元素的最大公约数。最后按图示格式显示在图片框中。 计算机二级考试VB常用算法:进制转化 1、算法说明 1) 十进制正整数 m转换为R (2- 16)进制的字符串。 思路: 将m不断除r取余数,直到商为 0,将余数反序即得到结果。 算法实现: Private Function Tran (ByVai m As In teger, ByVai r As In teger) As Stri ng Dim StrDtoR As String, n As Integer Do While m o n = m Mod r m = m \ r If n 9 The n StrDtoR = Chr(65 + n - 10) StrDtoR 将余数 n 转换为字符(10 转为 A , 11 为B,依次类推,然后放到转换后字符串的前面(实现反序排列) Else StrDtoR = n StrDtoR End If Loop Tran = StrDtoR End Function 2) R (2 — 16)进制字符串转换为十进制正整数。 思路:R进制数每位数字乘以权值之和即为十进制数。 算法实现: Private Function Tran (ByVai s As String, ByVai r As In teger) As in teger Dim n As In teger, dec As In teger s = UCase(Trim(s)) For i% = 1 To Len(s) If Mid(s, i, 1) = A The n n = Asc(Mid(s, i, 1)) - Asc(A) + 10 将字母 A 转换为 10, B 转换为 11,- Else n = Val(Mid(s, i, 1)) End

文档评论(0)

laugh + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档