Download presentation
Presentation is loading. Please wait.
1
第5章 数组 Visual Basic程序设计
2
数组:一组具有相同名字、不同下标变量的集合
回 顾 数组:一组具有相同名字、不同下标变量的集合 静态数组的定义:Dim s(5) As Integer 动态数组的定义:Dim s( ) As Integer n = Val(Text1.Text) ReDim s(n) 数组元素的引用:s(1)、s(2)、s(3)、……
3
数组元素的输入: For i = 1 To 5 s(i) = 2 * i – 1 s(i) = InputBox("请输入数据:") s(i) = Int(Rnd * 101) Next i 数组元素的输出: [Picture1.]Print s(i); Label1.Caption = Label1.Caption & s(i) & “ " Text1.text=Text1.text & s(i) & " " Next i
4
本讲内容 5.3 数组的操作 数组元素的输入 数组元素的输出 数组的应用
5
一、数组元素的输入 4、用Array函数给数组元素赋值 格式:数组名=Array(数组元素值列表)
举例:a = Array("星期一", "星期二", "星期三") 功能:将括号中的数据依次赋给数组中的各元素。 说明: (1)Array函数只适用于一维数组。 (2)声明的数组是动态数组或连圆括号都可省并且其 类型只能是Variant 。 (3)Array函数中的数组元素值之间以逗号分隔。
6
Dim c() As Variant c = Array(4, 5, 3, 7, 2, 9) Dim c As Variant c = Array(4, 5, 3, 7, 2, 9) Dim c() c = Array(4, 5, 3, 7, 2, 9) Dim c c = Array(4, 5, 3, 7, 2, 9)
7
(4) 数组下标的下界值由Option Base决定,默
认是0,上界值由括号内的参数个数决定。 Dim c As Variant c = Array(4, 5, 3, 7, 2, 9) c(0) = 4: c(1) = 5: c(2) = 3 c(3) = 7: c(4) = 2: c(5) = 9 Option Base 1 Dim c As Variant c = Array(4, 5, 3, 7, 2, 9) c(1) = 4:c(2) =5: c(3) =3 c(4) = 7: c(5) =2: c(6) = 9
8
阅读语句,判定正误: 1、 Dim c(1 to 8) c = Array(4, 5, 3, 7, 2, 9) 2、 Dim c As Integer 3、 Dim c As Variant c() = Array(4, 5, 3, 7, 2, 9) 4、 Dim a a = Array("abc", 1, #8/21/2012#)
9
二、数组元素的输出 3、用For Each … Next 语句 格式: For Each 成员 in 数组 … [Exit For]
变体变量名 格式: For Each 成员 in 数组 … [Exit For] Next [成员] 仅为一个数组名,不需括号和上、下界
10
Dim a, t As Variant Dim a, i As Integer a = Array(1, 3, 5, 7, 9)
For i = 1 To 5 Print a(i); Next i Dim a, t As Variant a = Array(1, 3, 5, 7, 9) For Each t In a Print t; Next t 执行过程: (1)首先计算数组元素的个数,决定循环的次数。 (2)每次执行循环体之前先将数组的一个元素值赋给成员。 第一次是第一个数组元素,执行循环体; 第二次是第二个数组元素,依次类推。 (3)直到遍历完每一个数组元素或遇到Exit For语句则退出该 循环。
11
三、数组的应用 Dim a(1 To 20) As Integer Dim i As Integer For i = 1 To 20
例1 自动产生20个60~100以内的随机整数,并 输出这些数。 以每行5个 Dim a(1 To 20) As Integer Dim i As Integer For i = 1 To 20 a(i) = Int(41 * Rnd + 60) Next i For i = 1 To 20 a(i) = Int(41 * Rnd + 60) Print a(i); Next i For i = 1 To 20 Print a(i); Next i
12
Dim a(1 To 20) As Integer Dim i As Integer For i = 1 To 20 a(i) = Int(41 * Rnd + 60) Print a(i); Next i if i mod 5 = 0 then print
13
例2 输入10个学生的成绩,并求最高分和最低分。
例2 输入10个学生的成绩,并求最高分和最低分。 Dim i%, max!, min! Dim a(1 To 10) As Single a(1) = InputBox("输入第 1 个同学的计算机成绩", "成绩输入") max = a(1): min = a(1) For i = 2 To 10 a(i) = InputBox("输入第" & i & "个同学的计算机成绩", "成绩输入") If a(i) > max Then max = a(i) If a(i) < min Then min = a(i) Next i Print "最高分:" & max, "最低分:" & min 方 法 一 演示
14
If a(i) > max Then max = a(i) If a(i) < min Then min = a(i)
Dim i%, max!, min! Dim a(1 To 10) As Single max =0: min = 100 For i = 1 To 10 a(i) = InputBox("输入第" & i & "个同学的计算机成绩", "成绩输入") If a(i) > max Then max = a(i) If a(i) < min Then min = a(i) Next i Print "最高分:" & max, "最低分:" & min 方 法 二 演示
15
例3 将一组数据逆置输出。
16
算法分析: 假设有6个数据 第一次循环:第1个数据和第6个数据交换;(6-1+1) 第二次循环:第2个数据与第5个数据交换;(6-2+1) …… 规律:输入n个数据,逆置输出时, 交换第i个与第n-i+1个数据。
17
Dim a(1 To 6) As Integer Private Sub Command1_Click() Print "原数组:"; For i = 1 To 6 a(i) = InputBox("请输入第" & i & "个数据", "输入") Print a(i); Next i End Sub
18
逆置 Private Sub Command2_Click() Print "逆置数组:"; For i = 1 To 3 t = a(i)
a(i) = a(6 - i) a(6 - i) = t Next i For i = 1 To 6 Print a(i); End Sub t = a(i) a(i) = a(7 - i) a(7 - i) = t Print a(i);
19
小 结 数组元素的输入 数组元素的输出 数组的应用 统计个数 求最大(小)值 逆置
20
下次课内容: 5.7 自主学习(控件数组) 5.4 列表框和组合框控件 作业: 实验十一
Similar presentations