【实验步骤】
1. 在窗体的Click事件过程中编写用户输入与求解代码。 2. 运行程序。 提示:
(1)该计算的通项式公式为Ai=Ai-1*10+2。
(2)将通项式与累加和变量都定义成单精度,以避免数据溢出。
实验3.7 打印所有的“水仙花数”。水仙花数是一个三位数,其每位数的立方和等于该数本身,例如:153=13+53+33,153就是一个水仙花数。
【实验要求】
在一个图形框中输出水仙花数,如图3-7所示。
图3-7 实验3.7运行界面
【实验步骤】
1.在窗体上创建一个图形框。
2.在图形框的Click事件过程中编写求解代码。 3.运行程序。
提示:分离三位数n中的各位数,可以采用以下方法: 百位数i :i = Int(n / 100)
十位数j :j = Int(n / 10) - i * 10 或 j=Int(n / 10) Mod 10 个位数k :k = n Mod 10
实验3.8 已知工厂去年的年产值为300万,年增长率为15%。试问经过多少年后,该厂的年产值可以翻一番?翻一番后的实际产值是多少?
【实验要求】
1. 运行界面如图3-8所示。
图3-8 实验3.8运行界面
- 11 -
2. 程序运行时,在文本框Text1中输入现有产值,在文本框Text2中输入年增长率。 3. 当单击“翻一番”命令按钮后,在文本框Text3中输出经过的年数,在文本框Text4中输出实际产值。
4. 通过实验,要求进一步掌握循环结构的Do…Loop语句的各种格式及其使用。 【实验步骤】
1.按图3-8设计界面,具体步骤略。
2.在命令按钮的Click事件过程中编写计算代码。 3.运行程序。 提示:
(1)算法分析:设P表示现有的产值,R表示年增长率,Y表示经过的年数,S表示经过Y年后的产值,则:
S=P(1+R)Y
当满足条件S≥2P,即满足P(1+R)Y≥2P时,Y即为所求年数。
(2)在编写“翻一番”事件过程代码时,使用Do…Loop语句实现循环求年产值,循环条件为S<2*P,循环体为:
S=p*(1+R) Y=Y+1
循环结束时,Y就是所求的年数。 (3)注意用Val函数把文本框中的数字文本转换成数值型数据。
实验3.9 编写一个程序,对输入的任意一个准考证号(7位整数),产生一个校验位,以检测准考证号在存储或传输过程中是否产生错误。
【实验要求】
1.使用下列公式产生校验位: a=(?di?i) Mod 10
i=17图3-9 实验3.9运行界面 其中a为校验位,di为7位整数的第i位数。例如,对于准考证号2356437,校验位为:
a=(7*1+3*2+4*3+6*4+5*5+3*6+2*7) mod 10=6
2.把校验位作为最高位与7位数组成一个8位数,即带校验位的准考证号。 3.在文本框Text1中输入7位准考证号,当输入非7位数字,显示出错信息。 4.单击“产生校验位”命令按钮后在文本框Text2中产生具有校验位的8位数的准考证号,如图3-9所示。 【实验步骤】
1.按图3-9设计界面,具体步骤略。
2.在命令按钮的Click事件过程中编写计算代码。 3.运行程序。
- 12 -
提示:
(1)将一个数的个位、十位、百位……分离出来,只要多次进行Mod和整除运算即可。 (2)根据给出的公式求出校验位后,带校验位的准考证号可用以下两种方法求得:
带校验位的准考证号=校验位 & 7位数的准考证号 (连接) 或 带校验位的准考证号=校验位×107+7位数的准考证号 (计算)
实验3.10 输入一段英文文字,统计其中有多少个单词,假设单词之间都是用空格分隔开。
【实验要求】
1. 在文本框Text1中输入一段英文文字。
2. 单击“统计”按钮,在文本框Text2中输出单词的个数,如图3-10所示。
图3-10 实验3.10运行界面
【实验步骤】
1.按图3-10设计界面,具体步骤略。
2.在命令按钮的Click事件过程中编写统计代码。 3.运行程序。 提示:
(1)使用Len()函数计算Text1文本框中的字符长度。
(2)用Mid$(Text1.Text, i, 1)函数从文本中逐个取出字符,其中i=1 到 Len(text1)。如果遇到空格则表示一个单词的结束或下一个单词准备开始,此时用一个变量记录“已遇到过空格”这一状态(如Spc = 0);如果取出的字符为非空格且在前面出现过空格(Spc = 0),则表示取出的是单词的首字符,此时可对单词数累加1,并将变量Spc置为1,以避免同一个单词被累加多次。
实验四 数组
一、实验目的
1.掌握数组的声明与数组元素的引用方法。 2.掌握数组的基本输入输出方法。
- 13 -
3.掌握静态数组和动态数组的应用与差别。 4.掌握控件数组的应用。
5.掌握自定义数据类型及其数组的应用。
二、实验内容
实验4.1 随机产生10个0~100之间(包括0和100)的随机整数,存放在一个数组中,然后求各元素之和、平均值,统计大于平均值的元素个数并把它们打印出来,如图4-1所示。
图4-1 实验4.1运行界面
【实验要求】
1.在控件Picture1中把产生的随机整数打印成一行。 2.各元素之和与平均值分别在文本框Text1和Text2中显示。 3.大于平均值的元素在控件Picture2中打印出成一行。
4.通过“求和”、“求平均值”与“统计”命令按钮来实现求和、求平均值和统计大于平均值的元素。
【实验步骤】 1.界面设计。
(1)在窗体Form1中分别添加四个标签Label1~Label4,两个文本框Text1、Text2,两个图形框Picture1、Picture2,以及三个命令按钮Command1~Command3。
(2)按图4-1的格式设置各控件的属性值。
2.在窗体的Click或Load事件过程中生成10个随机整数,存放于数组中,并在Picture1中打印出来。如果使用Load事件,要在输出数据之前使用一个Show方法。
3.在三个命令按钮的Click事件过程中编写相应的功能代码。 4.运行程序。
提示:数组、累加和变量、平均值变量等应在窗体的通用声明段中定义,以便它们能被多个过程或函数访问。
实验4.2 编写一个程序,删除数组中某个元素,如图4-2所示。
- 14 -
图4-2 实验4.2运行界面
【实验要求】
1.数组下标的下界为1。
2.程序运行时,自动产生10个两位数随机整数,保存在一个数组中,并在图形框Picture1中输出。
3.用户在文本框Text1输入被删元素的下标。
4.点击“删除”按钮后,图形框Picture2中输出删除后的元素。 【实验步骤】
1.在窗体中添加两个图形框Picture1、Picture1,一个文本框Text1,一个命令按钮以及相应的标签。
2.在窗体的Load事件过程中编写产生10个两位数随机整数,并保存在数组中的代码。 3.在“删除”命令按钮的Click事件过程中编写删除指定元素,并进行输出的代码。 提示:
1.数组应在窗体的通用声明段中定义,以便能被多个过程访问。
2.在窗体的Load事件过程中,在图形框Picture1中输出前,应先使用Show方法。 实验4.3 编写一个程序,求一个4×5矩阵中的最大元素,以及该元素所在的行号和列号。
【实验要求】
1. 使用InputBox函数给矩阵(二维数组)赋值。 2. 在图形框Picture1中输出矩阵。
3. 分别在文本框Text1、Text2、Text3中输出最大元素、行号和列号。
4. 程序运行时,单击窗体空白处后开始让用户输
入矩阵,并进行相应的输出,如图4-3所示。
【实验步骤】
1.在窗体中添加图形框Picture1,三个文本框Text1~Text3,以及相应的标签。
2.在窗体的Click事件过程中编写代码。 3.运行程序。
实验4.4 编写程序,输出n=10时的“杨辉三角形”。
- 15 -
图4-3 实验4.3运行界面