VFP之数组知识详解(带例题)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ENDWITH
7.3 对象数组
【例7-6】在例4-7中使用对象变量。 在例4-7的基础上改写代码。 编写表单的Init事件代码:
PUBLIC txt1,txt2 txt1 = THIS.Container1.Text1 txt2 = THIS.Container2.Text1
改写表单的Activate事件代码: txt1.SetFocus
7.2 使用数组
7.2.1 数组的定义 1. 数组的声明
数组在使用前必须先声明。声明的语法格式为
{DIMENSION | DECLEAR} 〈数组名〉(〈行数〉[,〈列数〉] )
声明全局数组的格式为 : PUBLIC 〈数组名〉(〈行数〉[,〈列数〉] ) 声明局部数组的格式为 : LOCAL 〈数组名〉(〈行数〉[,〈列数〉] ) 2. 数组的赋值
2. 编写程序,建立并输出一个10×10的矩阵,该矩阵两条对角线元素为1, 其余元素均为0。
3. 有一个8×6的矩阵,各元素的值由由计算机随机产生,求全部元素的平 均值,并输出高于平均值的元素以及它们的行、列号。
4. 矩阵转置。即将矩阵行、列互换:
2 3 4 5
6 7 8 9
15
2 6
3 7
48 转置
第7章 数 组
在许多场合,使用数组可以缩短和简化程序,因为可 以利用下标设计一个循环,高效地处理多种情况。
7.1 数组的概念 7.2 使用数组 7.3 对象数组 习题7
7.1 数组的概念
7.1.1 数组与数组元素 数组是用一个统一的名称表示的、顺序排列的
一组变量。数组中的变量称为数组元素,用数字 (下标或称索引)来标识它们,因此数组元素又 称为下标变量。 在使用数组时要注意以下几点:
8. 矩阵的乘法运算。设A = (aij)为n×k矩阵,B = (bij)为k×m矩阵,则有C = AB 为n×m矩阵,C中元素:
k
cij aitbtj
t
i j
1,2,, 1,2,,
n m
9. 设某班共10名学生,为了评定某门课程的奖学金,按规定超过全班平均成绩 10%者发给一等奖,超过全班成绩5%者发给二等奖。试编制程序,输出应获奖学 金的学生名单(包括姓名、学号、成绩、奖学金等级)。
p ← ""
i 从1 到14
a(i) ← INT(RAND() * (99-10+1)) + 10
P ← p + a(i)
输出p
max ← 10,min ← 100,s ← 0
i 从1到14 如果 a(i) > max 真 如果 a(i) < min 真
max ← a(i) min ← a(i)
s ← s + a(i) 输出max, min, s
DIME A(3,3)
数组元素:A(2,1)的一维下标 (2-1)*3+1=4
AELEMENT( a,2,1)=4
a(1,1) a(1,2) a(1,3) 二维数组 A(3,3)= a(2,1) a(2,2) a(2,3)
a(3,1) a(3,2)) a(3,3)
当一维数组看: a(9)={a(1),a(2),a(3),a(4),a(5),a(6),a(7),a(8),a(9)}
分析:这是一个“排序”问题,使用排序 函数可以轻而易举地对数组元素进行排序。
2. 与数据表记录进行数据交换的命令 用于数组与数据表记录之间进行数据交换的命令有:
① SCATTER——将数据从当前记录复制到数组中去。复制一条记录 ② GATHER——用来自数组的数据替换当前表中的数据。 ③ COPY TO ARRAY——从当前表向一个数组复制数据。 ④ APPEND FROM ARRAY——用来自数组的数据给当前表追加新记录。
声明数组f() f(1) ← 1 : f(2) ← 1 i 从3 到n
f(i) ← f(i-1) + f(i-2) 输出f(i)
3. 二维数组表示为一维数组 假如建立了一个二维数组,其下标也可以使用一维数组表示法
来表示。如: 二维数组表示法转换成一维数组表示法: 序号(一维数组)=(行数 – 1)*数组列数 + 列数 使用AELEMENT( )函数取得一维数组表示法的元素位置,即: 序号(一维数组)= AELEMENT(数组名,行数,列数)
话号码”文本框中显示出对应的电话号码。当用户选择或取消“单位”和“住址” 复选框后,将打开或关闭“工作单位”或“家庭住址”文本框,如图7-17所示。
13. 某校召开运动会。有10人参加男子100米短跑决赛,运动员号码和成绩见表76,试设计一程序,按成绩排名次。
运动员号码 011 号 095 号 233 号 246 号 008 号
• 【例7-3】设有一个5×5的方阵, 其中元素是由计算机随机生成 的小于100的整数。求出:
• ① 主对角线上元素之和。
• ② 方阵中最大的元素,如图 7-6所示。
• 分析:方阵中的元素可以用一 个二维的数组表示。赋值时转 换成一维数组,计算时则利用 二维数组的性质。
7.2.3 数组数据的处理 1. 处理数组元素的函数
1 2 3 4
5 6 7 8
2 6 1 5 1 5 3 7 2 6 2 6 4 8 3 7 3 7 5 9 4 8 4 8
5. 求方阵的两个对角线元素和。 6. 找出二维数组n×m中的“鞍点”。所谓鞍点是指它在本行中值最大,在本
列中值最。输出鞍点的行、列号,有可能在一个数组中找不到鞍点,如无鞍点则 输出“无”。
USE RSDA SCATTER TO A FIELDS 职称 LIST MEMO LIKE A GO 3
&&当前记录职称的内容写到变量A
GATHER FROM A FIELDS 职称 &&变量A的数据替换职称字段数据 REPL 职称 WITH A
对象变量
对象数组是指引用对象的数组,即数组中保存的是对象。
数组在声明之后,每个元素被默认地赋予.F.值。
例:
Dime c(5,5) LIST MEMORY LIKE C
【例7-1】随机产生14个两位整数,找出其最大值、最小值和平均值。 分析:问题可以分为两部分,一个是产生14个随机整数,一个是对这14个整数求
最大、最小以及平均值。为此,需要使用数组。 根据以上分析画出流程图如图7-1、图7-2所示。
D) 新定义数组的各个数组元素初值为.F.
2. 使用命令DECLARE mm(2, 3)定义的数组,包含的数组元素的个数为:
A) 2 B) 3 C) 5 D) 6
3. 在VFP中,要使用数组:
A) 必须先定义
B) 必须先赋值
C) 赋值前必须定义
D) 有时可以不必先定义
二、填空题
1. 数组的最小下标是_________,数组元素的初值为____________。
10. 为上题增加一个命令按钮,统计一个班学生0~9、10~19、20~29、…、 90~99及100各分数段的人数。
11. 利用随机函数,模拟投币结果。设共投币100次,求“两个正面”、“两个 反面”、“一正一反”3种情况各出现多少次。
12. 设计一个“通讯录”程序。当用户在下拉列表框中选择某一人名后,在“电
2. 数组变量的释放 使用RELEASE命令可以从内存中释放变量和数组。其语法是:
RELEASE {〈变量列表〉|〈数组名列表〉} 其中各变量或数组名用逗号分隔。
【例7-2】斐波纳契(Fibonacci)数列问题。 (一种整数数列, 其中每数等于前面两数之和) 其中第n项的计算公式为: Fib(n) = Fib(n–1) + Fib(n–2)
2. 执行语句DIMENSION M(3), N(2,3)后,数组M和N的元素个数分别为____
和____。
3. 执行语句DIMENSION N(4, 5)后,元素N(3, 4)的一维数组表示为
____________。
三、编程题
1. 某数组有10个元素,值由计算机随机产生。要求将前5个元素与后5个元 素对换。即第1个元素与第10个元素互换,第2个元素与第9个元素互换,…, 第5个元素与第6个元素互换。输出数组对换后各元素的值。
把 thisform.pageframe1.page1.text2.value= thisform.pageframe1.page1.text1.value
改写为: AB= thisform.pageframe1.page1 AB.text2.value=AB.text1.value
或: WITH thisform.pageframe1.page1 .text2.value = .text1.value
编写表单的Destroy事件代码: txt1 = 0 txt2 = 0 RELEAห้องสมุดไป่ตู้E txt1, txt2
习题7
一、选择题
1. 下列关于VFP数组的叙述中,错误的是:
A) 用DIMENSION和DECLARE都可以定义数组
B) VFP只支持一维数组和二维数组
C) 一个数组中各个数组元素必须是同一种数据类型
成绩 12.4 s 12.9 s 13.8 s 14.1 s 12.6 s
运动员号码 476 号 201 号 171 号 101 号 138 号
成绩 14.9 s 13.2 s 11.9 s 13.1 s 15.1 s
14. 在上题中利用数组的排序函数ASORT()进行 排序。
15. 编写竞赛用评分程序:去掉一个最高分, 去掉一个最低分,选手的得分最后为余下分数的 平均分。如图7-18所示。
7. 矩阵的加法运算。两个相同阶数的矩阵A和B相加,是将相应位置上的元素 相加后放到同阶矩阵C的相应位置。
12 24 7
23 4 34 +
1 51 32 34 3 13
2 41 25 14 65 32
43 24
3
81 1 12
=
66 28 37 82 52 44
4
43 37
38 46 50
① 数组的命名与简单变量的命名规则相同。 ② 下标必须用括号括起来 ③ 下标可以是常数、变量或表达式。 ④ 下标必须是整数 注意:数组使用前必须声明
7.1.2 数组的维数
如果一个数组的元素只有一个下标,则 称这个数组为一维数组。例如:A(5) 一维数组中的下标又称为索引(Index)
有两个下标的数组称为二维数组,其中的数 组元素称为双下标变量。例如:A(5,5)
数组提供了一种快速排序数据的方法。
可以使用如下函数来处理数组元素:
① 数组元素的排序——ASORT()。 ② 数组元素的搜索——ASCAN()。 ③ 数组元素的删除——ADEL()。 ④ 数组元素的插入——AINS()。 ⑤ 数组元素的个数——ALEN()。 【例7-4】由计算机随机生成10个互不相 同的数,然后将这些数按由小到大的顺序 显示出来。如图7-7所示。 例题:数组排序
相关文档
最新文档