试题

试题 试卷

logo

题型:综合题 题类:常考题 难易度:困难

浙江省高中信息技术——循环与数组

高精度乘法:两个正整数进行高精度乘法计算的一般算法如下:

⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、…a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、…、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;

⑵按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘以a(1)、a(2)、…、a(La),第二轮再让b(2)依次乘以a(1)、a(2)、…a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组ans(1)、ans(2)、ans(3)…中;

⑶对数组ans中的计算结果进行从低位到高位的进位处理;

⑷统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量 length;

⑸按照高位到低位的顺序输出数组ans中的计算结果。

张老师设计了两个正整数进行高精度乘法计算的VB程序,功能如下:在文本框 Text1和Text2中依次输入两个整数,单击“计算”按钮 Command1,程序进行高精度乘法计算,并在标签 Label4中输出计算结果。下面信息显示了进行高精度乘法计算的主要过程(假设输入的两个整数分别为“123”和“45”):

程序运行效果如图所示。

(1)、实现上述功能的VB程序如下,请在划线处填入合适的代码。

Dim a(1 To 30) As Integer, b(1 To 30)As Integer

Dim ans(1 To 60) As Integer

Dim La As Integer, Lb As Integer, length As Integer

Private Sub Command1_Click ( )

Dim i As Integer, j As Integer, t As Integer, temp As String

‘将两个乘数(正整数)各数位上的数字按照上述算法依次存入数组a和b,每个正整数位数分别保存到变量La和Lb;将保存结果的数组ans(i)值初始化为零(该部分程序代码略)

For i = 1 To Lb    ‘按低位到高位的顺序进行列竖式的逐位乘法

  For j=1 To La

    ans(1+j-1)=       ①      +b(i)*a(j)

  Next j

Next i

For i = 1 To La + Lb ' 对计算结果进行进位处理

  ans(i +1) = ans(i+1) + ans(1)\10

  ans(i)=      ②    

Next i

Length = La + Lb

Do While ans (length) = 0

  length = length-1

Loop

For i =     ③      To 1 step-1

  Label4. Caption = Label4 Caption & str (ans(i))

  Next i

End sub

 ② ③ 

(2)、根据本题算法,若输入的两个整数分别为5125和18,则在输出乘法计算结果时,变量length的值为
举一反三
返回首页

试题篮