关键词不能为空

当前您在: 主页 > 英语 >

VB常用算法代码

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-11 05:34
tags:

-

2021年2月11日发(作者:特种野猪)


Feb


数列前


18


项< /p>



Option Base 1


Private Sub Form_Click()


Dim Feb(18) As Integer, I As Integer


Feb(1) = 1


Feb(2) = 1


For I = 3 To 18






Feb(I) = Feb(I - 1) + Feb(I - 2)


Next


For I = 1 To 18






Print Feb(I),






If I Mod 5 = 0 Then Print


Next


End Sub



鞍点



Option Explicit


Option Base 1



Private Sub Form_Click()


Cls


Dim A(4, 5) As Integer, I As Integer, J As Integer, K As Integer


Dim Max As Integer, Min As Integer


Dim Row As Integer, Col As Integer, Flag As Boolean


Randomize


For I = 1 To 4






For J = 1 To 5










A(I, J) = Rnd * 90 + 10










Print A(I, J);






Next






Print


Next


I = 1


Flag = False


Do While I <= 4


Max = A(I, 1)


Row = I


Col = 1






For J = 2 To 5










If Max < A(I, J) Then














Max = A(I, J)














Row = I














Col = J










End If






Next






Min = Max






For K = 1 To 4










If Min > A(K, Col) Then














I = I + 1














Flag = False














Exit For










End If






Next






If K = 5 Then










Flag = True










Exit Do






End If


Loop


If


Not


Flag


Then


Print < /p>



鞍点不存在!



E lse


Print



鞍点的位置:< /p>



&


CStr(Row)


&





&


CStr(Col) &




End Sub



插入排序



Option Base 1


Private Sub Command1_Click()


Dim A(10) As Integer, I As Integer, J As Integer, X As Integer


Cls


Print


排序前:



For I = 1 To 10






A(I) = Int(100 * Rnd)






Print A(I);


Next


Print


For J = 2 To 10






X = A(J)






I = J - 1






Do While X < A(I)










A(I + 1) = A(I)










I = I - 1










If I < 1 Then Exit Do






Loop






A(I + 1) = X


Next


Print


排序后:



For I = 1 To 10






Print A(I);


Next


End Sub


二分插入排序



Option Base 1


Private Sub Command1_Click()


'


二分插入排序



Dim A(10) As Integer, I As Integer, J As Integer, X As Integer


Cls


Print


排序前:



For I = 1 To 10






A(I) = Int(100 * Rnd)






Print A(I);


Next


Print


Dim First As Integer, Last As Integer, Middle As Integer



Dim K As Integer


For J = 2 To 10






X = A(J)






First = 1






Last = J - 1






Do While First <= Last










Middle = (First + Last) / 2










If X > A(Middle) Then














Last = Middle - 1










Else














First = Middle + 1










End If






Loop






For K = J - 1 To Middle Step -1










A(K + 1) = A(K)






Next






A(Middle) = X


Next


Print


排序后:



For I = 1 To 10






Print A(I);


Next


End Sub




插入一个数到有序数列



Dim A(10) As Integer, I As Integer, J As Integer



Private Sub Command1_Click()


Dim X As Integer


X =


I = 9


Do While X < A(I)






A(I + 1) = A(I)






I = I - 1


Loop


A(I + 1) = X


Print


插入数后:



For I = 0 To 10






Print A(I);


Next


Print


End Sub



Private Sub Command2_Click()


Dim temp As Integer


Cls


For I = 0 To 9






A(I) = Int(100 * Rnd)


Next


For I = 0 To 8






For J = I + 1 To 9










If A(I) > A(J) Then














temp = A(I)














A(I) = A(J)














A(J) = temp










End If






Next


Next


Print


有序序列:



For I = 0 To 9






Print A(I);


Next


Print


us


End Sub



Private Sub Form_Activate()


Print


将一个数插入到一个有序的序列中!



End Sub




查找子串位置



Option Base 1



Private Sub Command1_Click()


Dim S1 As String, S2 As String


S1 =


S2 =


= Index(S1, S2)



End Sub



Public Function Index(S As String, T As String) As Integer


Dim I As Integer, J As Integer


Dim LenS As Integer, LenT As Integer


LenS = LenB(S)


LenT = LenB(T)


I = 1: J = 1


Do While I <= LenS And J <= LenT






If MidB(S, I, 1) = MidB(T, J, 1) Then










I = I + 1










J = J + 1






Else










I = I - J + 2










J = 1






End If


Loop


If J > LenT Then Index = I - LenT Else Index = 0



End Function



自动出题



Option Explicit


Public A As Integer, B As Integer, Opt As String


Public Correct As Integer, Wrong As Integer



Private Sub Command1_Click()


Randomize


Dim C As Integer


=


A = Int(10 * Rnd) + 1


B = Int(10 * Rnd) + 1


C = Int(4 * Rnd)


Select Case C






Case 0: Opt =






Case 1: Opt =






Case 2: Opt =






Case 3: Opt =


End Select


n = A


n = Opt


n = B


e = True


e = True


us


End Sub



Private Sub Command2_Click()


Dim Result As Integer


Select Case Opt






Case






Case






Case






Case


End Select


If Result = Val() Then






MsgBox


很好,你做对了


!






A & Opt & B &



V






Correct = Correct + 1


Else






MsgBox


好可惜,你错了!







A & Opt & B &



X






Wrong = Wrong + 1


End If



End Sub



Private Sub Command3_Click()


MsgBox (


你做对了


< p>
题,做错了




< p>
End Sub



Private Sub Form_Activate()


us


e = False


e = False



End Sub




打印

ASIIC




Private Sub Form_Click()


Dim I As Integer, N As Integer


N = 1


For I = 32 To 126






Print I;






If N = 5 Then










N = 1










Print






Else










N = N + 1






End If


Next







End Sub




递归法

< br>Feb


数列前


10


< p>


Private Sub Form_Click()


Dim I As Integer


For I = 1 To 10






Print Feb(I)


Next



End Sub



Private Function Feb(ByVal N As Integer) As Integer


If N = 1 Then






Feb = 0


ElseIf N = 2 Then






Feb = 1


Else






Feb = Feb(N - 1) + Feb(N - 2)


End If





End Function




递归法逆转输出字符串



Private Sub Form_Click()


Dim S As String


S = InputBox(


Invert S


End Sub



Public Sub Invert(ByVal S As String)


Dim N As Integer


N = Len(S)


If N = 0 Then






Exit Sub


Else






Print Mid(S, N, 1);






S = Mid(S, 1, N - 1)






Invert S


End If


End Sub




递归法求最大公约数



Private Sub Form_Click()


Dim M As Integer, N As Integer


M = InputBox(


N = InputBox(


Print M; N;


的最大公约数为:




End Sub



Public Function Gcd(ByVal M As Integer, ByVal N As Integer) As Integer


Dim R As Integer


R = M Mod N


If R = 0 Then






Gcd = N


Else






M = N






N = R






Gcd = Gcd(M, N)


End If



End Function



计算两个矩阵的积



Option Base 1



Private Sub Form_Click()


Dim A(3, 4) As Integer, B(4, 3) As Integer, C(3, 3) As Integer


Dim I As Integer, J As Integer, K As Integer


Print


矩阵


A


为:



For I = 1 To 3






For J = 1 To 4










A(I, J) = 5 * Rnd










Print A(I, J),






Next






Print


Next


Print


矩阵


B


为:



For I = 1 To 4






For J = 1 To 3










B(I, J) = 5 * Rnd










Print B(I, J),






Next






Print


Next


Print


矩阵


C


为:


< /p>


For I = 1 To 3






For J = 1 To 3










C(I, J) = 0










For K = 1 To 4














C(I, J) = C(I, J) + A(I, K) * B(K, J)










Next










Print C(I, J),






Next






Print


Next


End Sub




冒泡法排序



Option Base 1


Private Sub Form_Click()


Dim A(10) As Integer, I As Integer, J As Integer, Temp As Integer


For I = 1 To 10






A(I) = Int(90 * Rnd) + 10






Print A(I);


Next


Print


For I = 9 To 1 Step -1






For J = 1 To I










If A(J) > A(J + 1) Then














Temp = A(J)














A(J) = A(J + 1)














A(J + 1) = Temp










End If






Next


Next


For I = 1 To 10






Print A(I);


Next


End Sub




逆序输出字符串



Private Sub Form_Click()


Dim C As String, I As Integer


C = InputBox(


请输入一个字符 串



Print C


For I = 1 To Len(C)






Print Mid(C, Len(C) - I + 1, 1);


Next


Print


End Sub



牛顿迭代法



Private Sub Command1_Click()


Dim x As Single, x1 As Single, Eps As Single


x = InputBox(


输入


X


的初始值



牛顿迭代法



Eps = InputBox(


输入允许的误差



牛顿迭代法

< p>


Do






x1 = x






x = x1 - (x1 * Exp(x1) - 1) / (Exp(x1) * (x1 + 1))


Loop Until Abs(x - x1) <= Eps


= Str(x)



End Sub



求定积分



Private Sub Form_Click()


Dim A As Single, B As Single, N As Long


Dim S As Double, H As Double, I As Long


N = InputBox(


A = 0


B = 1


H = (B - A) / N


S = 0


For I = 0 To N






S = S + (A + I * H) * H


Next


Print S


End Sub



求组合数



Private Sub Form_Click()


Dim M As Integer, N As Integer


M = InputBox(


N = InputBox(


Print Fact(M) / (Fact(N) * Fact(M - N))



End Sub



Public Function Fact(N As Integer) As Long






Dim I As Integer






Fact = 1






For I = 1 To N










Fact = Fact * I






Next



End Function



人口增长



Private Sub Command1_Click()


Dim X As Single, n As Long


X = Val()


n = 0


Do Until X >= 20






X = X * (1 + 0.01)






n = n + 1


Loop


= n



End Sub



筛选法排序



Option Base 1



Private Sub Form_Click()


Dim A(10) As Integer, I As Integer, J As Integer, Temp As Integer


Print


排序前:



For I = 1 To 10






A(I) = Int(90 * Rnd) + 10






Print A(I);


Next


Print


For I = 1 To 9






For J = I + 1 To 10










If A(I) > A(J) Then














Temp = A(I)














A(I) = A(J)














A(J) = Temp










End If






Next J


Next I


Print


排序后:



For I = 1 To 10






Print A(I);


Next


Print



End Sub




删除数列中重复的数



Option Base 1


Private Sub Form_Click()


Dim A() As Integer, I As Integer, N As Integer


Dim J As Integer, K As Integer, Ub As Integer


Randomize


ReDim A(10)


Cls


For I = 1 To 10






A(I) = Rnd * 90 + 10






Print A(I);


Next


Print


Ub = UBound(A)


I = 1


Do While I <= Ub - 1






J = I + 1






Do While J <= Ub










If A(I) = A(J) Then














For K = J To Ub - 1


















A(K) = A(K + 1)














Next














Ub = Ub - 1














ReDim Preserve A(Ub)










Else

-


-


-


-


-


-


-


-



本文更新与2021-02-11 05:34,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/634459.html

VB常用算法代码的相关文章