版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Good is good, but better carries it.精益求精,善益求善。VB上机DEF-实验D循环结构实验目的1.掌握For语句的使用。2.掌握Do语句的各种形式的使用。3.掌握如何控制循环条件,防止死循环或不循环。二、实验内容1.利用单循环结构显示如图D.1所示的界面。提示:循环体内的显示用String函数来实现,找出循环控制变量与String函数内字符个数的关系:即String(2*i-1,Trim(Str(i)。其中Str(i)表示将数值型i转换成字符串,Trim函数表示去除字符串两边的空格,因为将数值转换成字符串后,系统自动在数字前面符号位,正数为空格,负数为“”,
2、而String函数只取字符串中的第一个字符,本例为空格,因此需要用Trim函数。2.用单循环实现如图D.2所示的界面。图D.1实验D.1运行界面图D.2实验D.2运行界面3.计算当第i项的值0s1=sMod10s=s10Prints1;从右边开始显示分离出的每一位Loop7.参阅教材例4.20,用迭代法求。求立方根的迭代公式为:迭代到为止,为方程的近似解。显示a=3,27的值,并通过求的表达式加以验证。提示:假定的初始值为a,根据迭代公式求得,若,迭代结束;否则用代替继续迭代。迭代的流程图如图D.3所示。图D.3迭代法求根流程图8.一个富翁试图与陌生人做一笔生意,换钱规则为:陌生人每天给富翁1
3、0万元钱,直到满一个月(30天);而富翁第一天给陌生人1分钱,第二天2分钱,第天4分钱,富翁每天给陌生人的钱是前一天的两倍,直到满一个月。分别显示富翁给陌生人的钱和陌生人给富翁的钱为多少?提示:设富翁第一天给出的钱为是0.01,第二天给出的钱为前一天的两倍,即=2*,如此重复到30天,累计求得富翁给出的钱数远远超过陌生人给出的钱数10万*30=300万元。9.用计算机按排考试日程。期末某专业在周一周六的6天时间内要考X,Y,Z三门课程,考试顺序为X,Y,Z,规定一天只能考一门,且Z只能安排在周五或周六考。编写程序安排考试日程(即三门课各在哪天考),要求列出满足条件的所有方案。实验E数组和自定义
4、类型实验目的掌握数组的声明,数组元素的引用。掌握固定长度数组和动态数组的使用差别。掌握数组常用的操作和常用算法。掌握列表框和组和框的使用。掌握自定义类型和数组的使用。二,实验内容1随机产生30100(包括30和100)的10个正整数,求最大值,最小值,平均值,并显示整个数组的值和结果,如图E.1所示。图E.1实验E.1运行界面2已知6个学生的成绩,通过对数组赋初值的方法,利用String函数,以每5分为一个“”显示,并显示学生的成绩,如图E.2所示:图E.2实验E.2运行界面3.随机产生20个学生成绩,统计各分数段人数。即059,6069,7079,8089,90100,并显示结果。产生的数据
5、在Picture1显示,统计结果在Picture2显示,如图E.3所示:图E.3实验E.3运行界面提示:eqoac(,1)本程序有两个事件过程,都要用到存放20个学生的数组,因此在通用声明段声明一个数组,例,Dimmark%(19);在Command2事件过程中声明一个数组s(9),分别存放分数段的人数。eqoac(,2)统计时的关键在于:确定每个人的分数mark(i)与数组下标s之间的关系,即:Fori=0To19k=mark(i)10SelectCasekCase0To5s(5)=s(5)+1Case9To10s(9)=s(9)+1Case6To8s(k)=s(k)+1EndSelectN
6、exti4.随机产生10个2位数,按从大到小递减的顺序排列,并显示排序结果。5.参照教材例5.3,在通用声明段声明2个数组,利用随机函数形成如下两个数组:12111113113113311613213911110313112412310911313360675250643666396669534151574464A=B=要求:eqoac(,1)以下三角形式显示A数组,上三角形式显示B数组。eqoac(,2)求A数组主对角线之和和B数组副对角线之和。图E.4实验E.5运行界面输入整数n,显示出具有n行的扬辉三角形。如下图显示n=8的效果。图E.5实验E.6杨辉三角形运行界面提示:eqoac(,1
7、)定义一个二维数组(若用定义数组实现,则数组大一些;若用动态数组,则数组大小用ReDim函数重新定义)。eqoac(,2)对下三角各元素进行设置:第一列及对角线上均为1,其余每一个元素正好等于它上面一行的同一列和前一列的两个元素之和。即a(i,j)=a(i-1,j-1)+a(i-1,j)。eqoac(,3)利用TAB函数确定每列的宽度,使得列对齐。7设计一个选课的运行界面如图E.6所示。它包含两个列表框,左边为已开设的课程名称,通过Form_Load事件加入,并按拼音字母排序;当单击某课程名称后,将该课加入到右边列表框,并在左边列表框中删除该课程。当右边课程数已5门时,不允许再加入,出现如图E
8、.7所示的界面。图E.6实验E.7运行界面图E.7超过5门课程的显示8窗体上建立一个简单的组合框,在组合框的文本框输入数字字符,按回车后加入到组合框的列表框中,如图E.8所示;单击“交换”按钮,将列表框中最小值项目和第0个项目交换;最大值项目和最后项目交换,如图E.9所示。图E.8输入数字数据图E.9交换后结果提示:eqoac(,1)只能输入数字,Combo1_KeyPress事件通过如下代码实现:SelectCaseKeyAsciiCase48To57,1309数字和回车键为合法数据CaseElse否则为非法数据,去除非法字符KeyAscii=0EndSelecteqoac(,2)求最大值和
9、最小值必须声明4个变量:如Min,iMin,Max和iMax分别存放最小值,最小值下标,最大值和最大值下标,并将列表框中第0个项目作为上述4个变量的初值。eqoac(,3)按照求最大值和最小值的方法,在组合框中找最大值和最小值,并获得最大值下标和最小值下标;注意比较时项目要用Val函数,否则作为字符串比较。eqoac(,4)将组合框中第0项目与最小值交换,最大值与最后项交换。例,最大值与最后项交换的代码如下:t=Combo1.List(Combo1.ListCount-1)Combo1.List(Combo1.ListCount-1)=Combo1.List(iMax)Combo1.List(
10、iMax)=t9.提供在窗体上显示的以汉字开头的字体名称,并显示该名称所对应的字体样式,程序运行效果如图E.10所示。图E.10实验E.9运行界面提示:eqoac(,1)界面设计:窗体有两个Label和两个列表ListBox分别用来显示字体名称和字体样式。eqoac(,2)屏幕对象Screen有一系列的属性,参见教材例6.3的方法,汉字的机内码最高位为1,若利用Asc函数求其码值为小于0(数据以补码表示),因此可用如下算法:Fori=0ToScreenCount-1判断若Asc(left(Screen.Fonts(i),1)0为汉字字体则在List1显示字体名称在List2设置该控件的字体,并
11、显示特定的汉字Next10自定义类型数组的应用。要求:eqoac(,1)自定义一个职工数据类型,包含职工号,姓名,工资三项内容。在通过声明段声明一个职工类型的数组,可以存放5个职工的数据。eqoac(,2)窗体中设计3个标签,3个文本框,2个命令按钮和1个图形框,文本框分别输入职工号,姓名,工资;当单击“新增”按钮时,将文本框输入的内容添加到数组的当前元素中;当单击“排序”按钮时,将输入的内容按工资递减的顺序排列,并在图形框显示。程序运行界面如图E.11所示。图E.11实验E.10运行界面提示:eqoac(,1)自定义的职工类型只能在标准模块内定义,若在窗体通用声明段定义,必须为Private
12、.eqoac(,2)为了保存放当前输入职工元素的个数,该变量应在通用声明段声明,若在事件过程中声明,每次运行时该计数变量将被初始化为0。eqoac(,3)相关程序代码可参照教材例5.13。实验F过程实验目的掌握自定义函数过程和子过程的定义和调用方法掌握形参和实参之间的对应关系掌握值传递和地址传递的传递的方式掌握变量、函数和过程的作用域掌握递归的概念和使用方法熟悉程序设计中的常用方法实验内容编一子过程ProcMin(a(),amin),求一维数组a中的最小值。主调程序随机产生10个-300-400之间的数,显示所产生的数组中的各元素;调用ProcMin子过程,显示数组中的最小值。进一步思考:若将
13、上面ProcMin过程的amin形参由地址传递(ByRef)改为值传递(ByRal),调用后的效果如何?应该用何种形式传递才能得到正确的结果?参见教材例6.2,编一求两数m,n最大公约数的函数过程f(m,n);主调程序在两个文本框接受输入数据,在图形框显示结果,如图F.1所示。图F.1实验F.2运行界面编一个函数过程MySin(x),求MySin(x)=。当第n项的值小于时结束,x为弧度。主调程序同时调用MySin和内部函数sin,进行验证。主调程序同时调用函数过程MySin和标准函数Sin,进行验证。提示:关键是找部分级数和的通项,如下所示:i=1,3,5,7,编一函数过程IsH(n),对于
14、已知正整数n,判断该数是否是回文数,函数的返回值类型为布尔型。主调程序每输入一个数,调用IsN函数过程,然后在图形框显示输入的数,对于回文数显示一个“”,如图F.2。提示:所谓回文数是指顺读与倒读数字相同,即最高位与最低位相同,次高位与次低位相同,以此类推。当只有一位数时,也认为是回文数。回文数的求法,只要对输入的数(按字符串类型处理),利用MID函数从两边往中间逐位比较,若不相同,就不是回文数。验证哥德巴赫猜想:任意一个大于2的偶数都可以表示成两个素数之和。编程将6100之间的全部偶数表示为两个素数之和,在列表框显示结果,最后Label1显示共有多少对素数之和,效果如图F.3所示。图F.2实
15、验F.4回文数据程序运行界面图F.3实验F.5验证哥德巴赫猜想运行界面提示:编一求素数的函数prime(m),若m是素数,则函数的返回值为True,否则为False。主调程序对已知6100之间全部偶数Even,把它分解成两个奇数Odd1和Odd2(Even-Odd1),先调用prime函数,判断Odd1是否是素数,若不是素数,则不必再对Odd2进行判断;否则再判断Odd2,若都是素数,则添加到列表框。利用两重循环来实现,外循环变量Even(6100的偶数),内循环将Odd1(3Even/2之间的奇数)和(Odd2(Even/2之间的奇数)和Odd2(Even-Odd1)进行判断。如果一个整数的
16、所有因子(包括1,但不包括本身)之和与该数相等,则这个数为完数。例如6=1+2+3,所以6是一个完数。编写一个函数IsWs(m)判断m是否为完数,函数的返回值是逻辑型。主调程序在列表框显示1001以内的完数,如图F.4所示。提示:判断一个数m是否是完数,算法思路是:将m依次除以1m/2,如果能整除,就是m的一个因子,进行累加;循环结束,若m与累加因子之和相等,m就是完数。图F.4实验F.6完数运行界面编一个子过程DeleStr(s1,s2),将字符串s1中出现的s2字符串删去,结果存放在s1中。例如:s1=”12345678AAABBDFG12345”s2=”234”结果:s1=”15678AAABBDFG15”提示:为了删除子串,首先利用InStr函数查找子串;若找到则通过Left、Mid(或Right)函数实现子字符串的删除;同时要利用循环考虑到删除多个子串的情况。编一子过程MaxLength(s,MaxWord),在已知的字符串s中,找出最长的单词Max
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《综合基础知识》考点特训《民法》(2020年版)
- 《电子式书写技巧》课件
- 2024年写医院个人年终工作总结
- 《学校智能化方案》课件
- 《幼教机构行政管理》课件
- 一年级下册语文部编版课件部首查字法教学课件
- 细胞生命之旅
- 透析楼市调控奥秘
- 保研面试英文自我介绍范文汇编十篇
- 2023年-2024年新员工入职前安全教育培训试题附参考答案(预热题)
- 2024年中考语文名著阅读《儒林外史》内容简介、主要人物形象及相关练习
- 流浪乞讨人员救助工作总结
- 研究生实验方案
- 云南省昆明市盘龙区2023-2024学年高二上学期期末质量检测数学试题【含答案解析】
- 肾上腺皮质功能减退通用课件
- 《安徒生童话》试题及答案
- 《社会工作概论》课件
- 化工生产操作工培训手册
- 银行催收外包服务投标方案(技术标)
- 2024年广西北部湾港集团招聘笔试参考题库含答案解析
- 建设工程项目工程项目三方合署办公管理标准
评论
0/150
提交评论