马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册  
 
x
 
数组是一系列数据的集合,对数组数据的访问是通过数组的下标。 
数组分一维数组和多维数组,TC最多支持8维数组。 
数组的作用是保存大量的数据,实现数据的快速访问。比如扫描拍卖行物品:把同类物品名和最低价存储到一个二维数组、游戏中跑路需要多组坐标,把坐标数据保存到数组等等。 现在来熟悉TC里的数组基础知识。 
 
(关键字中英文对应关系, 数组 - array ) 
 
数组的定义 
定义数组的方法为:在数组关键字后加方括号括来说明。下面是一个定义数组的例子: 
变量 物品=数组[10] 
这条语句定义了一个具有10个元素的名为物品的数组。方括号中的维数必须是一个正数值,不能为负数。这个数组只有一对中括号,所以它是一维数组。 
下面这样声明是正确的: 
- 变量 物品=数组[53] 
 
 - 变量 物品=数组[5*3+5] 
 
 - 变量 物品=数组[5.3] 
 
 
  复制代码 
但是下面这样是错误的定义: 
 
数组的大小如果为浮点数,那么TC在处理的时候,会进行四舍五入处理为整型值。如下: 变量 物品=数组[5.2] // 数组的大小为5 
变量 物品=数组[5.6] // 数组的大小为6 
 
数组的访问 
数组的访问是通过数组下标来访问的,而且下标的取值范围为0到N-1。如下: 
 
表明该物品数组是一维数组,里面有10个数,它们分别为物品[0], 物品[1],……物品[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。 
物品[3]=25 
 
上面的例子是把25赋值给物品数组的第四个元素,在赋值的时候,可以使用变量作为数组下标。 
 
访问数组中的所有元素时,使用循环的方法访问,一般是一维数组使用一个循环,二维数组使用二层嵌套循环,三维数组使用三层嵌套循环,依此类推,八维数组使用八层嵌套循环访问。 
 
如下是数组的定义与初始化操作: 
- 变量 offset = 数组[10] //定义一个大小为10的数组 
 
 - 遍历(下标 = 0; 下标 < 10 ; 下标 ++) 
 
 - offset[下标]=辅助.随机数(10,30)//产生一个10到30的随机数存入数组各元素里 
 
 - 遍历结束 
 
 
  复制代码 
 
一维数组举例: 
随机5个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)。 
- 功能 排序() 
 
 -   变量 值 = array[5] 
 
 -   变量 i=0,j=0,min=0,stmp=0 
 
 -   遍历(5) 
 
 -     值[i] =辅助.随机数(10,30)// 随机生成5个数 
 
 -     i =i + 1 
 
 -   遍历结束 
 
 -   字符型 输入内容 
 
 -   输入内容 = 字符串.格式化("随机数为:%d,%d,%d,%d,%d",值[0],值[1],值[2],值[3],值[4]) 
 
 -   辅助.消息框(输入内容) 
 
 - //// 开始排序 
 
 -   i=0 
 
 -   循环(i<4) 
 
 -     min=值[i] 
 
 -     j=i+1 
 
 -     循环(j<5) 
 
 -       如果(min>值[j])// 里面的4行语句很重要 
 
 -         min=值[j] 
 
 -         stmp=值[i] 
 
 -         值[i]=值[j] 
 
 -         值[j]=stmp 
 
 -       如果结束 
 
 -       j = j + 1 
 
 -     循环结束 
 
 -     i = i + 1 
 
 -   循环结束 
 
 -   输入内容 = 字符串.格式化("排列后的数据为:%d,%d,%d,%d,%d",值[0],值[1],值[2],值[3],值[4]) 
 
 -   辅助.消息框(输入内容) 
 
 - 功能结束 
 
 
  复制代码 
分析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b;b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。 
 
 
 
 
 
 
 
 
 |