其他典型算法之数值计算-专项训练浙江2022届选考专用(含答案)

文档属性

名称 其他典型算法之数值计算-专项训练浙江2022届选考专用(含答案)
格式 zip
文件大小 507.4KB
资源类型 教案
版本资源 浙教版(2019)
科目 信息技术(信息科技)
更新时间 2022-02-21 21:20:53

文档简介

其他典型算法之数值计算
【例1】 现用VB程序实现上述功能,程序界面如下图所示,在文本框Text1和Text2中分别输入被加数和加数,单击求和按钮Command1,在文本框Text3中显示和。
实现上述功能的VB程序如下。但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim t As String
x=Text1.Text
y=Text2.Text
z=″ ″
If Len(y)t=x:x=y:y=t
End If
For i=1 To Len(y)-Len(x)
x=x+″0″ '①
Next i
f=0
For i=Len(x) To 1 Step-1
a=Val(Mid(x,i,1))
b=Val(Mid(y,i,1))
z=Str((a+b) Mod 10)+z '②
f=(a+b)\10
Next
If f=1 Then z=Str(f)+z
Text3.Text=z
End Sub
答案:①x=″0″+x ②z=Str((a+b+f) Mod 10)+z
解析:①高精度数相加前,首先在较小数前添加前导0,使之与较大数的数字位数相等。
②计算第i位的数字的方法是:取出x、y的第i位数字a、b,把它们和来自低位的进位f相加,除以10所得的余数即为i位上的数字。
【例2】.求两个任意位数正整数的差。功能实现的VB自定义函数程序如下。但加框处代码有错,请改正。
Private function fx(x as String,y as String)as String '参数x和y表示被减数和减数
 Dim t As String, z As String, a As String, b As String
 Dim i As Integer,f as Integer ,sign as String
 z = ″ ″
 sign = ″ ″
 If Len(y) > Len(x) Or (Len(x) = Len(y) Andxt = x: x = y: y = t: sign = ″-″
End If
For i = 1 To Len(x) - Len(y)
y = ″0″ + y
Next i
f = 0
For i = Len(x) To 1 Step -1
a = Val(Mid(x, i, 1))   ' ①
 b = Val(Mid(y, i, 1))
 If a < b Then f = 1 Else f = 0
z = Str(a - b) + z  ' ②
Next
fx= sign + z
 End function
答案: ①a=Val(Mid(x,i,1))-f ②z=Str(a+f*10-b)+z
解析: 根据竖式相减的方法,从个位开始逐位相减,得出各位差值。程序中变量f表示是否有向高位借1,z保存差值,sign表示正负符号。if语句功能是把较大数值存入变量x。第一个for语句的功能是在较小数前添加前导0,使之与较大数位数相同。第二个for语句功能是取出两个数的对应位数字a和b,其中被减数a须先减去借位(0或1),再确定本次减法是否要借位,最后两位数字相减值加入字符串z中。所以①处应填入a = Val(Mid(x, i, 1))-f,②处应填入z = Str(a+f*10-b)+z。
【例3】.用VB程序实现大数据加法功能,在文本框Text1和Text2中分别输入位数不超过100的被加数和加数,单击求和按钮Command1,在文本框Text3中显示和。
实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a(100) as Integer,b(100) as Integer,c(100) as Integer
Dim s1 as String,s2 as String,s3 as String
Dim n1 as integer,n2 as Integer,n3 as Integer,cf as Integer
'第1个数s1按位分解到数组a
s1=Text1.Text
n1=len(s1)
For i=1 to n1
a(i)=val(mid(s1,n1-i+1,1))
Next i
'第2个数s2按位分解到数组b
s2=Text2.Text
n2=len(s2)
For i=1 to 2
b(i)=val(mid(s2,n2-i+1,1))
Next i
If n1>n2 then n3=n1+1 else n3=n2+1
cf=0
For i=1 to n3 '按位依次相加
 ① 
cf=c(i)\10
 ② 
Next i
s3=″ ″
If c(n3)=0 then n3=n3-1
For i=n3 to 1 step-1 '计算结果输出
s3= ③ 
Next I
Text3.text=s3
End sub
答案: ①c(i)=a(i)+b(i)+cf ②c(i)=c(i) mod 10或c(i)=c(i)-cf*10 ③s3+Str(c(i))
解析: 数组a和b存放两个加数,个位存放在第一个元素中,十位存入第二个元素,依次存放。变量cf存放进位。①处所在循环执行按位相加过程,每次取出2位数字a(i)和b(i),与来低位的进位cf相加,得到i位数字及进位,所以①处填c(i)=a(i)+b(i)+cf,由①处得到进位值cf=c(i)\10,②处得到i位数字c(i)=c(i) mod 10。③处把每一位数字c(i)连起来,得到结果,i是从n3开始的,即从最高位开始,所以③处填s3+Str(c(i))。如果改为for i=1 to n3,则③处应为Str(c(i))+s3。
课后练习
1.在VB算术运算中,最大的Double类型有效数字也只有15位。为了实现除法运算的商可以保留任意位数,小明根据除法原理,编写了如下程序。功能如下:程序运行时,在文本框Text1中输入被除数(正整数),在文本框Text2中输入除数(正整数),在文本框Text3中输入小数位数(正整数)。单击按钮Command1后,在标签上Label2显示除法运算的商。程序运行界面如下图所示:
请在划线处填入合适代码。
              
Private Sub Command1_Click()
Dim x As Integer,y As Integer
Dim n As Integer '用于存储小数位数
Dim s As String '用于存储商
x=Val(Text1.Text):y=Val(Text2.Text)
n=Val(Text3.Text)
s=s+Str(x\y)
s=s+″.″ '添加小数点
k= ① 
i=1
Do While i<=n
k=k 10
s= ② 
k=k Mod y
 ③ 
Loop
Label2.Caption=″商为:″+s
End Sub
答案 ①x Mod y ②s+Str(k\y) ③i=i+1
解析 程序采用迭代算法,具体方法是:先得到商的整数部分,之后通过循环,每次对余数k乘以10,让k\y的值存入s,再让k=k mod y,循环执行,直到i>n或k=0。
2.小名编写了一个多位数乘法的VB程序。文本框Text1中输入一个小于等于1000位的乘数,文本框Text2中输入1位乘数,点击“开始计算”按钮Command1后,在文本框Text3中显示计算结果。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim d(1 To 1001) As Integer,str1 As String,str2 As String
Dim i As Integer,n As Integer,k As Integer,s As Integer
str1=Text1.Text
n=Len(str1)
For i=1 To n
d(i)=Val(Mid(str1,i,1))
Next i
s=0 's表示进位
k=Val(Text2.Text)
For i=n To 1 Step-1
d(i)=d(i) k '①
s=d(i)\10
d(i)=d(i) Mod 10
Next i
If s<>0 Then str2=CStr(s) Else str2=″ ″ 'CStr函数功能类似于Str
For i=1 To n
str2=CStr(d(i))+str2 '②
Next i
Text3.Text=str2
End Sub
答案 ①d(i)=d(i)*k+s ②str2=str2+CStr(d(i))
解析 数组d存放被乘数,d(1)存放最高位,d(n)存放最低位。①处所在循环实施乘法,先是让第i位数字d(i)乘以k,并加上来自低位的进位s,结果再存入d(i),d(i)\10的值s即为下一位的进位,更新d(i)=d(i) Mod 10,使d(i)的值是第i位的数字。②处所在循环是要把每一位数字d(i)存入str2,因为d(1)存放最高位,d(n)存放最低位,所以str2=str2+CStr(d(i))。
3.求两个任意位数正整数的积。实现该功能的VB程序界面如下所示:
在文本框Text1中输入数1,在文本框Text2中输入数2,单击按钮乘积Command3,在文本框Text3中显示乘积。Command3按钮的单击事件处理过程如下。但加框处代码有错,请改正。
Private Sub Command3_Click()
Dim zero As String, x1 As Integer, y1 As Integer
Dim i As Integer, j As Integer
Dim s(1 To 100) As String, r As String
zero = ″ ″
x = Text1.Text
y = Text2.Text
For i = Len(y) To 1 Step -1
f = 0: s(i) = ″ ″: y1 = Val(Mid(y, i, 1))
For j = Len(x) To 1 Step -1
x1 = Val(Mid(x, j, 1))
z = x1 * y1
s(i) =s(i)& ((f + z) Mod 10) '①
f = z \ 10   '②
Next
If f <> 0 Then
s(i) = f & s(i) & zero
Else
s(i) = s(i) & zero
end if
zero = zero + ″0″
Next
r = ″ ″
For i = 1 To Len(y)
r = add(r, s(i))  'add是自定义函数,功能是把两个数相加
Next i
Text3.Text = r
End Sub答案: ①((f + z) Mod 10) & s(i) ②(f + z) \ 10
解析: 该程序是高精度数运算的一种,其算法思想也是采用竖式相加的方法,如下图:
运算过程是:先取出Y中的数字B1,让B1和X各位相乘得乘积s(1)= C 4 C3 C2 C1;取出Y中的数字B2,让B2和X各位相乘得乘积s(2)= D 4 D3 D2 D1;依次类推。程序中,变量f记录向高位的进位数字,zero记录s(i)后需添加的0的个数,如D 4 D3 D2 D1后应加1个0,E4 E3 E2 E1后应添加2个0。①处是把乘积存入s(i)中,应填((f + z) Mod 10) & s(i),②处计算瞬时进位数字,通过上次的进位值加上本次的乘积,再把和整除10得出本位数字,应填(f+z)\10。
4.小明编写了一个求真分数精确值的VB程序。程序运行时,在文本框Text1中输入被除数,在文本框Text2中输入除数,并保证被除数小于除数,单击“计算”按钮Command1,在标签Label3中显示结果(最多计算到第20位)。程序运行界面如图所示。
(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer, b(1 To 20) As Integer
Function Judge(position As Integer) As Boolean '判断循环节
Dim i As Integer
For i=1 To position-1
If b(i)= ①  Then Judge=False:Exit Function
Next i
Judge=True
End Function
Private Sub Command1_Click()
Dim m As Integer,n As Integer,x As Integer,i As Integer
Dim flag As Boolean,st As String
m=Val(Text1.Text):n=Val(Text2.Text)
st=Str(m)+″/″+Str(n)+″=0.″
i=1:x=1:flag=True
b(1)=m
m=m 10
Do While i<=20 And flag=True
a(i)= ② 
If a(i)>0 Then
x=x+1
b(x)=m Mod n
m=b(x) 10
Else
m=m 10
End If
flag=Judge(x)
If b(x)=0 And x<>0 Then flag=False
st= ③ 
i=i+1
Loop
Label3.Caption=st
End Sub
(2)运行程序,在文本框Text1中输入被除数1,在文本框Text2中输入除数3,单击“计算”按钮Command1,在标签Label3中显示结果是      。
答案 (1)①b(position) ②m\n ③st+Str(a(i))
(2)1/3=0.3
解析 程序中,数组a存放商的每一位数字,数组b存放每次的余数,变量x存放余数的个数。循环中,先计算商a(i)=m\n,并把商存入st,所以②处m\n,③处填st+Str(a(i))。如果商a(i)>0,则把m/n的余数存入b(x),否则,说明m除不够,须把m乘以10,为下一次m/n准备。接下来利用judge函数判断当前余数b(x)是否有出现过,若有,表明将出现循环小数,无须再除。如果当前余数b(x)=0,说明已经被除尽,也无需再除。
自定义函数judge判断第x个余数是否出现过。程序中通过循环检索b(1)~b(position-1)中有否出现过b(position),若有,返回false,否则为true,所以①处填b(position)。
5.【难度题】大数据乘法运算就是运用数组,用程序模拟列竖式计算的过程。两个正整数进行乘法计算的一般算法如下:
(1)将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、……、a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、……、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;
(2)按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘以a(1)、a(2)……a(La),第二轮再让b(2)依次乘以a(1)、a(2)、……a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组c(1)、c(2)、c(3)……中;
(3)对数组ans中的计算结果进行从低位到高位的进位处理;
(4)统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;
(5)按照高位到低位的顺序输出数组ans中的计算结果。
小强按照上述方法设计了一个两数进行大数据乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行大数据乘法计算,并在标签Label4中输出计算结果。下面信息显示了进行高精度乘法计算的主要过程(假设输入的两个整数分别为“123”和“45”)
b(1)依次乘数组a中各个数,先不进位  b(2)依次乘数组a中各个数,并在之前结果上累加,先不进位
处理进位(逢十进一):
数组 ans(4) ans(3) ans(2) ans(1)
计算结果 4 13 22 15
进位处理后结果 5 5 3 5
实现上述功能的VB程序如下:
(1)请在划线处填入合适代码。
Dim a(1 To 30) As Integer,b(1 To 30) As Integer,c(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;将保存结果的数组c(i)值初始化为零(该部分程序代码略)
For i=1 To Lb '按低位到高位的顺序进行列竖式的逐位乘法
For j=1 To La
c(i+j-1)= ① +b(i)*a(j)
Next j
Next i
For i=1 To La+Lb '对计算结果进行进位处理
c(i+1)=c(i+1)+c(i)\10
c(i)= ② 
Next i
length=La+Lb '最多位数
Do While c(length)=0 '计算实际位数
length=length-1
Loop
For i= ③  To 1 Step-1
Label4.Caption=Label4.Caption+Str(c(i))
Next i
End Sub
(2)根据本题算法,若输入的两个整数分别为5125和18,则在输出乘法计算结果时,变量length的值为    。
答案 (1)①c(i+j-1) ②c(i) Mod 10 ③length (2)5
解析 ①处循环功能是,让b(i)依次乘数组a中各个数,乘积加上之前结果c(i+j-1)存入c(i+j-1)。②处循环对计算结果进行进位处理,先把第i位的进位c(i)\10加入c(i+1),再计算第i位上的数字,应该是c(i) Mod 10。最后把结果输出,通过循环把每一位c(i)输出,总位数是length,个位存放在c(1),所以③处填length。其他典型算法之数值计算
【例1】 现用VB程序实现上述功能,程序界面如下图所示,在文本框Text1和Text2中分别输入被加数和加数,单击求和按钮Command1,在文本框Text3中显示和。
实现上述功能的VB程序如下。但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim t As String
x=Text1.Text
y=Text2.Text
z=″ ″
If Len(y)t=x:x=y:y=t
End If
For i=1 To Len(y)-Len(x)
x=x+″0″ '①
Next i
f=0
For i=Len(x) To 1 Step-1
a=Val(Mid(x,i,1))
b=Val(Mid(y,i,1))
z=Str((a+b) Mod 10)+z '②
f=(a+b)\10
Next
If f=1 Then z=Str(f)+z
Text3.Text=z
End Sub
【例2】.求两个任意位数正整数的差。功能实现的VB自定义函数程序如下。但加框处代码有错,请改正。
Private function fx(x as String,y as String)as String '参数x和y表示被减数和减数
 Dim t As String, z As String, a As String, b As String
 Dim i As Integer,f as Integer ,sign as String
 z = ″ ″
 sign = ″ ″
 If Len(y) > Len(x) Or (Len(x) = Len(y) Andxt = x: x = y: y = t: sign = ″-″
End If
For i = 1 To Len(x) - Len(y)
y = ″0″ + y
Next i
f = 0
For i = Len(x) To 1 Step -1
a = Val(Mid(x, i, 1))   ' ①
 b = Val(Mid(y, i, 1))
 If a < b Then f = 1 Else f = 0
z = Str(a - b) + z  ' ②
Next
fx= sign + z
 End function
【例3】.用VB程序实现大数据加法功能,在文本框Text1和Text2中分别输入位数不超过100的被加数和加数,单击求和按钮Command1,在文本框Text3中显示和。
实现上述功能的VB程序如下,请在划线处填入合适代码。
Private Sub Command1_Click()
Dim a(100) as Integer,b(100) as Integer,c(100) as Integer
Dim s1 as String,s2 as String,s3 as String
Dim n1 as integer,n2 as Integer,n3 as Integer,cf as Integer
'第1个数s1按位分解到数组a
s1=Text1.Text
n1=len(s1)
For i=1 to n1
a(i)=val(mid(s1,n1-i+1,1))
Next i
'第2个数s2按位分解到数组b
s2=Text2.Text
n2=len(s2)
For i=1 to 2
b(i)=val(mid(s2,n2-i+1,1))
Next i
If n1>n2 then n3=n1+1 else n3=n2+1
cf=0
For i=1 to n3 '按位依次相加
 ① 
cf=c(i)\10
 ② 
Next i
s3=″ ″
If c(n3)=0 then n3=n3-1
For i=n3 to 1 step-1 '计算结果输出
s3= ③ 
Next I
Text3.text=s3
End sub
课后练习
1.在VB算术运算中,最大的Double类型有效数字也只有15位。为了实现除法运算的商可以保留任意位数,小明根据除法原理,编写了如下程序。功能如下:程序运行时,在文本框Text1中输入被除数(正整数),在文本框Text2中输入除数(正整数),在文本框Text3中输入小数位数(正整数)。单击按钮Command1后,在标签上Label2显示除法运算的商。程序运行界面如下图所示:
请在划线处填入合适代码。
              
Private Sub Command1_Click()
Dim x As Integer,y As Integer
Dim n As Integer '用于存储小数位数
Dim s As String '用于存储商
x=Val(Text1.Text):y=Val(Text2.Text)
n=Val(Text3.Text)
s=s+Str(x\y)
s=s+″.″ '添加小数点
k= ① 
i=1
Do While i<=n
k=k 10
s= ② 
k=k Mod y
 ③ 
Loop
Label2.Caption=″商为:″+s
End Sub
2.小名编写了一个多位数乘法的VB程序。文本框Text1中输入一个小于等于1000位的乘数,文本框Text2中输入1位乘数,点击“开始计算”按钮Command1后,在文本框Text3中显示计算结果。
实现上述功能的VB程序如下,但加框处代码有错,请改正。
Private Sub Command1_Click()
Dim d(1 To 1001) As Integer,str1 As String,str2 As String
Dim i As Integer,n As Integer,k As Integer,s As Integer
str1=Text1.Text
n=Len(str1)
For i=1 To n
d(i)=Val(Mid(str1,i,1))
Next i
s=0 's表示进位
k=Val(Text2.Text)
For i=n To 1 Step-1
d(i)=d(i) k '①
s=d(i)\10
d(i)=d(i) Mod 10
Next i
If s<>0 Then str2=CStr(s) Else str2=″ ″ 'CStr函数功能类似于Str
For i=1 To n
str2=CStr(d(i))+str2 '②
Next i
Text3.Text=str2
End Sub
3.求两个任意位数正整数的积。实现该功能的VB程序界面如下所示:
在文本框Text1中输入数1,在文本框Text2中输入数2,单击按钮乘积Command3,在文本框Text3中显示乘积。Command3按钮的单击事件处理过程如下。但加框处代码有错,请改正。
Private Sub Command3_Click()
Dim zero As String, x1 As Integer, y1 As Integer
Dim i As Integer, j As Integer
Dim s(1 To 100) As String, r As String
zero = ″ ″
x = Text1.Text
y = Text2.Text
For i = Len(y) To 1 Step -1
f = 0: s(i) = ″ ″: y1 = Val(Mid(y, i, 1))
For j = Len(x) To 1 Step -1
x1 = Val(Mid(x, j, 1))
z = x1 * y1
s(i) =s(i)& ((f + z) Mod 10) '①
f = z \ 10   '②
Next
If f <> 0 Then
s(i) = f & s(i) & zero
Else
s(i) = s(i) & zero
end if
zero = zero + ″0″
Next
r = ″ ″
For i = 1 To Len(y)
r = add(r, s(i))  'add是自定义函数,功能是把两个数相加
Next i
Text3.Text = r
End Sub答案: ①((f + z) Mod 10) & s(i) ②(f + z) \ 10
4.小明编写了一个求真分数精确值的VB程序。程序运行时,在文本框Text1中输入被除数,在文本框Text2中输入除数,并保证被除数小于除数,单击“计算”按钮Command1,在标签Label3中显示结果(最多计算到第20位)。程序运行界面如图所示。
(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。
Dim a(1 To 20) As Integer, b(1 To 20) As Integer
Function Judge(position As Integer) As Boolean '判断循环节
Dim i As Integer
For i=1 To position-1
If b(i)= ①  Then Judge=False:Exit Function
Next i
Judge=True
End Function
Private Sub Command1_Click()
Dim m As Integer,n As Integer,x As Integer,i As Integer
Dim flag As Boolean,st As String
m=Val(Text1.Text):n=Val(Text2.Text)
st=Str(m)+″/″+Str(n)+″=0.″
i=1:x=1:flag=True
b(1)=m
m=m 10
Do While i<=20 And flag=True
a(i)= ② 
If a(i)>0 Then
x=x+1
b(x)=m Mod n
m=b(x) 10
Else
m=m 10
End If
flag=Judge(x)
If b(x)=0 And x<>0 Then flag=False
st= ③ 
i=i+1
Loop
Label3.Caption=st
End Sub
(2)运行程序,在文本框Text1中输入被除数1,在文本框Text2中输入除数3,单击“计算”按钮Command1,在标签Label3中显示结果是      。
5.【难度题】大数据乘法运算就是运用数组,用程序模拟列竖式计算的过程。两个正整数进行乘法计算的一般算法如下:
(1)将第一个整数各位上的数字按照从低位到高位的顺序依次存入数组a(1)、a(2)、……、a(La)中,将另一个整数各位上的数字按照从低位到高位的顺序依次存入数组b(1)、b(2)、……、b(Lb)中。其中,La表示第一个整数的位数,Lb表示第二个整数的位数;
(2)按照从低位到高位的顺序,将两个整数各位数值进行逐位乘法计算(第一轮先让b(1)依次乘以a(1)、a(2)……a(La),第二轮再让b(2)依次乘以a(1)、a(2)、……a(La),依次进行),每位的乘法结果也按照低位到高位的顺序依次存入数组c(1)、c(2)、c(3)……中;
(3)对数组ans中的计算结果进行从低位到高位的进位处理;
(4)统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;
(5)按照高位到低位的顺序输出数组ans中的计算结果。
小强按照上述方法设计了一个两数进行大数据乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行大数据乘法计算,并在标签Label4中输出计算结果。下面信息显示了进行高精度乘法计算的主要过程(假设输入的两个整数分别为“123”和“45”)
b(1)依次乘数组a中各个数,先不进位  b(2)依次乘数组a中各个数,并在之前结果上累加,先不进位
处理进位(逢十进一):
数组 ans(4) ans(3) ans(2) ans(1)
计算结果 4 13 22 15
进位处理后结果 5 5 3 5
实现上述功能的VB程序如下:
(1)请在划线处填入合适代码。
Dim a(1 To 30) As Integer,b(1 To 30) As Integer,c(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;将保存结果的数组c(i)值初始化为零(该部分程序代码略)
For i=1 To Lb '按低位到高位的顺序进行列竖式的逐位乘法
For j=1 To La
c(i+j-1)= ① +b(i)*a(j)
Next j
Next i
For i=1 To La+Lb '对计算结果进行进位处理
c(i+1)=c(i+1)+c(i)\10
c(i)= ② 
Next i
length=La+Lb '最多位数
Do While c(length)=0 '计算实际位数
length=length-1
Loop
For i= ③  To 1 Step-1
Label4.Caption=Label4.Caption+Str(c(i))
Next i
End Sub
(2)根据本题算法,若输入的两个整数分别为5125和18,则在输出乘法计算结果时,变量length的值为    。
同课章节目录