计算机等级考试二级VB常用算法SFA.doc_第1页
计算机等级考试二级VB常用算法SFA.doc_第2页
计算机等级考试二级VB常用算法SFA.doc_第3页
计算机等级考试二级VB常用算法SFA.doc_第4页
计算机等级考试二级VB常用算法SFA.doc_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1求任意自然数n的阶乘:方法一 Do循环法S=1For I=1 To N S=S*INext I方法二 For循环S=1:T=1Do While T=5S=S*TT= T +1Loop2闰年判断Y = Text1.TextIf (Y Mod 4 = 0 And Y Mod 100 0) Or Y Mod 400 = 0 ThenMsgbox Y & 是闰年ElseMsgbox Y & 不是闰年End If3求两个自然数m、N的最大公约数hmax和最小公倍数hminM=Text1.Text : N=Text2.Text M和n可通过其他途径赋值mn=M*N 暂存m和n的乘积,以便后面算最小公倍数If MN Then T=M :M=N :N=TEnd IfR=M Mod NDo While R0M=NN=RR=M Mod NLoopHmax=NHmin=Mn/Hmax4. 素数判断素数判断方法一 提前退出法N=Inputbox( “输入=3的正整数”)For I=2 To N1 或sqr(N) ,提前退出法If (N Mod I =0) Then Exit ForNext IIf IN-1 Then Print N; “是素数”ElsePrint N; “不是素数”End If方法二 标志法N=Inputbox( “输入一个=3的正整数”)End IfF=0 F也可用逻辑型变量,标志法For I=2 To N1 或sqr(N)If (N Mod I =0) Then F=1Next IIf F=0 Then Print N; “是素数”ElsePrint N; “不是素数”End IfText2.Text = m = Val(Text1.Text) If m 0 Then 正数Text2.Text = 1ElseIf m = A And Ucase(Temp) = Z And Newword = False Then Wordnum = Wordnum + 1Newword = TrueEnd IfNext IText2.Text = Wordnum方法二 根据相邻两字符特征判断Dim A$, Tempf$, Tempb$Dim N%, Wnum%, I%A = Text1.Text A = Ltrim(Text1.Text)Wnum = 0N = Len(A)For I = 1 To N - 1 避免超出范围Tempf = Mid(A, I, 1)Tempb = Mid(A, I + 1, 1)If Wnum = 0 And Tempf Then 对第一个单词特殊处理Wnum = Wnum + 1Elseif Tempf = And Tempb ThenWnum = Wnum + 1End IfNext IText2.Text = Wnum5找出二维矩阵中的最大元素、最小元素及其所在位置Dim Dmax%, Rowmax%, Colmax% 最大值、所在行、所在列Dim Dmin%, Rowmin%, Colmin% 最小值、所在行、所在列Dim I%, J%Dmax = A(1, 1): Rowmax = 1: Colmax = 1 假设a(1, 1)最大,记录位置Dmin = A(1, 1): Rowmin = 1: Colmin = 1 假设a(1, 1)最小,记录位置For I = 1 To Ubound(A, 1) 第一维下标范围For J = 1 To Ubound(A, 2) 第二维下标范围找最大If Dmax A(I, J) ThenDmin = A(I, J)Rowmin = IColmin = JEnd IfNext JNext IPrint 最大元素:; Dmax; ,它在第; Rowmax; 行,第; Colmax; 列Print 最小元素:; Dmin; ,它在第; Rowmin; 行,第; Colmin; 列产生n个10,100范围内互不相同的数据Dim T() As Integer 过程级动态数组Dim N As IntegerForm1.ClsN = Inputbox(输入一个值)Redim T(N)RandomizeFor I = 1 To NT(I) = Int(Rnd * 91 + 10) 保证与前面的数据不等For J = 1 To I - 1If T(I) = T(J) Then I = I - 1: Exit ForNext J Next I6一维数组的排序(10个数据,升序为例)方法一 比较交换法(经典排序法)(输出可同时进行)外重循环i 控制比较的轮数提供每轮参照元素下标(1 To N-1) 内重循环j 要与参照元素比较的元素的下标(I+1 To N)For I = 1 To 9 轮数及参照元素下标For J = I + 1 To 10 与参照元素比较的元素下标 If A(I) A(J) ThenT = A(I)A(I) = A(J)A(J) = TEnd IfNext JNext I方法二 选择交换法(输出可同时进行)内、外重循环的含义和作用与比较交换法相同For I = 1 To 9K = I K记录较小元素的下标For J = I + 1 To 10If A(K) A(J) Then K = JNext JIf K I ThenT = A(I) : A(I) = A(K) : A(K) = TEnd IfNext I方法三 冒泡法排序(输出独立进行)外重循环i 控制比较的轮数(1 To N-1 ) 决定各轮要参与比较的元素的范围 内重循环j 提供每轮要与后面相邻元素进行比较的元素的下标(1to N-I )For I = 1 To 9 10 To 2 Step -1For J = 1 To 10 I 1 To I-1If A(J) A(J + 1) Then 相邻元素比较T = A(J): A(J) = A(J + 1): A(J + 1) = TEnd IfNext JNext I方法四 插入法排序绝对位置插入法:(结果的输出必须独立进行)第一重循环i 要决定位置的元素的下标( 2N-1)第二重循环j 第i个元素要插入的有序数列(1I-1)第三重循环k 当a(I)A(J)时, 后移的元素(I-1J) For I = 2 To 10N = A(I) 暂存a(I),避免冲掉For J = 1 To I - 1If N A(I-1), N原本就放在a(I)相对位置插入法:(结果的输出必须独立进行)外重循环i 要决定位置的元素的下标( 2N-1)内重循环j 第i个元素要插入的有序数列下标范围(I-1 1)For I = 2 To 10N = A(I)For J = I - 1 To 1 Step 1 反向If N A(J) ThenA(J + 1) = A(J)A(J) = NElseA(J + 1) = N 本句可不要Exit ForEnd IfNext JNext I7有序数列的插入操作(假设原数组中已存放10个数据)绝对位置插入法:S = Val(Inputbox(输入1545之间的整数)A(11) = S 提前放入For I = 1 To 10If S = A And D = Z ThenJ = Asc(D)A(J) = A(J) + 1 对应数组元素加1End IfNext IFor I = 65 To 90 输出字母及其出现的次数If A(I) 0 Then 表明对应字母出现了K = K + 1 用于控制输出格式Picture1.Print Chr$(I); =; A(I); ;If K Mod 9 = 0 Then Picture1.Print 每行输出9个End IfNext J10二分法查找(前提原数组有序,设原数组已按升序排序)Dim N%Dim Bot%, Mid%, Top%, Find As BooleanN = Val(Inputbox(请输入要查找的数据)Bot = 1: Top = 10 Find = False 是否找到的标志Do 三个分支Mid = Int(Bot + Top) / 2)If N = A(Mid) ThenFind = TrueMsgbox 在a( & Mid & ) & 找到数据 & NExit Do 可不要Elseif N A(Mid) ThenBot = Mid + 1End IfLoop Until Find = True Or Bot TopIf Find = False Then Msgbox 没找到 & N & .11字符串的加密、解密问题加密解密问题.加密规律: 小写字母: A-D,B-EW-Z,X-A,Y-B,Z-C大写字母: A-D,B-EW-Z,X-A,Y-B,Z-C其它字符不变。解密时,基于上述加密规律。加密Private Sub Command1_Click()Dim Sm1 As String, Mm1 As String, Temp1 As String * 1Dim N%, I%Sm1 = Text1.TextN = Len(Sm1)Mm1 = For I = 1 To NTemp1 = Mid(Sm1, I, 1)Select Case Temp1Case A To W, A To WTemp1 = Chr(Asc(Temp1) + 3)Case X To Z, X To ZTemp1 = Chr(Asc(Temp1) + 3 - 26)End SelectMm1 = Mm1 & Temp1Next IText2.Text = Mm1End Sub解密Private Sub Command2_Click()Dim Sm2 As String, Mm2 As String, Temp2 As String * 1Dim M%, J%Mm2 = Text3.TextM = Len(Mm2)Sm2 = For J = 1 To MTemp2 = Mid(Mm2, J, 1)Select Case Temp2Case D To Z, D To ZTemp2 = Chr(Asc(Temp2) - 3)Case A To C, A To CTemp2 = Chr(Asc(Temp2) - 3 + 26)End SelectSm2 = Sm2 & Temp2Next JText4.Text = Sm2End Sub14. 字符的分类统计字符统计问题:有一段文字, 要求统计其中的大写字母、小写字母、数字字符、其它字符各有多少个。 Dim K$, Temp$Dim N%, I%Dim Nn%, Nu%, Nl%, Ne%K = Text1.TextN = Len(K)For I = 1 To NTemp = Mid(K, I, 1)If Temp = 0 And Temp = A And Temp = A And Temp = Z ThenNl = Nl + 1ElseNe = Ne + 1End IfNext I要实现多行输出,Text2.Multiline必须为trueText2.Text = Text2 & 数字 & Nn & 个 & Chr(13) & Chr(10) _& 大写字母 & Nu & 个 & Chr(13) & Chr(10) _& 小写字母 & Nl & 个 & Chr(13) & Chr(10) _& 其他字符 & Ne & 个15.密码检测问题Private Sub Form_Load()Text1.Maxlength = 6Text1.Passwordchar = *Const Pas=321abc 在此处定义是否行得通,常量的作用域问题?End SubPrivate Sub Command1_Click()Dim Enterpas As String, I As IntegerStatic N%Const Pas = 321abc 假设的正确密码 L: Enterpas = Text1.Text 实际输入密码If Enterpas = Pas ThenMsgbox 密码正确EndElseI = Msgbox(密码错误, Vbretrycancel + Vbexclamation

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论