云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 第三章 程序设计基础

第三章 程序设计基础

  • 62 次阅读
  • 3 次下载
  • 2025/7/12 15:47:05

Dim 数组名(下标1[,下标2]?)[As 类型]

其中:

① 下标的个数决定了数组的维数,VB最多允许60维数组。 ② 多维数组的大小等于各维大小的乘积。

举例: 定义多维数组的例子: 1.Dim iArry(0 To 3,0 To 4)As Long 或 Dim iArry(3,4)As Long 或 Dim iArry&(3,4)

上面三个句子都声明了一个相同的、长型数据类型的二维数组iArry,第一维下标范围是0~3,大小是4;第二维下标范围是0~

4,大小5,整个二维数组的大小是4×5=20。iArry数组的元素如下: iArry(0,0),iArry(0,1),iArry(0,2),iArry(0,3),iArry(0,4), iArry(1,0),iArry(1,1),iArry(1,2),iArry(1,3),iArry(1,4), iArry(2,0),iArry(2,1),iArry(2,2),iArry(2,3),iArry(2,4), iArry(3,0),iArry(3,1),iArry(3,2),iArry(3,3),iArry(3,4), 2. Dim W(2,2,3)As String *20 或 Dim W$(2,2,3)*20

声明了一个定长字符串组成的三维数组,第一维的下标范围是0~2;第二维的下标范围也是0~2;第三维的下标范围是0~3,

数组W共有3×3×4=36个元素,每个元素得字符串长度是20字符长度。 三、动态数组

在程序设计时,数组到底应该多大才合适?声明的数组太大,浪费内存空间;而太小又不够使用,有时候确实令人难以预料。

在VB中引入了动态数组,这样程序在运行时就具有了改变数组大小的能力。

动态数组在声明数组时不给出数组的大小(省略括号中的下标,如:Dim iSS%()),当要使用它的时候,再随时用ReDim语句

重新指出数组的大小。 格式:

ReDim [preserve] 数组名(下标1[,下标2]?) 其中:

① 动态数组的声明并非一定要在窗口级,可以在事件过程内以至模块内。而ReDim则可以在需要的地方出现,但必须在声明语句

之后。

② 静态数组声明中的下标只能是常量,而动态数组ReDim语句中的下标可以是常量,也可以是有了确定值的变量。 ③ 在过程中可以多次使用ReDim来改变数组的大小,也可以改变数组的维数,但不允许改变数组的数据类型。

④ 重复使用ReDim语句都会使原来数组的值丢失,若要保留原数组中的值,必需在重复定义数组的语句ReDim后加Preserve参数。

使用了Preserve,就只能改变数组最后一维的大小,前面几维的大小就不能改变了。 举例:

Dim sArray()As Single

Sub Form_Load()

??

ReDim sArray(4,8) ??

End Sub

此例中,在窗口级声明了数组sArray为可变长数组,在Form_Load()事件函数中重新指明二维数组的大小为5行9列。 注意:

【例3.16】 ReDim语句和Preserve语句的使用。(教材P47例2.12) 四、数组的基本操作

数组在声明时是一个整体,在使用时必须以数组元素为单位进行,通常用循环遍历每个元素,逐一处理。 1.数组元素的输入

数组元素的输入可以通过各种途径来完成,当数组比较小时,可以用赋值语句来完成;一般可通过循环语句或Visual Basic提供

第 21 页 共 26 页

的输入函数来完成。 举例1 用赋值语句

用赋值语句将某学生的五门课考试成绩用数组来存储,该生五门课的成绩分别为90,88,76,85,95。 Dim sS1(1 To 5)As Single '定义一个有五个元素的一维静态 数组

sS1(1)=90 sS1(2)=88 sS1(3)=76 sS1(4)=85 sS1(5)=95

??

通过循环语句对数组进行输入,有两种情况:一是通过循环赋予固定的数字,如初始化,对数组的所有元素进行清零;另一种

是与VB的输入函数结合起来,由用户从窗口键入。 举例 2 赋予固定的数字 Dim iCnt(2 to 14) As Integer

For I=2 to 14 iCnt(I)=0

Next I ??

上述语句相当于给数组元素赋值如下:

iCnt(2)=0: iCnt(3)=0: ? :iCnt(13)=0: iCnt(14)=0 举例 3 用INPUTBOX函数 For i=0 To 3 For j=0 To 4

'输入时显示:“输入i,j的值”,其中i、j的值在变化 sB(i,j)=InputBox(\输入\,\的值\)

Next j

Next i

当然,对于大量数据的输入,为了便于编辑,一般不用InputBox函数,而是通过在文本框上加某些技术处理来实现。 2.数组的输出

数组的输出有多种方法,这里主要学习通过调用Print方法的实现。方法是面向对象的,能够使用Print方法的对象有窗体、图

像框和打印机,如我们在例3.16中就使用了用Picture对象的输出,下面再举一个用窗体输出数组的例子。 举例 4 输出方阵sC中的下三角元素,见图3.16。

For i=0 To 4

For j=0 To i sC(i,j)=i*5+j Next j

Print '输出一个空行

Form1.Print sC(i,j);\

Next i

图3。16 打印下三角 图3。17 输入函数的输入窗口

举例5 将某种产品的所有零件名称,用数组来存储并输出显示。定义一个动态一维数组sName,下标范围用键盘指定。

Option Explicit '强制类型说明 Option Base 1

' 设置数组默认下界为1

第 22 页 共 26 页

Private Sub Form_Click() Dim iLjs As Integer, i As Integer Dim iName() As String

?声明动态数组iName为一个不定长字符串数组 '用输入函数输入零件数目,见图3.17

iLjs = InputBox(\请输入零件数(零件数是一个正整数)\输入窗口\

ReDim iName(iLjs) '定义数组的大小,用变量作参数 For i = 1 To iLjs

iName(i) = InputBox(\请输入零件的名称\输入窗口\ Next i

For i = 1 To iLjs

Print iName(i) '用Print方法输出数组 Next i End Sub

运行程序:在输入零件数窗口输入6;在输入零件名称窗口输入如图3.18窗体中所示的内容,最后显示的结果如图3.18所示。

图3.18 输出结果

五、控件数组 1.概念

控件数组是由一组相同的控件组成,它们共用一个控件名,具有相同的属性。但建立控件数组时,系统给每个元素赋予一个唯

一的索引号(Index),通过属性窗口的Index属性,可以知道该控件的下标是多少。控件数组适用于若干个控件执行相似操作的场合,控件数组共享同样的事件过程。例如,对上述控件数组中的任意命令按钮单击时,调用的事件过程如下: Private Sub cmdName_Click(Index As Integer) ?? End Sub

通过按钮的属性Index可以确定用户按了哪个按钮,并可在对应的过程中进行有关的编程。 例如:

Private Sub cmdName_Click(Index As Integer) ??

If Index=3 then

cmdName(Index).Caption=\第四个命令按钮\End if

?? End Sub

2. 控件数组的建立

建立控件数组有两种方法: ⑴ 在设计时建立 步骤:

① 在窗体上画出某个控件,然后进行该控件名的属性设置,这就建立了第一个元素。

② 选中该控件,进行“复制”和“粘贴”操作,系统会弹出一个对话框,提示:“已经有一个控件‘控件名’,创建一个控件数组

吗?”。单击“是”按钮,就建立了一个控件数组元素,这时系统就自动将第一个按钮Index属性设置为0,而将复制的第二个按钮的Index属性设置为1,继续进行下去,经过若干次“粘贴”操作,就可建立所需的控件数组元素。 ③ 进行事件过程的编码。

【例3.17】 建立一个含有4个命令按钮的控件数组,单击每个命令按钮时,能分别显示图形直线、矩形、圆或结束操作。(教材P51

第 23 页 共 26 页

例2.18)

表3.1 控件属性设置

默认控件名 Command1 Command1 Command1 Command1 Picture1 Form1

⑵ 在运行时建立 步骤:

① 在窗体上画出某控件,设置该控件的Index属性值为0,也可以设置该控件名,以表明该控件是一个控件数组,这就建立了数组

的第一个元素。

② 在编程时通过Load方法添加若干控件数组元素,也可以通过Unload方法删除某个添加的控件数组元素。 ③ 每个新添加的控件数组通过Left和Top属性确定其在窗体中的位置,并将Visible属性设置为True.

【例3.18】实验教程中实验一示例2

3.10 常用算法

设置的控件名(Name) cmdShape cmdShape cmdShape cmdShape picShape Form1 下标(Index) 0 1 2 3 空白 无定义 标题(Caption) 直线 矩形 画圆 退出 无定义 设计时建立控件数组的例子 3.10.1 计数与求和

1. 累加定式:

累加器SUM=0 语句序列 循环体 SUM=SUM+累加项 SUM为累加值

当累加项为1时,即计数。 2.举例:

【例3.19】求1+2+3…,当累加和超过2000时,显示累加和及求和项数. 3.10.2 穷举法

基本思路: 一一列举各种可能的情况,选出符合条件的解。

【例3.20】百鸡问题: “鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,问鸡翁、母、雏各几何?” 分析:设鸡翁为X只,鸡母为Y只,鸡雏为Z只 由题意得条件: 5*X+3*Y+Z/3=100 X+Y+Z=100 可能情况: 1<=X<=20 1<=Y<=33 1<=Z<=100 在可能情况中进行穷举。

第 24 页 共 26 页

搜索更多关于: 第三章 程序设计基础 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

Dim 数组名(下标1[,下标2]?)[As 类型] 其中: ① 下标的个数决定了数组的维数,VB最多允许60维数组。 ② 多维数组的大小等于各维大小的乘积。 举例: 定义多维数组的例子: 1.Dim iArry(0 To 3,0 To 4)As Long 或 Dim iArry(3,4)As Long 或 Dim iArry&(3,4) 上面三个句子都声明了一个相同的、长型数据类型的二维数组iArry,第一维下标范围是0~3,大小是4;第二维下标范围是0~4,大小5,整个二维数组的大小是4×5=20。iArry数组的元素如下: iArry(0,0),iArry(0,1),iArry(0,2),iA

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com