vbvb期末考试实验答案作业
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
请参考10_2.exe程序的运行结果,新建一个工程,完成"调色板"程序的设计,该程序由红绿兰三原色进行调色,如果预览满意,单击"应用"按钮,将调好的颜色作为文本框中文字的颜色。将完成后的工程文件以Design.Vbp、窗体文件以Design.frm保存到D:\10_2目录下。
具体要求如下:
1. 应用程序界面设计参考图示。
2. 要求水平滚动条和颜色成分输入文本框分别采用控件数组实现。
3. 要求操作任意一个滚动条,都会在相应的文本框中显示该颜色成分的当前取值,并且动态改变预览框中长方形的颜色。[注意:滚动条最大值为255]
4. 要求在任意一个颜色成分输入文本框中输入一个0-255的数据,相应的滚动条的滑块都会移到正确的位置上,并且预览框中长方形的颜色也随之而调整。
5. 单击"应用"按钮后将调好的颜色作为文本框中文字的颜色。
思考题:拖动滚动条时有没有触发滚动条的Change事件?
提示:
1. 应用程序界面设计参考图示。
程序界面右下角的预览框架里的长方形是形状控件Shape1(工具箱中的),将其FillStyle属性设置为0。
2. 要求水平滚动条和颜色成分输入文本框分别采用控件数组实现。
三个滚动条的Min设为0,Max设为255;三个文本框的Text属性设为空字串。
3. 要求操作任意一个滚动条,都会在相应的文本框中显示该颜色成分的当前取值,并且动态改变预览框中长方形的颜色。
颜色是利用Rgb(r,g,b)函数来表示,其中r,g,b是红、绿、兰颜色的饱和度,分别通过滚动条来控制。
Private Sub HScroll1_Change(Index As Integer)
Text1(Index).Text = HScroll1(Index).Value
Shape1.FillColor = RGB(HScroll1(0).Value, HScroll1(1).Value, HScroll1(2).Value)
End Sub
4. 要求在任意一个颜色成分输入文本框中输入一个0—255的数据,相应的滚动条的滑块都会移到正确的位置上,并且预览框中长方形的颜色也随之而调整。
设计文本框的Change事件:
Private Sub Text1_Change(Index As Integer)
HScroll1(Index).Value = Val(Text1(Index).Text)
End Sub
5. 单击“应用”按钮后将调好的颜色作为文本框中文字的颜色。
Text2.ForeColor = Shape1.FillColor
下载10_1.exe
请参考10_1.exe程序的运行结果,新建一个工程,完成"过程练习"程序的设计,并将工程文件以Design.Vbp、窗体文件以Design.frm保存到D:\10_1目录下。
具体要求如下:
1. 各题必须按要求用通用过程或函数过程进行编程。
2. "第一题":编写一个求n!的阶乘函数F(n),利用该函数计算二项式系数Cmn=m!/(n!*(m-n)!);其中m>=n;m和n从键盘输入。
3. "第二题":编写一个求1+2+……+n的函数Sum(n),利用该函数计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和。
4. "第三题":编写一个三个数中求最大数的函数过程Max(x,y,z)。随机产生7个∈[0,50]之间的整数,然后用这个函数过程分别求出前三个数的最大值、前五个数的最大值以及这七个数中的最大值。
5. "第四题":编写一个每行可以打印5个下标变量的打印数组的通用过程,。随机产生一个∈[100,500]、有20个下标变量的数组,调用该通用过程打印出原始数据;再将该数组中的偶数组成一个新的数组,再调用该通用过程打印出偶数数组。
思考题:通用过程与函数过程的区别?
提示:
1. 各题必须按要求用通用过程或函数过程进行编程。
2. “第一题”:编写一个求n!的阶乘函数F(n),利用该函数计算二项式系数Cmn=m!/(n!*(m-n)!);其中m>=n;m和n从键盘输入。
阶乘自定义函数F(n)的编写参考上课讲义
计算二项式系数Cmn可以通过调用F(n)函数完成:cmn=F(m)/(F(n)*F(m-n))
3. “第二题”:编写一个求1+2+……+n的函数Sum(n),利用该函数计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和。
自定义函数Sum(n)的编写:
Function Sum(n As Integer) As Long
……'编写s=1+2+...+n的程序段
Sum=s '将计算结果赋值给函数名
End Function
计算1+(1+2)+(1+2+3)+……+(1+2+……+100)的和就转化为计算
Sum(1)+Sum(2)+Sum(3)+……+Sum(100)的编程。
参考计算1!+2!+……+10!的程序
4. “第三题”:编写一个三个数中求最大数的函数过程Max(x,y,z)。随机产生7个∈[0,50]之间的整数,然后用这个函数过程分别求出前三个数的最大值、前五个数的最大值以及这七个数中的最大值。
自定义函数Max(x,y,z)的编写:
Function Max(x As Integer, y As Integer, z As Integer) As Integer
……'编写x、y、z中找最大的程序段并将结果赋值给Max
End Function
定义一个有7个数组元素的一维数组a,Dim a(1 To 7) As Integer,随机产生7个∈[0,50]之间的整数赋值给a(1)~a(7)。
前三个数的最大值:max1=Max(a(1),a(2),a(3))
前五个数的最大值: max2=Max(max1,a(4),a(5))
或max2=Max(Max(a(1),a(2),a(3)),a(4),a(5))
七个数中的最大值:max3=Max(max2,a(6),a(7))
5. “第四题”:编写一个每行可以打印5个下标变量的打印数组的通用过程,。随机产生一个∈[100,500]、有20个下标变量的数组,调用该通用过程打印出原始数据;再将该数组中的偶数组成一个新的数组,再调用该通用过程打印出偶数数组。