




已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计1. -【程序设计】-题目:编写函数fun,函数的功能是:计算两个正整数的最大公约数,并显示。如:两个数为15、20,结果显示5要求使用Do . Loop语句来实现。Do r = m Mod n If r = 0 Then Exit Do m = n n = rLoopfun = n-注意: 请在指定的事件内编写代码 代码只能写在两行标识之间 不得修改已有代码保存时不得修改窗体和工程文件的名称及路径,否则后果自负。-2. -【程序设计】-题目:编写函数fun,函数的功能是:当x的初值为10,每年增长率为百分之一,计算多少年以后x的值能达到y,并显示所需年数的值(变量名必须为n)。要求使用Do . Loop Until语句来实现。x = 10n = 0Do x = x * 1.01 n = n + 1Loop Until x = yfun = n-注意: 请在指定的事件内编写代码 代码只能写在两行标识之间 不得修改已有代码保存时不得修改窗体和工程文件的名称及路径,否则后果自负。-3. -【程序设计】-题目:编写函数fun,函数的功能是:求从m到n的奇数的乘积并显示,如:m为2,n为5时,显示15存储连乘的乘积的变量必须为Product要求使用For语句来实现。Product = 1For i = m To n If i Mod 2 0 Then Product = Product * iNext ifun = Product-注意: 请在指定的事件内编写代码 代码只能写在两行标识之间 不得修改已有代码保存时不得修改窗体和工程文件的名称及路径,否则后果自负。-4. -【程序设计】-题目:编写函数fun,函数的功能是:计算并输出给定 整数n的所有因子之和(不包括1与自身)。规定 n的值不大于1000. 例如:n的值为855时,应输出704。Dim s, i As Integer For i = 2 To n - 1 If n Mod i = 0 Then s = s + i End If Next Fun = s-程序填空1. 编程求1-10之间任一数字的阶乘。 Option ExplicitPrivate Sub Command1_Click()Dim x As Integerx = Val(Text1.Text)If x = 1 And x = 10 Then Label2.Caption = Text1 *FILL* text2.Text = CStr(fac(x)End SubPrivate Function fac(n As Integer) As LongDim i As IntegerDim s As Longs = 1For i = 1 To n *FILL* s = s * iNext i*FILL*fac = s 返回函数值End FunctionPrivate Sub Command2_Click()EndEnd Sub2. 编写一个求三个数最大值的函数max(x,y,z),然后调用此函数求下列表达式的值,首先在文本框中输入a,b,c三个数,然后单击计算按钮,在文本框中输出表达式的值m。表达式为:m=max(a,b,c)*max(a+b,b,c)-max(a,b,b+c) Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim c As Integer, m As Integera = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)*FILL*m = max(a, b, c) * max(a + b, b, c) - max(a, b, b + c)*FILL*Text4.Text = CStr(m)End SubPrivate Function max(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer) As Integer*FILL*max = xIf max y Then max = yIf max z Then max = zEnd FunctionPrivate Sub Command2_Click()EndEnd Sub3求质因子。设计如图所示的程序界面,并完善下面的程序代码。按原文件名保存,运行正确。 Option ExplicitPrivate Sub Command1_Click() Dim n As Integer, a() As Integer, k As Integer Dim st As String, i As Integer n = Text1 *FILL* k = 2 给k赋初值 Do If n Mod k = 0 Then i = i + 1 *FILL* ReDim Preserve a(i) a(i) = k n = n k 设置循环 Else k = k + 1 End If *FILL* Loop Until n = 1 设置循环loop st = Text1 & = *FILL*For i = 1 To UBound(a) - 1 st = st & a(i) & * Next i Text2 = st & a(i)End SubPrivate Sub Command2_Click() Text1.Text = Text2.Text = End SubPrivate Sub Command3_Click() EndEnd Sub 4随机产生10个两位数整数,利用函数调用求这10个数的最大值和最小值。 Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As Integer, i As IntegerDim max As Integer, min As IntegerRandomizeFor i = 1 To 10 *FILL* a(i) = Int(Rnd * 90 + 1) Print a(i);Next iPrint*FILL*max = f(a, min)Print max; minEnd SubPrivate Function f(b() As Integer, min As Integer) As IntegerDim i As Integer*FILL*f = b(1)min = b(1)For i = 2 To UBound(b) *FILL* If f b(i) Then min = b(i)Next iEnd Function5本程序段将一个十进制整数m转换成 r (216)进制字符串方法:将m不断除 r 取余数,直到商为零,以反序得到结果。- Function TranDec$(ByVal m%, ByVal r%) Dim StrDtoR$ Dim iB%, mr% StrDtoR = Do While m 0 *FILL* mr = m Mod r m = m r If mr = 10 Then *FILL* StrDtoR = Chr(mr - 10 + 65) & StrDtoR Else StrDtoR = mr & StrDtoR End If Loop TranDec = StrDtoREnd FunctionPrivate Sub Command1_click() Dim m0%, r0%, i% m0 = Val(Text1.Text) r0 = Val(Text2.Text) If r0 16 Then i = MsgBox(输入的R进制数超出范围, vbRetryCancel) If i = vbRetry Then Text2.Text = Text2.SetFocus Else End End If End If Label3.Caption = 转换成 & r0 & 进制数 *FILL* Text3.Text = TranDec(m0, r0)End Sub 6Option Base 1Dim a(5, 8) As Single, athlete(5) As String * 8Private Sub Command1_Click() Dim ch As String Text1 = *FILL* Open App.Path & in5.dat For Input As #1 For k = 1 To 5 Input #1, ch *FILL* athlete(k) = ch Text1 = Text1 & ch & For j = 1 To 8 Input #1, ch a(k, j) = Val(ch) Text1 = Text1 & ch & Next j Text1 = Text1 & Chr(13) & Chr(10) Next k Close #1End SubPrivate Function getmark(n As Integer) As Single s = a(n, 1) maxnum = s minnum = s For k = 2 To 7 *FILL* s = s + a(n, k) If maxnum a(n, k) Then minnum = a(n, k) End If Next k *FILL* s = (s - maxnum - minnum) / 5 getmark = s * 3 * a(n, 8)End FunctionPrivate Sub Command2_Click() 要求考生编写的程序*begin*Dim k As Integer maxmark = getmark(1) m = 1 For k = 2 To 5 If maxmark a(j + 1) Then 次序不对即交换 temp = a(j) a(j) = a(j + 1) a(j + 1) = temp End If Next j Next i Picture1.Print vbCrLf + 冒泡排序后的序列: For Each v In a Picture1.Print v; Next vEnd Sub删除数组中重复的数据Private Sub Cmd_chongfu_Click() Dim k As Integer, i As Integer, j As Integer Dim t As Integer, n As Integer, v k = UBound(a) n = 1 Do While n k i = n + 1 Do While i = k *FILL* If a(i) = a(n) Then 找到重复的元素 For j = i To k - 1 a(j) = a(j + 1)将后面的元素依次前移一位,则删除第i个元素 Next j k = k - 1 ReDim Preserve a(k)删除元素后重新定义数组大小 Else i = i + 1 End If Loop n = n + 1 Loop Picture1.Print vbCrLf + 删除重复数据后的序列: For Each v In a Picture1.Print v; Next vEnd Sub对有序数列插入数据Private Sub Cmd_charu_Click() Dim i As Integer, k As Integer, x As Integer, n As Integer Dim v, s As String n = UBound(a) s = InputBox(请输入需要查找的数:) If s = Then MsgBox 您输入的为空,退出该过程。 Exit Sub Else x = Val(s) End If For k = 1 To n If x a(k) Then Exit For 查找欲插入数X在数组中的位置 Next k *FILL* ReDim Preserve a(n + 1) 数组增加一个元素 For i = n To k Step -1 数组元素后移一个位置,为插入数留出一个位置 a(i + 1) = a(i) Next i a(k) = x 将x插入到空位上 Picture1.Print vbCrLf + 插入数据后的序列: For Each v In a Picture1.Print v; Next vEnd SubPrivate Sub Command1_Click()EndEnd Sub8利用通用对话框部件,完成文件的打开、保存。并把打开当前考生文件数据显示在文本框(Text1)中,进行排序,保存到指定文件中,并且输出到文本框(Text2)中。 本例排序采用冒泡排序算法,读者可以尝试采用其他算法完成程序。Option Base 1Dim Arr() As Integer, num As IntegerPrivate Sub Command4_Click()EndEnd SubPrivate Sub ComOpen_Click() Dim i As Integer打开文件之间,应先关闭文件 Close #1设置过滤器,只显示文本文件 *FILL* CommonDialog1.Filter = 所有文件(*.*)|*.*|文本文件(.txt)|*.txt|VB程序(.VBP)|*.VBP显示打开对话框或使用CommonDialog1.ShowOpen CommonDialog1.Action = 1 If CommonDialog1.FileName Then Text1.Text = Open CommonDialog1.FileName For Input As #1读入文件 Do While Not EOF(1) i = i + 1 ReDim Preserve Arr(i) *FILL* Input #1, Arr(i) Text1.Text = Text1.Text & Arr(i) & Space(2) Loop num = i End IfClose #1End SubPrivate Sub ComSave_Click() CommonDialog1.Filter = 文本文件|*.txt|所有文件|*.* *FILL* CommonDialog1.FilterIndex = 2 CommonDialog1.FileName = 冒泡排序.txt 设置默认文件名 CommonDialog1.InitDir = App.Path CommonDialog1.Action = 2 显示另存为(Save As)对话框 Open CommonDialog1.FileName For Output As #1 Print #1, Text2 把修改后的Text1文本框内容写到文件中 Close #1End SubPrivate Sub Commao_Click()Text2.Text = Dim t As Integer冒泡排序For i = 1 To num For j = i + 1 To num *FILL* If Arr(i) Arr(j) Then t = Arr(i) Arr(i) = Arr(j) Arr(j) = t End If Next jNext i For i = 1 To num Text2 = Text2 & Arr(i) & Space(2) NextEnd SubPrivate Sub ComExit_Click()EndEnd Sub9将 10, 50, 23, 56, 78, 50, 58, 61, 79, 56这一系列数放入到一维数组中,显示在窗体上,并求最大值、最小值、平均值。要求:使用Array函数、Inputbox函数两种方法给一维数组赋值。完善代码,按原文件名保存,运行正确。 1 将 10, 50, 23, 56, 78, 50, 58, 61, 79, 56这一系列数放入到一维数组中,显示在窗体上,并求最大值、最小值、平均值。要求:使用Array函数、Inputbox函数两种方法给一维数组赋值。Private Sub Cmd_array_Click()利用Array函数生成一维数组 Dim a, i%, max%, min%, avg As Double a = Array(10, 50, 23, 56, 78, 50, 58, 61, 79, 56) 利用Array函数给数组赋值时,函数返回值必须是一个变体型数据 max = a(0): min = a(0): avg = a(0) Me.Cls Print 利用ARRAY函数给数组赋一组给定的数值: & vbCrLf; a(0); For i = LBound(a) + 1 To UBound(a) avg = avg + a(i) Print a(i); *FILL* If min a(i) Then min = a(i) Next i Print vbCrLf & 最大值为: & max, 最小值为: & min, 平均值为: & avg / 10 End SubPrivate Sub Cmd_inputbox_Click()利用Inputbox函数给一维数组赋值 Dim a(9) As Integer, i As Integer, max%, min%, avg As Double Dim v *FILL* For i = 0 To 9 a(i) = InputBox(请输入第 & i + 1 & 数) Next i Me.Cls Print 利用Inputbox函数给数组元素逐个赋值: For Each v In a 利用FOR-EACH 语句输出数组 Print v; Next v *FILL* max = a(0) min = a(0) avg = a(0) For i = 1 To 9 *FILL* avg = avg + a(i) If max a(i) Then min = a(i) Next i Print Print 最大值为: & max, 最小值为: & min, 平均值为: & avg / 10End Sub 10 Dim a(5, 40)Private Sub Command1_Click() Dim ch As String ch$ = Open App.Path & in5.dat For Input As #1 For i = 1 To 5 For j = 1 To 40 *FILL* Input #1, a(i, j) ch = ch & a(i, j) & Next j ch = ch & Chr(13) & Chr(10) Next i *FILL* Close #1 Text1.Text = chEnd SubPrivate Sub Command2_Click() Dim x As Integer, y As Double, k As Integer For i = 1 To 5 x = 0: y = 0: k = 0 For j = 1 To 40 If a(i, j) Mod 2 = 0 Then *FILL* If a(i, j) x Then x = a(i, j) Else y = y + a(i, j) k = k + 1 End If Next j Label1(i - 1).Caption = x Text2(i - 1).Text = Round(y / k, 2) Next iEnd SubPrivate Sub Command3_Click() *FILL* Open App.Path & out5.dat For Output As #1 For k = 0 To 4 *FILL* Print #1, Label1(k) Next k For k = 0 To 4 Print #1, Text2(k) Next k Close #1End SubPrivate Sub Form_Load()End Sub11编写一个判断素数的sub过程,要求单击判断按钮对文本框1中输入的正整数进行判断,把判断结果显示在文本框2中;单击清除按钮,清除文本框1和文本框2中的内容,并把焦点置于文本框1中。 Private Sub Command1_Click()Dim x As Integer, flag As Booleanx = Val(Text1.Text)*FILL*Call prime(x, flag)*FILL*If flag = True Then*FILL* Text2.Text = x & 是素数Else Text2.Text = x & 不是素数End IfPrivate Sub prime(x As Integer, flg As Boolean) 判断X是否为素数Dim i As Integer*FILL*For i = 2 To Sqr(x)*FILL*If x Mod i = 0 Then Exit For*FILL*Nexti*FILL*If i Sqr(x) Then flg = TrueEnd SubPrivate Sub Command2_Click()Text1.Text = *FILL*Text2.Text = *FILL*Text1.SetFocusEnd SubPrivate Sub Form_Load()End Sub 12Private Type Recordtype myname As String * 10 a1 As Integer a2 As Integer a3 As IntegerEnd TypeDim maxval%, minval%Private Sub Command1_Click() *FILL* Dim s As Recordtype Open in5.dat For Random As #1 Len = Len(s) maxval = 0 minval = 300 For k = 1 To 20 *FILL* Get #1, , s *FILL* sumval = s.a1 + s.a2 + s.a3 If sumval maxval Then maxval = sumval If sumval minval Then minval = sumval Next k Close #1End SubPrivate Sub Command2_Click() *FILL* Open App.Path & out5.dat For Output As #1 Print #1, maxval% Print #1, minval% Close #1End SubPrivate Sub Form_Load()End Sub 13利用系统文件控件(Drive1、Dir1、File1如图16-1)、文本框(Text1)制作一个文件浏览器,打开当前考生文件夹下的English1文档,并把英文中大写字母转换成小写,并保存到另一个文件中(English2)中;设计界面如图,并完善下面的程序代码。 Private Sub Comclear_Click()Text1.Text = End SubPrivate Sub ComExit_Click()EndEnd SubPrivate Sub Comsave_Click_Click()Open App.Path & english2.txt For Output As #1*FILL*Print #1, Text1.TextClose #1End SubPrivate Sub ComUL_Click()Text1.Text = LCase(Text1.Text)End SubPrivate Sub Dir1_Change()*FILL*File1.Path = Dir1.PathEnd SubPrivate Sub Drive1_Change()*FILL*Dir1.Path = Drive1.DriveEnd SubPrivate Sub File1_Click()Dim t As String, Fpath As StringText1.Text = 判断当前目录是否是根目录,并组合得到包含路径的文件名If Right(Dir1.Path, 1) = Then Fpath = Dir1.Path & File1.FileNameElse Fpath = Dir1.Path & & File1.FileNameEnd IfOpen Fpath For Input As #1 打开文件*FILL*Do While Not EOF(1) Line Input #1, t Text1.Text = Text1.Text + t + vbCrLfLoopClose #1 关闭文件End Sub 14编写sub过程(Hws),对于输入的正整数,判断该数是否是回文数,所谓回文数是指一个数从左向右读和从右往左读相同,如:124737421,767,5。 Option ExplicitPrivate Sub Command1_Click()Dim x As Integer, flag As Booleanx = Val(InputBox(请输入一个正整数)*FILL*Call Hws(x, flag)If flag Then Print x & 是回文数Else Print x & 不是回文数End IfEnd SubPrivate Sub Hws(x As Integer, flg As Boolean)Dim i As Integer, s As String*FILL*s= CStr(x) For i = 1 To Len(s) 2*FILL* if Mid(s, i, 1) Mid(s, Len(s) - i + 1, 1) then exit forNext i*FILL*if i Len(s) 2 then flg=trueEnd Sub15随机生成1位数组成的44二维矩阵显示在图片框1中,将其转置矩阵显示在图片框2中。要求:用两种方法实现矩阵转置。并完善下面的程序代码。按原文件名保存,运行正确。 随机生成1位数组成的44二维矩阵显示在图片框1中,要求: 用两种方法实现矩阵转置?Option ExplicitOption Base 1Dim a(4, 4) As IntegerPrivate Sub Cmd_end_Click() EndEnd SubPrivate Sub Cmd_shengcheng_Click() 生成矩阵同时输出在图片框1上 Dim i As In
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省济宁金乡县联考2026届数学八上期末统考模拟试题含解析
- 云南省涧南彝族自治县2026届数学九年级第一学期期末检测试题含解析
- 2025【合同范本】抵押借款合同样本
- 江西省南康区2026届数学七上期末统考试题含解析
- 幼儿园科学实验活动的开展与指导
- 邮储银行双鸭山市尖山区2025秋招笔试言语理解题专练及答案
- 邮储银行周口市鹿邑县2025秋招笔试管理营销专练及答案
- 2025汽车维修技师劳动合同
- 邮储银行北京市通州区2025秋招英文结构化面试题库含答案
- 邮储银行广安市邻水县2025秋招笔试英语阅读选词题专练30题及答案
- 甲状腺结节术后护理
- 水泥标准培训课件
- 2025秋二年级上册语文上课课件 5 去外婆家
- 《植物组织培养》课件 项目3 无菌操作技术
- 2025届广东省广州市高三4月二模生物试题(原卷版+解析版)
- 《白银投资深度解析》课件
- 道德与法治课件《我们神圣的国土》课件(34张)
- 计算与人工智能概论(湖南大学)知到智慧树章节答案
- GB/T 44625-2024动态响应同步调相机技术要求
- 25《王戎不取道旁李》 教学设计
- 2024年咨询工程师继续教育城市轨道交通工程可行性研究报告编制方法考试答案
评论
0/150
提交评论