TC官方合作论坛

标题: 数组的定义与访问 [打印本页]

作者: Abin    时间: 2013-9-10 12:05
标题: 数组的定义与访问
数组是一系列数据的集合,对数组数据的访问是通过数组的下标。
数组分一维数组和多维数组,TC最多支持8维数组。
数组的作用是保存大量的数据,实现数据的快速访问。比如扫描拍卖行物品:把同类物品名和最低价存储到一个二维数组、游戏中跑路需要多组坐标,把坐标数据保存到数组等等。 现在来熟悉TC里的数组基础知识。

(关键字中英文对应关系, 数组 - array )

数组的定义
定义数组的方法为:在数组关键字后加方括号括来说明。下面是一个定义数组的例子:
变量 物品=数组[10]
这条语句定义了一个具有10个元素的名为物品的数组。方括号中的维数必须是一个正数值,不能为负数。这个数组只有一对中括号,所以它是一维数组。
下面这样声明是正确的:
  1. 变量 物品=数组[53]
  2. 变量 物品=数组[5*3+5]
  3. 变量 物品=数组[5.3]
复制代码

但是下面这样是错误的定义:
  1. 变量 物品=数组[5.2-10]
复制代码

数组的大小如果为浮点数,那么TC在处理的时候,会进行四舍五入处理为整型值。如下:
变量 物品=数组[5.2] // 数组的大小为5
变量 物品=数组[5.6] // 数组的大小为6

数组的访问
数组的访问是通过数组下标来访问的,而且下标的取值范围为0到N-1。如下:
  1. 变量 物品=数组[10]
复制代码

表明该物品数组是一维数组,里面有10个数,它们分别为物品[0], 物品[1],……物品[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。
物品[3]=25

  1. 物品[3]=25
复制代码
上面的例子是把25赋值给物品数组的第四个元素,在赋值的时候,可以使用变量作为数组下标。

访问数组中的所有元素时,使用循环的方法访问,一般是一维数组使用一个循环,二维数组使用二层嵌套循环,三维数组使用三层嵌套循环,依此类推,八维数组使用八层嵌套循环访问。

如下是数组的定义与初始化操作:
  1. 变量 offset = 数组[10] //定义一个大小为10的数组
  2. 遍历(下标 = 0; 下标 < 10 ; 下标 ++)
  3. offset[下标]=辅助.随机数(10,30)//产生一个10到30的随机数存入数组各元素里
  4. 遍历结束
复制代码


一维数组举例:
随机5个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)。
  1. 功能 排序()
  2.   变量 值 = array[5]
  3.   变量 i=0,j=0,min=0,stmp=0
  4.   遍历(5)
  5.     值[i] =辅助.随机数(10,30)// 随机生成5个数
  6.     i =i + 1
  7.   遍历结束
  8.   字符型 输入内容
  9.   输入内容 = 字符串.格式化("随机数为:%d,%d,%d,%d,%d",值[0],值[1],值[2],值[3],值[4])
  10.   辅助.消息框(输入内容)
  11. //// 开始排序
  12.   i=0
  13.   循环(i<4)
  14.     min=值[i]
  15.     j=i+1
  16.     循环(j<5)
  17.       如果(min>值[j])// 里面的4行语句很重要
  18.         min=值[j]
  19.         stmp=值[i]
  20.         值[i]=值[j]
  21.         值[j]=stmp
  22.       如果结束
  23.       j = j + 1
  24.     循环结束
  25.     i = i + 1
  26.   循环结束
  27.   输入内容 = 字符串.格式化("排列后的数据为:%d,%d,%d,%d,%d",值[0],值[1],值[2],值[3],值[4])
  28.   辅助.消息框(输入内容)
  29. 功能结束
复制代码

分析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b;b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。









作者: fupinggui    时间: 2013-9-10 18:10

作者: tianmenghuan    时间: 2014-5-9 08:16
还是有点迷茫
作者: slz336    时间: 2014-8-26 13:15
顶起来支持免费




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1