例1 现VB程序实现述功程序界面图示文框Text1Text2中分输入加数加数单击求钮Command1文框Text3中显示
实现述功VB程序加框处代码错请改正
Private Sub Command1_Click()
Dim t As String
xText1Text
yText2Text
z″ ″
If Len(y)
End If
For i1 To Len(y)Len(x)
xx+″0″ '①
Next i
f0
For iLen(x) To 1 Step1
aVal(Mid(xi1))
bVal(Mid(yi1))
zStr((a+b) Mod 10)+z '②
f(a+b)\10
Next
If f1 Then zStr(f)+z
Text3Textz
End Sub
例2求两意位数正整数差功实现VB定义函数程序加框处代码错请改正
Private function fx(x as Stringy as String)as String '参数xy表示减数减数
Dim t As String z As String a As String b As String
Dim i As Integerf as Integer sign as String
z ″ ″
sign ″ ″
If Len(y) > Len(x) Or (Len(x) Len(y) Andx
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
例3VB程序实现数加法功文框Text1Text2中分输入位数超100加数加数单击求钮Command1文框Text3中显示
实现述功VB程序请划线处填入合适代码
Private Sub Command1_Click()
Dim a(100) as Integerb(100) as Integerc(100) as Integer
Dim s1 as Strings2 as Strings3 as String
Dim n1 as integern2 as Integern3 as Integercf as Integer
'第1数s1位分解数组a
s1Text1Text
n1len(s1)
For i1 to n1
a(i)val(mid(s1n1i+11))
Next i
'第2数s2位分解数组b
s2Text2Text
n2len(s2)
For i1 to 2
b(i)val(mid(s2n2i+11))
Next i
If n1>n2 then n3n1+1 else n3n2+1
cf0
For i1 to n3 '位次相加
①
cfc(i)\10
②
Next i
s3″ ″
If c(n3)0 then n3n31
For in3 to 1 step1 '计算结果输出
s3 ③
Next I
Text3texts3
End sub
课练
1VB算术运算中Double类型效数字15位实现法运算商保留意位数明根法原理编写程序功程序运行时文框Text1中输入数(正整数)文框Text2中输入数(正整数)文框Text3中输入数位数(正整数)单击钮Command1标签Label2显示法运算商程序运行界面图示
请划线处填入合适代码
Private Sub Command1_Click()
Dim x As Integery As Integer
Dim n As Integer '存储数位数
Dim s As String '存储商
xVal(Text1Text)yVal(Text2Text)
nVal(Text3Text)
ss+Str(x\y)
ss+″″ '添加数点
k ①
i1
Do While i
s ②
kk Mod y
③
Loop
Label2Caption″商″+s
End Sub
2名编写位数法VB程序文框Text1中输入等1000位数文框Text2中输入1位数点击开始计算钮Command1文框Text3中显示计算结果
实现述功VB程序加框处代码错请改正
Private Sub Command1_Click()
Dim d(1 To 1001) As Integerstr1 As Stringstr2 As String
Dim i As Integern As Integerk As Integers As Integer
str1Text1Text
nLen(str1)
For i1 To n
d(i)Val(Mid(str1i1))
Next i
s0 's表示进位
kVal(Text2Text)
For in To 1 Step1
d(i)d(i) k '①
sd(i)\10
d(i)d(i) Mod 10
Next i
If s<>0 Then str2CStr(s) Else str2″ ″ 'CStr函数功类似Str
For i1 To n
str2CStr(d(i))+str2 '②
Next i
Text3Textstr2
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 Text1Text
y Text2Text
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
Text3Text 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 i1 To position1
If b(i) ① Then JudgeFalseExit Function
Next i
JudgeTrue
End Function
Private Sub Command1_Click()
Dim m As Integern As Integerx As Integeri As Integer
Dim flag As Booleanst As String
mVal(Text1Text)nVal(Text2Text)
stStr(m)+″″+Str(n)+″0″
i1x1flagTrue
b(1)m
mm 10
Do While i<20 And flagTrue
a(i) ②
If a(i)>0 Then
xx+1
b(x)m Mod n
mb(x) 10
Else
mm 10
End If
flagJudge(x)
If b(x)0 And x<>0 Then flagFalse
st ③
ii+1
Loop
Label3Captionst
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程序功文框Text1Text2中次输入两整数单击计算钮Command1程序进行数法计算标签Label4中输出计算结果面信息显示进行高精度法计算程(假设输入两整数分12345)
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 Integerb(1 To 30) As Integerc(1 To 60) As Integer
Dim La As IntegerLb As Integerlength As Integer
Private Sub Command1_Click()
Dim i As Integerj As Integert As Integertemp As String
'两数(正整数)数位数字述算法次存入数组ab正整数位数分保存变量LaLb保存结果数组c(i)值初始化零(该部分程序代码略)
For i1 To Lb '低位高位序进行列竖式逐位法
For j1 To La
c(i+j1) ① +b(i)*a(j)
Next j
Next i
For i1 To La+Lb '计算结果进行进位处理
c(i+1)c(i+1)+c(i)\10
c(i) ②
Next i
lengthLa+Lb '位数
Do While c(length)0 '计算实际位数
lengthlength1
Loop
For i ③ To 1 Step1
Label4CaptionLabel4Caption+Str(c(i))
Next i
End Sub
(2)根题算法输入两整数分512518输出法计算结果时变量length值
文档香网(httpswwwxiangdangnet)户传
《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档