vb书后编程题目
- 格式:doc
- 大小:157.00 KB
- 文档页数:8
Vb编程题1.求自然数1~100之间奇数之和。
Private Sub Form_Click()Dim i%, sum%For i = 1 To 99 Step 2sum = sum + iNext iPrint "sum="; sumEnd Sub2.求自然数1~100之间偶数之和。
Private Sub Form_Click()Dim i%, sum%For i = 1 To 100If i mod 2=0 thensum = sum + iend ifNext iPrint "sum="; sumEnd Sub3.编写程序,在窗体上随机输出一个10--99之间的两位整数。
Sub command1_click()Dim a%Randomizea=int(rnd*90+10)print aend sub4.编程计算从200到1000之间的所有4的倍数之和。
Private Sub Form_Click()Dim sum As Longsum = 0For i = 200 To 1000If i Mod 4 = 0 Thensum = sum + iEnd IfNext iPrint sumEnd Sub5.编写程序在窗体上显示出:5/6+4/5+3/4+2/3+1/2Dim s As Singles = 0For i = 5 To 1 Step -1s = s + i / (i + 1)NextPrint “5/6+4/5+3/4+2/3+1/2=”;s6.在窗体的单击事件中编写程序,从键盘上任意输入3个数,输出最大数。
Private Sub Command2_Click()Clsa = Val(InputBox("接收三个数:"))Print a;Max = aFor i = 1 To 2a = Val(InputBox("接收三个数:"))Print a;If a > Max Then Max = aNextPrintPrint "三数中最大者是:"; MaxEnd Sub7.在窗体的单击事件中编写程序,从键盘上任意输入3个数,输出中间数。
4.编写程序生成一个二维数组A(5, 5),求两条对角线元素之和Option ExplicitPrivate Sub Command1_Click()Dim a(5, 5) As IntegerDim i As IntegerDim j As IntegerDim x As IntegerDim y As IntegerFor i = 0 To 5For j = 0 To 5a(i, j) = Int(100 * Rnd) '随机产生一个0~100的整数If i = j Then x = x + a(i, j)If i + j = 5 Then y = y + a(i, j)NextNextMsgBox "两条对角线元素之和分别是" & x & "," & yEnd Sub5.编写程序将文本框Text1中的大写字母放到文本框Text2中。
Dim n As IntegerFor i = 1 To Len(Text1)n = Asc(Mid(Text1.Text, i, 1))Text2 = Text2 & IIf(n >= 65 And n <= 90, Chr(n), "")Next6.随机生成20个两位正整数存放到Text1中,找出其中的偶数并以与找出相反的顺序存放到Text2中。
Private Sub Form_Load()RandomizeDim a(20), iText1 = ""Text2 = ""For i = 1 To 20a(i) = Int(Rnd * 90 + 10)Text1 = Text1 & a(i) & " "If a(i) Mod 2 = 0 ThenText2 = " " & a(i) & Text2End IfNextEnd Sub7.编写程序将窗体上文本框Text1中的字符串中的所有大写字母找出,并按逆输出到文本框Text2中。
vb程序设计书习题和参考答案练习题习题⼀⼀、判断题1.Visual Basic是以结构化的Basic语⾔为基础、以事件驱动作为运⾏机制的可视化程序设计语⾔。
2.⾯向对象的程序设计是⼀种以对象为基础,由事件驱动对象的编程技术。
3.事件是由Visual Basic预先定义的对象能够识别的动作。
4.新建⼯程时系统会⾃动将窗体标题设置为Form1。
5.控件的属性值不可以在程序运⾏时动态地修改。
6.决定对象是否可见的属性为Visible属性,决定对象可⽤性的属性是Enabled属性。
7.保存Visual Basic⽂件时,若⼀个⼯程包含多个窗体或模块,则系统先保存⼯程⽂件,再分别保存窗体或模块⽂件。
8.单击“启动”菜单项将窗体装⼊内存时,⼀定触发窗体的Load事件。
9.“事件过程”是⽤来完成事件发⽣后所要执⾏的程序代码。
10.在打开某窗体时,初始化该窗体中的各控件,应选⽤Load事件。
⼆、选择题1.⼯程⽂件的扩展名为。
A、.frxB、.basC、.vbpD、.frm2.下列不属于对象的基本特征是。
A、属性B、⽅法C、事件D、函数3.在设计模式双击窗体将显⽰的窗⼝是A、⼯程窗⼝B、⼯具箱C、代码窗⼝D、属性窗⼝4.VB中运⾏程序的快捷键是A、F2B、F5C、Alt+F35.改变控件在窗体中的上下位置应修改该控件的属性。
A、TopB、LeftC、WidthD、Right6.窗体模块的⽂件扩展名是A、.exeB、.basC、.frxD、frm7.设置窗体的字体⽤属性。
A、FontNameB、FontSizeC、FontBoldD、FontItalic8.设置窗体的字号⽤属性。
A、FontNameB、FontSizeC、FontBoldD、FontItalic9.下列选项中不属于事件的是。
A、DblclickB、LoadC、ShowD、KeyUp10.VB编制的程序保存在磁盘上,⾄少会产⽣何种⽂件。
A、.doc与.txtB、.com与.exe.C、.bat与.frmD、.vbp与.frm三、程序设计题1.新建⼀个⼯程,单击窗体时,在窗体上显⽰“欢迎使⽤Visual Basic程序”。
vb程序习题答案VB程序习题答案在学习Visual Basic(VB)编程的过程中,做习题是非常重要的一部分。
通过做习题,我们可以巩固所学的知识,提高编程能力。
下面是一些常见的VB程序习题及其答案。
1. 编写一个程序,计算1到100的所有偶数的和。
答案:```vbDim sum As Integersum = 0For i = 1 To 100If i Mod 2 = 0 Thensum = sum + iEnd IfNextMsgBox("1到100的所有偶数的和为:" & sum)```2. 编写一个程序,找出一个数组中的最大值和最小值。
答案:```vbDim arr() As Integer = {5, 8, 3, 9, 2}Dim max As Integer = arr(0)Dim min As Integer = arr(0)For Each num In arrIf num > max Thenmax = numEnd IfIf num < min Thenmin = numEnd IfNextMsgBox("数组中的最大值为:" & max & ",最小值为:" & min)```3. 编写一个程序,将一个字符串反转。
答案:```vbDim str As String = "Hello, World!"Dim reversedStr As String = ""For i = str.Length - 1 To 0 Step -1reversedStr = reversedStr & str(i)NextMsgBox("反转后的字符串为:" & reversedStr)```通过做这些习题,我们可以加深对VB编程语言的理解,提高编程能力。
编程:输入一个三位数,在窗体打印输出其个位数、十位数和百位数。
填空题:1.下面程序执行的结果是?Private Sub Command1_Click()a = 1:b = 2:c = 3a = bb = cc = aPrint "a="; a; "b="; b; "c="; cEnd Sub2.下面程序执行的结果是?Private Sub Command2_Click()A$ = "123": B$ = "456"C = Val(A) + Val(B)Print C \ 100End Sub3.下面程序执行的结果是?Private Sub Command3_Click()Dim x As String, y As String, z As Stringx = "A": y = "B": z = "C"x = y & xy = y & zz = x & z & yPrint x + y + zEnd Sub4.下面程序执行的结果是?Private Sub Command4_Click()Dim x As Integer, y As Integer, z As Integerx = 1y = 2z = x = yPrint x; y; zEnd Sub5.当程序运行后,在文本框Text1中输入1234,窗体上的输出结果是?Private Sub Text1_Change()Print Text1 & "-";End Sub6.下面程序运行的结果是?Private Sub Command1_Click()x = Int(Rnd) + 3If x ^ 2 > 8 Then y = x ^ 2 + 1If x ^ 2 = 9 Then y = x ^ 2 - 2If x ^ 2 < 8 Then y = x ^ 3Print "x="; x, "y="; yEnd Sub7.执行下面程序,假设输入数据分别是14、3、251、21时,输出内容分别是多少?Private Sub Command2_Click()Dim a As Integer, w As Integera = Val(InputBox(""))Select Case a Mod 5Case Is < 4w = a + 10Case Is < 2w = a * 2Case Elsew = a - 10End SelectPrint "w=" & Str(w)End Sub8.下面程序运行后,在文本框中输入123456并按Enter键后,写出文本中显示的内容。
VB课后习题解答第一、二章:1、简述VB6.0的主要特点答:方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。
2、当正常安装VB6.0后,误把Windows子目录删除。
当重新安装Windows后,是否需要再次安装VB6.0?答:要重新安装的。
因为安装VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows子目录,就必须重新安装VB6.0。
3、Visual Basic 6.0分为学习版、专业版和企业版,如何知道所安装的是哪个版本?答:在VB6.0的启动界面上,能显示对应的版本。
4、叙述建立一个完整应用程序的过程答:首先建立用户界面的控件对象(简称控件);然后对控件属性进行设置;再对控件事件过程及编程;保存应用程序;程序调试和运行。
5、Visual Basic 6.0有多种类型窗口,若要在设计时看到代码窗口,应怎样操作?答:选择“视图”—>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。
6、当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。
试问该工程涉及多少个要保存的文件?若要保存该工程的所有文件,应先保存什么文件?再保存什么文件?若不这样做,系统会出现什么信息?答:涉及两个文件要保存。
先保存窗体文件(.frm),再保存工程文件(.vbp)。
若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。
7、保存文件时,若不改变目录名,则系统默认的目录是什么?答:系统默认的目录是VB988、安装Visual Basic 6.0后,帮助系统是否也已安装?答:没有。
VB6.0的帮助系统在两张光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。
9、如何使用Visual Basic 6.0的帮助系统?答:最方便的方法是选定要帮助的内容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定内容有关的帮助信息。
1实验名称:”第一个VB应用程序”实验目的:了解并掌握Visual Basic 6.0的界面及常用控件的使用,并创建一个名为”简单计算器程序设计”的应用程序Private Sub command1_click()x = Val(Text1.Text)y = Val(Text2.Text)Text3.Text = x + yEnd SubPrivate Sub command2_click()Dim x As SingleDim y As Singlex = Val(Text1.Text)y = Val(Text2.Text)Text3.Text = x * yEnd SubPrivate Sub command3_click()Dim x As SingleDim y As Singlex = Val(Text1.Text)y = Val(Text2.Text)Text3.Text = x - yEnd SubPrivate Sub command4_click()Dim x As SingleDim y As Singlex = Val(Text1.Text)y = Val(Text2.Text)If y = 0 ThenText3.Text = "除数不能为0 !"ElseText3.Text = x / yEnd IfEnd Sub2实验名称:”算术运算符的简单应用”实验目的:进一步熟悉Visual Basic 6.0的友好界面,掌握常用控件的布局与使用,理解并熟练应用八个算术运算符号,并创建一个名为”将一个三位正整数逆序输出”的应用程序实验要求:在第一个TextBox中任意输入一个三位的正整数,在第二个TextBox中显示其逆序的数(例如输入345,则输出543)Private Sub Command1_Click()Dim x As IntegerDim a As IntegerDim b As IntegerDim c As Integerx = Val(Text1.Text)If x < 100 Or x > 999 ThenText2.Text = "请输入一个正确的三位正整数"Elsea = Int(x / 100)b = x Mod 10c = Int(x / 10) Mod 10Text2.Text = b * 100 + c * 10 + aEnd IfEnd SubPrivate Sub Command2_Click()EndEnd SubPrivate Sub Form_Load()End Sub3实验名称:”算术运算符的简单应用”实验目的:进一步熟悉Visual Basic 6.0的友好界面,掌握常用控件的布局与使用,理解并熟练应用八个算术运算符号,并创建一个名为”将一个三位正整数逆序输出”的应用程序实验要求:在第一个TextBox中任意输入一个三位的正整数,在第二个TextBox中显示其逆序的数(例如输入345,则输出543)Private Sub Command1_Click()Dim a As SingleDim b As SingleDim c As SingleDim p As Singlea = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)p = (a + b + c) / 2If a + b <= c Or b + c <= a Or a + c <= b ThenText5.Text = "不能构成三角形"End IfIf a <= 0 Or b <= 0 Or c <= 0 ThenText5.Text = "您所输入的数据无效,请输入正确的正数"ElseText4.Text = "三角形的三条边为:" & a & "," & b & "," & cText5.Text = "三角形的面积为:" & Sqr(p * (p - a) * (p - b) * (p - c))End IfEnd SubPrivate Sub Command2_Click()EndEnd Sub4实验名称:“输入系数a,b和c,求二次方程ax2+bx+c=0的实根”实验目的:掌握选择结构程序的设计方法,进一步理解并熟练应用InputBox()函数和MsgBox 语句与函数的使用方法,运用多分支或嵌套结构创建一个名为”求二次方程ax2+bx+c=0的实根”的应用程序。
1.输入3个数,输出最大的数2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”,若小于60,则弹出消息框,显示“抱歉!成绩没有通过!”4.输入一年份,判断它是否为闰年,并显示有关信息。
(判断闰年的条件是:年份能被4整除但不能被100整除,或者能被400整除)5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。
6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。
例如,产生246,输出是642。
7.输入两个整数,求它们的最大公约数。
8.编程求200--400范围内5的倍数或7的倍数之和。
(一个数如果同时是7和5的倍数,则只能加一次。
9.计算100~300之间所有能被3和7整除的数之和10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少。
11.某次歌曲大奖赛,有7个评委。
如果分别输入7个评委对某个参赛者的打分数,按照去掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。
12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。
13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。
14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少?15.求100以内的素数16.百元买百鸡问题。
假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方案。
17.编程求斐波那契数列前11项。
(斐波那契数列:F(0)=f(1)=1, F(n)=F(n-1)+F(n-2) n>=2 )18.将输入的字符串以反序显示。
例如:输入“ASDFGT”,显示“TGFDSA”19.随机产生10个[30,100]内的整数,求最大值及所对应的下标20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。
vb第二版课后习题答案《VB第二版课后习题答案》在学习VB(Visual Basic)第二版课程时,课后习题是巩固知识、检验学习成果的重要环节。
通过认真完成课后习题,不仅可以加深对VB编程语言的理解,还可以提高编程能力和解决问题的能力。
下面将对VB第二版课后习题答案进行详细解析。
第一题:请编写一个程序,实现两个数的加法运算。
答案:可以使用以下代码实现:```vbDim num1 As IntegerDim num2 As IntegerDim sum As Integernum1 = InputBox("请输入第一个数:")num2 = InputBox("请输入第二个数:")sum = num1 + num2MsgBox "两个数的和为:" & sum```第二题:请编写一个程序,实现对一个数组中所有元素的求和并计算平均值。
答案:可以使用以下代码实现:```vbDim arr(5) As IntegerDim sum As IntegerDim average As DoubleFor i = 0 To 4arr(i) = InputBox("请输入第" & i + 1 & "个数:")sum = sum + arr(i)Nextaverage = sum / 5MsgBox "数组中所有元素的和为:" & sum & ",平均值为:" & average```通过以上两道题的答案解析,我们可以看到,在VB编程中,可以通过简单的代码实现复杂的功能,这需要我们对VB语言有深刻的理解和熟练的运用。
通过课后习题的练习,我们可以不断提高自己的编程能力,为将来的工作和学习打下坚实的基础。
总之,VB第二版课后习题答案是我们学习和掌握VB编程语言的重要参考资料,希朝着大家能够认真对待课后习题,不断提高自己的编程能力,为将来的发展打下坚实的基础。
vb代码练习题VB代码练习题是一种帮助学习者熟悉和提高VB语言编程能力的方式。
通过完成一系列的练习题,学习者能够加深对VB语言的理解,并提高自己的编程能力。
本文将介绍一些VB代码练习题的例子,并给出相应的代码示例和解答,以帮助读者更好地掌握VB编程。
练习题一:计算器程序要求:编写一个简单的计算器程序,实现基本的加、减、乘、除运算。
代码示例:```Private Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 + num2txtResult.Text = result.ToString()End SubPrivate Sub btnSubtract_Click(sender As Object, e As EventArgs) Handles btnSubtract.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 - num2txtResult.Text = result.ToString()End SubPrivate Sub btnMultiply_Click(sender As Object, e As EventArgs) Handles btnMultiply.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 * num2txtResult.Text = result.ToString()End SubPrivate Sub btnDivide_Click(sender As Object, e As EventArgs) Handles btnDivide.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim result As Double = num1 / num2txtResult.Text = result.ToString()End Sub```解答:通过点击相应的按钮,用户可以输入两个数字,并选择执行的运算操作。
第1章 四、编程及上机调试 1.新建一个工程,在窗体中放置一个Image(图像)控件,通过属性窗口设置Image控件的如下属性: Width(宽) 3000 Height(高) 2300 Stretch(调整图形大小) True Left(左边位置) 800 Top(顶边位置) 300 Picture(加载图形) 图形由本地磁盘中搜索 启动运行程序,观察图形有什么变化。将图像控件的Stretch属性值改为False后运行程序,图形又有什么变化。 2.新建一个工程,在窗体上放置一个标签控件,当单击窗体时,在标签上显示“你单击了窗体”;当双击窗体时,在标签上显示“你双击了窗体”。
第2章 四、编程及上机调试 1.在窗体上放置三个命令按钮,如图2.20所示,单击按钮分别使窗体最大化、还原或最小化。(提示:使用窗体的WindowState属性)。
2.设计一个程序,窗体上有“显示”和“退出”两个命令按钮,如图2.21所示。单击“显示”按钮时,窗体上显示一个图片,同时将两个命令按钮隐藏,如图2.22所示。单击图2.22的窗体时,恢复为图2.21。单击“退出”按钮,结束程序的运行。
图2.20 改变窗体的运行状态
图2.21 运行程序显示两个按钮 图2.22 单击“显示”按钮出现图片 第3章 三、编程及上机调试 1.按图3.15所示界面,编程实现其功能。
2.编写能对列表框中的项目进行添加、删除和统计的应用程序。要求:单击“添加”按钮,可将文本框中输入的内容添加到下面的列表框中;单击“删除”按钮,可删除列表框中选定的项目,如果没有选定要删除的项目,则“删除” 按钮不可用;单击“统计人数”按钮,可将列表框中的项目总数输出到右边的文本框(文本框不允许用户编辑)。初始运行时的窗体如图3.16所示,运行中的窗体如图3.17所示。
第4章 三、编程及上机调试 1.随机产生一个4位正整数,求出该数的倒序数,输出该数及倒序数。如产生的数为1234,则倒序数为4321。通过上机调试来完成下列程序代码。 Private Sub Form_Load() Dim x As Integer, s As String, d As String Randomize x = Int(________) s = ________(x) d = Right(s, 1) +________ Show
图3.15 标准控件的应用 图3.16 初始运行界面 图3.17输入姓名后的界面 Print "产生的数:"; x, "倒序数:"; d End Sub 2.设计程序,从键盘输入字符时,在窗体上立即显示所键入的字符和该字符的ASCII码,如图4.12所示。双击窗体时,清除窗体上显示的内容。(提示:利用窗体的KeyPress事件)
3.根据如图4.13所示的消息框,写出相应的实现语句。
第5章 二、编程及上机调试 1.利用If语句、Select Case语句两种方法计算分段函数:
100,12010,2320,232xxx
xxxxxy
2.在窗体上以每行两个数的格式输出所有的“水仙花数”。所谓“水仙花数”是指该数的各位上的数字的立方和恰好等于该数的一个三位数。(提示:首先分离出每位数字) 3.目前世界人口为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到或超过70亿?(提示:使用公式p = p0 * (1 + r),p0为当前人口,r为增长率) 4.计算表达式
,6543215432xxxxxSx>1
要求计算精度为第n项的绝对值小于10 – 5。
第6章 二、编程及上机调试 1.随机生成一个包含10个元素的一维数组,然后将其前5个元素与后5个元素对换,即,第1个元素与第10个元素对换,第2个元素与第9个元素对换,„,第5个元素与第6个元素对换。分别输出数组原来各元素的值和对换后各元素的值。 2.有一个3行4列的数组,编写程序,找出其中最大的那个元素所在的行和列,并输出其
图4.12 输出字符及其ASCII码 图4.13 信息输出对话框 值及行号和列号。 3.参照图6.21所示界面,编写程序求每一行与每一列之和。
4.编写程序,实现矩阵转置。例如,如下矩阵A转置后成为矩阵B。 ,623142A
623142B
5.编写程序,建立并输出一个10行10列的矩阵,该矩阵对角线元素为0,其余元素均为1。 6.编写程序,设有一包含10个元素的数组,从键盘上输入一个数,将该数从数组中删除。 7.某单位开运动会,共有10人参加男子100米短跑,运动员号码和成绩见下表,编写程序,按名次输出运动员的名次、号码和成绩。
号码 成绩 号码 成绩 017号 11.3秒 035号 12.3秒 128号 12.0秒 235号 11.8秒 089号 12.6秒 121号 11.6秒 143号 12.8秒 189号 11.8秒 231号 12.4秒 094号 12.1秒
第7章 四、编程及上机调试 1.编写过程,用下面的公式计算π的近似值:
121)1(715131141nn
在事件过程中调用该过程,输出当n分别为100,600,1100,1600时π的近似值。 2.编写程序,验证一个大于2的偶数可以表示为两个素数之和。 3.利用随机函数Rnd生成10个两位的整数,将其降序排列输出到一个文本框中。 4.编写程序,求出1000之内的所有完数。所谓“完数”是指一个数恰好等于它的因子之和。如6的因子为1、2、3,而6 = 1 + 2 + 3,所以6是完数。 5.创建一个包含两个窗体的工程,用户界面如图7.24与图7.25所示。添加一个标准模块,在标准模块中定义两个通用过程:一个是Function过程Max,用于求数组a中10个数的最大值;另一个是Sub过程Sort,用于对数组a中10个数按从小到大顺序排序。
图6.21 求行与列的和 要求:(1) 窗体Form1为主窗体,当单击“生成随机数”按钮时,生成10个[10,99]区间内的随机整数,将这10个随机整数存入数组a,同时显示在“随机数”文本框中。单击“求最大数”按钮时,调用标准模块中的Function过程Max,求这l0个数的最大数并显示在“最大值”文本框中。 当单击“打开排序窗口”按钮时,打开窗体Form2。 (2) 在窗体Form2中,当单击“排序”按钮时,调用标准模块中的Sub过程Sort,对数组a中的10个数按从小到大的顺序排序,并将排序后的结果显示在“排序结果”文本框中。 单击“返回”按钮返回到窗体Form1。
第8章 二、上机调试题 1.求下面数列的和,计算到第n项的值小于10-4为止。
211815131211nnffy 式中,3),(,2,12121nfffffnnn(本程序运行结果是:y=2.359646)。 【含有错误的程序代码】 Option Explicit Private Sub Form_Click() Dim a() As Single, i As Integer Dim y As Single i = 1 Do ReDim a(i) a(i) = 1 / fib(i) If a(i) <= 0.0001 Then Exit Do y = y + a(i) i = i + 1 Loop Print "y="; y For i = 1 To UBound(a) Print a(i) Next i End Sub
图7.24 Form1窗体界面 图7.25 Form2窗体界面 Private Function fib(i As Integer) As Integer If i = 1 Then fib = 1 ElseIf i = 2 Then fib = 2 Else fib(i) = fib(i - 1) + fib(i - 2) End If End Function 【要求】 (1) 新建工程,输入上述代码,改正程序中的错误。 (2) 改错时,可以调换语句位置,但不得增加或删除语句。 2.所谓的完全数是一个整数N的因子和(不包括N)等于N。例如,6=1+2+3,6是完全数。编写程序验证:两位以上的完全数,把它们的各位数字加起来得到一个数,再把这个数的各位数字加起来又得到一个数,一直做下去,直到得到一个以位数,这个数是1。过程WanShu的功能是找完全数。图8.32是程序运行界面。 【含有错误的程序代码】 Option Explicit Private Sub Command1_Click() Dim i As Integer, k As Integer, st As String For i = 10 To 500 If wanshu(i) Then st = CStr(i) Text1.Text = Text1.Text & st Call test(st) Text1.Text= Text1.Text & Chr(13) & Chr(10) End If Next i End Sub Private Function wanshu(n As Integer) As Boolean Dim i As Integer, sum As Integer For i = 2 To n - 1 If n Mod i = 0 Then sum = sum + i End If Next i If sum = n Then wanshu = True End Function Private Sub test(s As String) Dim i As Integer, sum As Integer sum = 0 Do While Len(s) > 1 For i = 1 To Len(s) sum = sum + Val(Mid(s, i, 1))
图8.32 程序运行界面