其他典型算法之数值计算-专项训练浙江2022届选考专用(教师版).docx
《其他典型算法之数值计算-专项训练浙江2022届选考专用(教师版).docx》由会员分享,可在线阅读,更多相关《其他典型算法之数值计算-专项训练浙江2022届选考专用(教师版).docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、其他典型算法之数值计算【例1】 现用VB程序实现上述功能,程序界面如下图所示,在文本框Text1和Text2中分别输入被加数和加数,单击求和按钮Command1,在文本框Text3中显示和。实现上述功能的VB程序如下。但加框处代码有错,请改正。Private Sub Command1_Click()Dim t As Stringx=Text1.Text y=Text2.Textz= If Len(y) Len(x) Or (Len(x) = Len(y) Andxy) Thent = x: x = y: y = t: sign = -End IfFor i = 1 To Len(x) - Le
2、n(y)y = 0 + yNext if = 0For i = Len(x) To 1 Step -1 a = Val(Mid(x, i, 1) b = Val(Mid(y, i, 1)If a n2 then n3=n1+1 else n3=n2+1cf=0For i=1 to n3按位依次相加cf=c(i)10Next is3= If c(n3)=0 then n3=n3-1For i=n3 to 1 step-1计算结果输出s3=Next IText3.text=s3End sub答案: c(i)=a(i)+b(i)+cfc(i)=c(i) mod 10或c(i)=c(i)-cf*10s
3、3+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类型有效数字也只有1
4、5位。为了实现除法运算的商可以保留任意位数,小明根据除法原理,编写了如下程序。功能如下:程序运行时,在文本框Text1中输入被除数(正整数),在文本框Text2中输入除数(正整数),在文本框Text3中输入小数位数(正整数)。单击按钮Command1后,在标签上Label2显示除法运算的商。程序运行界面如下图所示:请在划线处填入合适代码。Private Sub Command1_Click()Dim x As Integer,y As IntegerDim n As Integer用于存储小数位数Dim s As String用于存储商x=Val(Text1.Text):y=Val(Text2
5、.Text)n=Val(Text3.Text)s=s+Str(xy)s=s+.添加小数点k=i=1Do While in或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 StringDim i As Integer,n As In
6、teger,k As Integer,s As Integerstr1=Text1.Textn=Len(str1)For i=1 To nd(i)=Val(Mid(str1,i,1)Next is=0s表示进位k=Val(Text2.Text)For i=n To 1 Step-1d(i)=d(i) ks=d(i)10d(i)=d(i) Mod 10Next iIf s0 Then str2=CStr(s) Else str2= CStr函数功能类似于StrFor i=1 To nstr2=CStr(d(i)+str2Next iText3.Text=str2End Sub
7、答案 d(i)=d(i)*k+sstr2=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,单击按
8、钮乘积Command3,在文本框Text3中显示乘积。Command3按钮的单击事件处理过程如下。但加框处代码有错,请改正。Private Sub Command3_Click()Dim zero As String, x1 As Integer, y1 As IntegerDim i As Integer, j As IntegerDim s(1 To 100) As String, r As Stringzero = x = Text1.Texty = Text2.TextFor i = Len(y) To 1 Step -1f = 0: s(i) = : y1 = Val(Mid(y,
9、i, 1)For j = Len(x) To 1 Step -1x1 = Val(Mid(x, j, 1)z = x1 * y1s(i) =s(i)& (f + z) Mod 10)f = z 10 NextIf f 0 Thens(i) = f & s(i) & zeroElses(i) = s(i) & zeroend ifzero = zero + 0Nextr = For i = 1 To Len(y)r = add(r, s(i) add是自定义函数,功能是把两个数相加Next iText3.Text = rEnd Sub答案: (f + z) Mod 10) & s(i)(f +
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 其他 典型 算法 数值 计算 专项 训练 浙江 2022 届选考 专用 教师版
限制150内