vb两位数相乘程序

来源:互联网 发布:北京碧水源 知乎 编辑:程序博客网 时间:2024/05/18 02:55

一·实验目的

     实现两位数相乘。实现两位数的逐一相乘,并实现加法和乘法的进位。例如:27乘以34,4乘以7等于28进2,各位保留下8,2乘以4等于8加上2等于10 ,进1。然后3乘以7等于21,进2,1加上0等于1,2乘以3等于6加上2等于8,加上1等于9结果为0918。

二·实验内容

     首先打开vb6.0中文版,在窗体上画出三个label,前两个label分别写上n,m,第三个label为输出结果。再画出两个text窗体,再画出一个command按钮。点击command按钮编写语言,在通用字段上输入以下语言:

Option Base 1

 点击command按钮输入以下语言:

Private Sub Command1_Click()

 

   Dim M As String

   Dim N As String

 

   M = Trim(Text1.Text)

   N = Trim(Text2.Text)

 

   Dim Number1() As Byte

   Dim Number2() As Byte

 

   ReDim Number1(Len(M))

   ReDim Number2(Len(N))

 

   Dim index As Byte

 

   For index = 1 To Len(M) Step 1

       Number1(index) = Mid(M, index, 1)

   Next index

       

   For index = 1 To Len(N) Step 1

       Number2(index) = Mid(N, index, 1)

   Next index

     

 Dim Result() As Byte

 ReDim Result(Len(M) + Len(N))

 

 Dim MCarry As Byte

 Dim ACarry As Byte

 Dim Remainder As Integer

 

 Dim i As Integer, j As Integer

 Dim Mtemp As Integer, Atemp As Integer

 

 For i = Len(N) To 1 Step -1

   For j = Len(M) To 1 Step -1

       Mtemp = Number1(j) * Number2(i) + MCarry

       MCarry = Mtemp \ 10

       Remainder = Mtemp Mod 10

       Atemp = Remainder + Result(i + j) + ACarry

       ACarry = Atemp \ 10

       Result(i + j) = Atemp Mod 10

   Next j

   Result(i) = MCarry + ACarry

   MCarry = 0

   ACarry = 0

 Next i

 

 Dim Mstr As String

 

 For index = 1 To Len(N) + Len(M)

   Mstr = Mstr & Str(Result(index))

 Next

 

 Label3.Caption = Mstr

 

 

 

 

 

 

 

     

 

 

 

End Sub

点击计算即可。

三·心得体会

      今天,学习两个数的相乘,感觉比前几次有感觉,但是吧,我始终觉得不会思考,不知道该怎样完善我的程序,总体来说还是有进步,那就行,不会继续阻碍我学习vb的步伐。而且感觉对vb语言的不熟悉,所以就不会思考怎样完善我的程序。

四·遇到的问题及解决办法

      result (i+J)=(mcarry+number2(i)*number1(j)mod 10 + result(i+j))mod10

     mcarry=(number2(i)*number1(j)\10

不会分解成余数和商,最后,通过老师的指导,得到老师的答案,以上为解决的语言程序。

五·没有解决的问题

     最后出来的结果不是四位数就会添零占位,比如说刚才前面的例子0918有零。

 

原创粉丝点击