VB程序设计的常用算法

上传人:桔**** 文档编号:432618122 上传时间:2023-10-18 格式:DOCX 页数:8 大小:22.78KB
返回 下载 相关 举报
VB程序设计的常用算法_第1页
第1页 / 共8页
VB程序设计的常用算法_第2页
第2页 / 共8页
VB程序设计的常用算法_第3页
第3页 / 共8页
VB程序设计的常用算法_第4页
第4页 / 共8页
VB程序设计的常用算法_第5页
第5页 / 共8页
点击查看更多>>
资源描述

《VB程序设计的常用算法》由会员分享,可在线阅读,更多相关《VB程序设计的常用算法(8页珍藏版)》请在金锄头文库上搜索。

1、VB程序设计的常用算法算法:计算机解题的基本思想方法和步骤。算法的描述:是对要解决一个问 题或要完成一项任务所采取的方法和步骤的描述,包括需要什么数据(输入什么 数据、输出什么结果)、采用什么结构、使用什么语句以及如何安排这些语句等。 通常使用自然语言、结构化流程图、等来描述算法。一、计数、求和、求阶乘等简单算法此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束 条件,更要注意用来表示计数、和、阶乘的变量的初值。例:用随机函数产生100 个0,99范围内的随机整数,统计个位上的数字分 别为 1,2,3,4,5,6,7,8,9,0 的数的个数并打印出来。本题使用数组来处理,用数组

2、 a(1 to 100)存放产生的确 100 个随机整数,数 组 x(1 to 10) 来存放个位上的数字分别为 1,2,3,4,5 ,6,7,8,9,0 的数的 个数。即个位是1的个数存放在x(l)中,个位是2的个数存放在x(2)中, 个 位是0的个数存放在x(10)。将程序编写在一个 GetTJput 过程中,代码如下:Public Sub GetTJput()Dim a(1 To 100) As IntegerDim x(1 To 10) As IntegerDim i As Integer, p As Integer产生100个0, 99范围内的随机整数,每行10个打印出来For i

3、= 1 To 100a(i) = Int(Rnd * 100)If a(i) n;(2) m 除以 n 得余数 r;(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);(4) mm, mr,再重复执行(2)。例如: 求 m=14 ,n=6 的最大公约数.m n r1462620m=inputBox(m=) n=inputBox(n=) nm=n*mIf m n Then t = m: m = n: n = tr=m mod nDo While (r 0)m=nn=rr= m mod nLoopPrint 最大公约数=, nPrint 最小公倍数=, nm/n三、判断素数只能被1

4、或本身整除的数称为素数 基本思想:把m作为被除数,将2INT ()作为除数,如果都除不尽,m就是素数,否则就不是。(可用以下程序段实 现)m =val( InputBox(请输入一个数)For i=2 To int(sqr(m)If m Mod i = 0 Then Exit ForNext iIf i int(sqr(m) ThenPrint 该数是素数ElsePrint 该数不是素数End If将其写成一函数,若为素数返回True,不是则返回False Private Function Prime( m as Integer) As BooleanDim i%Prime=TrueFor i

5、=2 To int(sqr(m)If m Mod i = 0 Then Prime=False: Exit For Next iEnd Function四、排序问题1选择法排序(升序)基本思想:1) 对有n个数的序列(存放在数组a(n)中),从中选出最小的数,与第1个数交 换位置;2) 除第1个数外,其余n-1个数中选最小的数,与第2个数交换位置;3) 依次类推,选择了 n-1 次后,这个数列已按升序排列。程序代码如下:For i = 1 To n - 1imin = iFor j = i + 1 To nIf a(imin) a(j) Then imin = jNext jtemp = a(

6、i)a(i) = a(imin)a(imin) = tempNext I2冒泡法排序(升序)基本思想:(将相邻两个数比较,小的调到前头)1) 有n个数(存放在数组a(n)中),第一趟将每相邻两个数比较,小的调到前头, 经 n-1 次两两相邻比较后,最大的数已“沉底”,放在最后一个位置,小数上升“浮 起”;2) 第二趟对余下的n-1个数(最大的数已“沉底”)按上法比较,经n-2次两两相 邻比较后得次大的数;3) 依次类推,n个数共进行n-1趟比较,在第j趟中要进行n-j次两两比较。 程序段如下For i =n- 1 To 1 step -1For j = 1 To iIf a(j) a(j+1)

7、 Then temp=a(j): a(j)=a(j+1): a(j+1)=tempEnd ifNext jNext i3合并法排序(将两个有序数组A、B合并成另一个有序的数组C,升序)基本思想:1) 先在A、B数组中各取第一个元素进行比较,将小的元素放入C数组;2) 取小的元素所在数组的下一个元素与另一数组中上次比较后较大的元素比较 重复上述比较过程,直到某个数组被先排完;3) 将另一个数组剩余元素抄入C数组,合并排序完成。程序段如下:Do While ia = UBound(A) And ib = UBound(B)当 A 和 B 数组均未比较完 If A(ia) B(ib) ThenC(i

8、c) = A(ia): ia = ia + 1ElseC(ic) = B(ib): ib = ib + 1End Ific = ic + 1LoopDo While ia = UBound(A) A数组中的剩余元素抄入C数组C(ic) = A(ia)ia = ia + 1 : ic = ic + 1LoopDo While ib a(p) and p a(p) And p a(row, Column) ThenMax = a(i, j)row = iColumn = jEnd IfNext jNext iPrint 最大元素是; MaxPrint 在第 & row & 行,; 第 & Colu

9、mn & 列七、数制转换将一个十进制整数m转换成fr(216)进制字符串。方法:将m不断除r取余数,直到商为零,以反序得到结果。下面写出一转换 函数,参数 idec 为十进制数, ibase 为要转换成数的基(如二进制的基是 2,八 进制的基是8等),函数输出结果是字符串。Private Function TrDec(m As Integer, r As Integer) As StringDim SR$, IR%SR = Do While m 0IR = m Mod rIf IR = 10 ThenSR = Chr$(65 + IR - 10) & SRElseSR =IR & SREnd

10、Ifm= m rLoopTrDec = SREnd Function1统计文本单词的个数算法思路:(1) 从文本(字符串)的左边开始,取出一个字符;设逻辑量WT表示所取字 符是否是单词内的字符,初值设为 False(2) 若所取字符不是“空格”, “逗号”, “分号”或“感叹号”等单词的分隔符,再 判断WT是否为True,若WT不为True则表是新单词的开始,让单词数Nw=Nw+l,让 WT=True;(3) 若所取字符是“空格”, “逗号”, “分号”或“感叹号”等单词的分隔符,则表示字符不是单词内字符,让 WT=False;(4) 再依次取下一个字符,重得(2)(3)直到文本结束。下面程序段是字符串strl中包含的单词数Nw = 0: Wt = FalsenL =

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建筑资料

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号