题型:综合题 题类:常考题 难易度:困难
浙江省高中信息技术——循环与数组
⑴将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组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”):
程序运行效果如图所示。
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
① ② ③
试题篮