版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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课后练习1.在VB算术运算中,最大的Double类型有效数字也只有15位。为了实现除法运算的商可以保留任意位
3、数,小明根据除法原理,编写了如下程序。功能如下:程序运行时,在文本框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.Text)n=Val(Text3.Te
4、xt)s=s+Str(xy)s=s+.添加小数点k=i=1Do While i=nk=k 10s=k=k Mod yLoopLabel2.Caption=商为:+sEnd Sub2.小名编写了一个多位数乘法的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
5、Dim i As Integer,n As Integer,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.Te
6、xt=str2End Sub3.求两个任意位数正整数的积。实现该功能的VB程序界面如下所示:在文本框Text1中输入数1,在文本框Text2中输入数2,单击按钮乘积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 = Text
7、1.Texty = Text2.TextFor i = Len(y) To 1 Step -1f = 0: s(i) = : y1 = Val(Mid(y, 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
8、) add是自定义函数,功能是把两个数相加Next iText3.Text = rEnd Sub答案: (f + z) Mod 10) & s(i)(f + z) 104.小明编写了一个求真分数精确值的VB程序。程序运行时,在文本框Text1中输入被除数,在文本框Text2中输入除数,并保证被除数小于除数,单击“计算”按钮Command1,在标签Label3中显示结果(最多计算到第20位)。程序运行界面如图所示。(1)实现上述功能的VB程序如下,请在划线处填入合适的代码。Dim a(1 To 20) As Integer, b(1 To 20) As IntegerFunction Judge
9、(position As Integer) As Boolean判断循环节Dim i As IntegerFor i=1 To position-1If b(i)= Then Judge=False:Exit FunctionNext iJudge=TrueEnd FunctionPrivate Sub Command1_Click()Dim m As Integer,n As Integer,x As Integer,i As IntegerDim flag As Boolean,st As Stringm=Val(Text1.Text):n=Val(Text2.Text)st=Str(m)
10、+/+Str(n)+=0.i=1:x=1:flag=Trueb(1)=mm=m 10Do While i0 Thenx=x+1b(x)=m Mod nm=b(x) 10Elsem=m 10End Ifflag=Judge(x)If b(x)=0 And x0 Then flag=Falsest=i=i+1LoopLabel3.Caption=stEnd Sub(2)运行程序,在文本框Text1中输入被除数1,在文本框Text2中输入除数3,单击“计算”按钮Command1,在标签Label3中显示结果是。5.【难度题】大数据乘法运算就是运用数组,用程序模拟列竖式计算的过程。两个正整数进行乘法计
11、算的一般算法如下:(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
12、)统计数组ans中实际计算结果的有效数值位数,并将位数值存入变量length;(5)按照高位到低位的顺序输出数组ans中的计算结果。小强按照上述方法设计了一个两数进行大数据乘法计算的VB程序,功能如下:在文本框Text1和Text2中依次输入两个整数,单击“计算”按钮Command1,程序进行大数据乘法计算,并在标签Label4中输出计算结果。下面信息显示了进行高精度乘法计算的主要过程(假设输入的两个整数分别为“123”和“45”)b(1)依次乘数组a中各个数,先不进位b(2)依次乘数组a中各个数,并在之前结果上累加,先不进位处理进位(逢十进一):数组ans(4)ans(3)ans(2)ans
13、(1)计算结果4132215进位处理后结果5535实现上述功能的VB程序如下:(1)请在划线处填入合适代码。Dim a(1 To 30) As Integer,b(1 To 30) As Integer,c(1 To 60) As IntegerDim La As Integer,Lb As Integer,length As IntegerPrivate 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 Lac(i+j-1)=+b(i)*a(j)Next jNext iFor i=1 To La+Lb对计算结果进行进位处理c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安装工程施工合同的争议处理方式3篇
- 数据保密责任书3篇
- 招标管理现象调查3篇
- 安徽人力资源行业劳动合同模板3篇
- 施工中的劳务分包与干挂石材合同解析3篇
- 布线工程招投标书3篇
- 捐赠协议书模板集合3篇
- 招标项目的设计邀请函写作3篇
- 工业材料采购规定文件3篇
- 招标文件领取截止3篇
- 《零售药店实务》期末考试复习题及答案
- 培训中心商业计划书
- 2025年上半年事业单位联考内蒙古自治区民政厅招聘3人准考重点基础提升(共500题)附带答案详解
- 2024年度云计算中心综合布线合同5篇
- 2024-2025学年华东师大新版八年级上册数学期末复习试卷(含详解)
- 期末测试卷-2024-2025学年语文四年级上册统编版
- 开票税点自动计算器
- 医疗器械质量安全风险会商管理制度
- 幼儿园绘本故事:《小年兽》 课件
- 京剧英语介绍PPT课件
- in、ing对比辨音练习.doc
评论
0/150
提交评论