vb两位数相乘程序

原创 2012年03月28日 11:52:11

一·实验目的

     实现两位数相乘。实现两位数的逐一相乘,并实现加法和乘法的进位。例如: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有零。

 

猜算式 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。

/*猜算式 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。 但目前的限定是:这9个方块,表示1~9的9个...

猜算式 □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。

/** * 看下面的算式: □□ x □□ = □□ x □□□ 它表示:两个两位数相乘等于一个两位数乘以一个三位数。 如果没有限定条件,这样的例子很多。 但目前的限定是:这9个方块,表示...

两位数打字程序设计

  • 2013年03月16日 19:05
  • 26KB
  • 下载

5种很牛的两位数乘法速算方法

5种很牛的两位数乘法速算方法第一种:十几乘以任意两位数公式推导(10+b)(10c+d) = 100c+10(bc+d)+bd = 10(10c+bc+d)+bd= 10( (10c+d) +bc )...

链表对两位数操作

  • 2013年11月11日 08:39
  • 895KB
  • 下载

两位数加减法生成器

  • 2015年08月06日 12:20
  • 188KB
  • 下载

rhel7中,targetcli使用两位数的分区后缀名字(比如sda10)而导致的问题

rhel7中,targetcli使用两位数的分区后缀名字(比如sda10)而导致的问题

两位数主板诊断卡代码全解析

  • 2010年09月23日 09:42
  • 145KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:vb两位数相乘程序
举报原因:
原因补充:

(最多只允许输入30个字)