网站大量收购闲置独家精品文档,联系QQ:2885784924

《过程程序设计.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《过程程序设计

实验7 过程程序设计 实验目的: 掌握通用过程的定义和调用 掌握函数过程的定义和调用 掌握通用过程的递归调用 掌握实参和形参按值传递和按地址传递的不同用法,明确不同实参数据类型具有的不同传递形式 明确过程级、窗体级和模块级变量的作用域和特点,能够根据具体情况使用全局和局部变量 掌握Sub过程调用时的两种格式,语句格式和命令格式 实验7.1求最大最小值 实验任务: 分别编写子过程Min(a() As Integer,m As Integer)和函数Max(a() As Integer) As Integer,子过程用于求一维数组a中的最小值,函数用于求其最大值。要求: 1.主调程序随机产生10个200~300之间的整数,调用子过程和函数后,在主调程序中显示最小值和最大值。 2.子过程和函数中不允许有多余的参数 实验7.2成绩排序 实验任务: 编程排列八名运动员100米径赛成绩的名次。当成绩相同时,运动员的名次相同。1至8号运动员的成绩分别为:12.12,11.25,11.13,10.89,14.09,13.56,12.01,11.13。 提示:本题的解决难点并不在排序,我们可以很轻松地用冒泡排序法或选择排序法进行成绩从小(快)到大(慢)的排列。问题是排序后的成绩对应于哪一个运动员,恐怕用一维数组是无法记录的。因此我们可以定义一个二维数组cj(8, 2) As Single,其中第一列存放运动员的成绩,第二列存放成绩对应的运动员号。 排序针对数组的第一列进行,产生交换时不仅要交换第一列的数组元素,还要交换对应的第二列的数组元素,这样运动员的编号就能跟着成绩“跑”了。 在输出名次时也要注意成绩相同名次相同的问题,在这里名次并非简单地和一维下标一致。所以应该定义两个变量p和j,p表示名次,j表示有几个人(从1到8)。当没有重复成绩时,p和j一样(1-8名);当有重复成绩时,p值就不变,保持前一个人的名次,直到出现不同成绩,p值又与j值一样了。 名次的计算还有其他方法,这里只介绍了这种较为简单的算法。 实验步骤: 1.按照图7-1进行界面设计,运动员成绩在列表框1的List属性中输入,如图7-2所示,排名结果在列表框2中输出。 2.完善程序: Option Explicit Private Sub Command1_Click() Dim cj(8, 2) As Single Dim i As Integer, k As Integer Dim pro As String List2.Clear For i = 1 To 8 cj(i, 1) = List1. 从列表框中取出运动员的成绩 cj(i, 2) = i Next i Call Sort(cj) Call OutPut(cj) End Sub Private Sub Sort(cj() As Single) Dim temp As Single, i As Integer, j As Integer 填入一段排序程序代码。注意交换运动员 ____________________ 成绩的同时,也要交换运动员的号码。 End Sub Private Sub OutPut(cj() As Single) Dim j As Integer, p As Integer p = 1 List2.AddItem 第1名: cj(1, 2) 号 成绩: cj(1, 1) For j = 2 To 8 If Then List2.AddItem 第 p 名: cj(j, 2) 号 成绩: cj(j, 1) Next j End Sub Private Sub cmdExit_Click() End End Sub 3.保存文件,调试运行。 实验7.3删除字符串 实验任务: 编一子过程DeleStr(s1,s2),将字符串s1中出现的s2子字符串删去,结果还是存放在s1中。 例如:s1AABBDFGl2345,s2=234,结果:s1=15678AAABBDFGl5 提示: 1.在s1字符串找s2的子字符串,可利用InStr()函数,要考虑到s1中可能存在多个或不存在s2字符串,用Do While Instr(s1,s2)0循环结构来实现。 2.若在s1中找到s2字符串,则通过Left()、Mid()函数的调用实现删除s1中存在的s2字符串,然后再返回判断

文档评论(0)

1983xuesheng + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档