若参与运算的数范围大大超出了标准数据类型能表示的范围的运算,就要用到高精度算法。小明编写了如下的高精度乘法程序,在文本框Text1和Text2中分别输入两个乘数(保证输入的乘数为正整数),单击命令按钮Command1,在文本框Text3中输出两个数的乘积,运行界面如图所示。
(1)
请在划线处填入合适的代码。
Private Sub Command1_Click()
Dim a(1 To 100)As Integer, b(1 To 100)As Integer, c(1 To 1000)As Integer
Dim lenc As Integer, i As Integer, j As Integer
Dim s1 As String, s2 As String, output As String
s1= Text1. Text: s2 = Text2. Text: Text3. Text =""
For i = 1 To Len(s1)
a(i) = ‘将文本框Text1中的自然数按从低位到高位的顺序依次存放在数组a(1),a2......a(len(s1))中
Next i
‘将文本框Text2中的自然数按从低位到高位的顺序依次存放在数组b(1),b(2)......b(len(s2))中,代码略
lenc=
For i = 1 To Len(s1)
For j = 1 To Len(s2)
c(i + j -1)= c(i +j -1)+a(i)*b(j)
c(i +j) =
c(i +j -1)=c(i +j -1) Mod 10
Next j
Next i
If c(lenc +1)> 0 Then
output =""
For i =len c To 1 Step -1
output =
Next i
Text3. Text = output
End Sub
(2)
程序中第一个加框处的语句有误,请改正。
(3)
若将第二个加框处的代码改为Mid(Str(c(i)),2,1)+ output,则在Text1中输入14,在Text2中输入19,运行程序后在Text3中显示的结果为。
答案: 【1】Val(Mid(s1, Len(s1)-i + 1, 1))【2】c(i + j) + c(i + j- 1)\ 10【3】lenc = lenc + 1
Len(s1)+ Len(s2)- 1
【1】662