TC官方合作论坛

 找回密码
 立即注册
查看: 5787|回复: 18
打印 上一主题 下一主题

[失效暂存] TC数组功能 第十四章

[复制链接]
跳转到指定楼层
楼主
发表于 2012-7-7 17:38:33 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
数组
数组,顾名思义就是一组同类型的数。
一、数组的声明
声明数组的语法为:在数据类型后加方括号括来说明。本接仅介绍一维数组。下面是一个整型数组的例子:
  1. 整型[] array= 整型[10]
复制代码
这条语句定义了一个具有10个整型元素的名为array的数组。方括号中的维数表达式可以包含运算符,但其计算结果必须是一个长整型值。这个数组是一维的。
下面这些声明是合法的:
  1. 整型[] offset = 整型 [5*2]
  2. 浮点型[] count = 浮点型[5*2+3]
复制代码

下面是不合法的:
  1. 整型[] offset= 整型 [5*2/3] // 数组的大小不能为浮点数
复制代码

二、用下标访问数组元素
  1. 整型[] offset= 整型 [5*2]
复制代码
表明该数组是一维数组,里面有10个数,它们分别为offset[0],offset[1],……offset[9];千万注意,数组的第一个元素下标从0开始。一些刚学编程的人员经常在这儿犯一些错误。
offset[3]=25;
上面的例子是把25赋值给整型数组offset的第四个元素。
在赋值的时候,可以使用变量作为数组下标。

  1. 整型 下标 = 0
  2. 整型[]  offset =整型[5*2]
  3. 重复(10)
  4.         offset[下标] =辅助.随机数(10,30)
  5.         下标 =下标 + 1
  6. 重复结束
复制代码
题目的意思是随机产生10~30之内的10个整数,存入到数组中。

三、数组的初始化
前面说了,变量可以在定义的时候初始化,数组也可以。
  1. 整型[]  array = 整型[5]
  2. array[0] = 1
  3. array[1] = 2
  4. array[2] = 3
  5. array[3] = 4
  6. array[4] = 5
复制代码
初始化值的个数可以和数组元素个数一样多。
如果初始化的个数多于元素个数,将产生编译错误;如果少于元素个数,其余的元素被初始化为0

举个例子:
1.
输入5个整数存入数组中,然后把它们从小到大排列并放在同一数组中。(思路:先找出最小的,放在第一个位置,为了防止把原先的数覆盖掉,可以把原先的第一个数和最小数的位置互换)
  1. 整型[]  array = 整型[5]
  2.     整型 i=0,j=0,min=0,stmp=0
  3.     重复(5)
  4.         array[i] =辅助.随机数(10,30) // 随机生成5个数
  5.         i =i + 1
  6.     重复结束
  7.     字符型 输入内容
  8.     输入内容 = 字符串.格式化("随机数为:%d,%d,%d,%d,%d", array[0] , array[1] , array[2] , array[3] , array[4])
  9.     辅助.消息框(输入内容)
  10.     //// 开始排序
  11.     i=0
  12.     循环(i<4)
  13.         min=array[i]
  14.         j=i+1
  15.         循环(j<5)
  16.             如果(min>array[j]) // 里面的4行语句很重要
  17.                 min=array[j]
  18.                 stmp=array[i]
  19.                 array[i]=array[j]
  20.                 array[j]=stmp
  21.             如果结束
  22.             j = j + 1
  23.         循环结束
  24.         i = i + 1
  25.     循环结束
  26.     输入内容 = 字符串.格式化("排列后的数据为:%d,%d,%d,%d,%d", array[0] , array[1] , array[2] , array[3] , array[4])
  27. 辅助.消息框(输入内容)
复制代码
分析:先让第一个值作为基准,如果后面有比它小的,那么就把这两个数互换一下,同时把基准换成小的值。两个数互换应该这样(stmp=a;a=b;b=stmp;),而不是(a=b;b=a;),想想这是为什么?必须要用一个变量作为桥梁。这种一个一个的把最小的放在前面的排序方法,我们形象的叫做冒泡法。

二维数组
比方说我们熟知的坐标系,在2D游戏里,一组(XY)坐标决定人物的位置,而这里的坐标,我们就可以用二维坐标来描述。
二维数组的定义:数据类型 [][] 数组名
比方我们知道游戏里的5组坐标,那么我们就可以定义一个这样的二维数组:
整型[][] 坐标 = 整型[5][2]


这个就可以很清楚的表示:列号为0的表示X坐标,列号为1的表示Y坐标。

二维数组的引用
二维数组和一维数组的使用差不多,不过二维数组提供了二种方法遍历,一种是:先横向再纵向,另一种是:先纵向再横向。不过二种方法的效果都是一样的!那么我们来看看具体怎么访问二维数组。
例如:

  1. 整型[][] 坐标 = 整型[5][2]
  2. 整型 i=0,j=0
  3. 循环(i<5)
  4.     j=0
  5.     循环(j<2)
  6.         坐标[i][j]=辅助.随机数(11,32)
  7.         j = j + 1
  8.     循环结束
  9.     i=i+1
  10. 循环结束
复制代码
二维数组的大小:整型[][]坐标 = 整型[5][2]
// 大小为 5*2


三维数组
定义:
类型[][][] 数组名
如:整型[][][] 变量
初始化大小:变量 = 整型[10][2][3]
数组的大小/长度: N*N*N
整型[10][2][3]这里的大小为10*2*3=60
数组的访问:数组名 [下标1][下标2][下标3]
下标的值为0~N-1
N为数组的长度。
多维数组操作复杂,一般用到二维就够了。

http://player.youku.com/player.php/Type/Folder/Fid/17846022/Ob/1/sid/XNDI2NjI3MDY0/v.swf

如果对第十三章空间的定义还不熟悉的同学可以回顾一下

掌握了这节课的同学,我们一起来学习第十五章TC的文件操作http://bbs.tyuyan.com/thread-15409-1-1.html


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

沙发
发表于 2012-7-7 17:39:01 | 只看该作者
顶一个
回复 支持 反对

使用道具 举报

板凳
发表于 2012-7-7 17:50:27 | 只看该作者
支持一下老师
回复 支持 反对

使用道具 举报

地板
发表于 2012-7-7 19:17:34 | 只看该作者
顶顶顶~~
回复 支持 反对

使用道具 举报

5#
发表于 2012-7-10 20:46:19 | 只看该作者
学习学习再学习
回复 支持 反对

使用道具 举报

6#
发表于 2012-7-10 21:00:50 | 只看该作者
路过
回复 支持 反对

使用道具 举报

7#
发表于 2012-7-11 14:12:06 | 只看该作者
相当详细,新手仔细看看啊
回复 支持 反对

使用道具 举报

8#
发表于 2012-7-11 14:13:59 | 只看该作者
支持abin老湿,昨晚有事没去听课,罪过罪过,一会下视频看去
回复 支持 反对

使用道具 举报

9#
发表于 2012-7-11 15:06:31 | 只看该作者
看过了,还没学
回复 支持 反对

使用道具 举报

10#
发表于 2012-7-21 20:09:15 | 只看该作者
经典,,,
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18043773号

GMT+8, 2025-9-18 06:05 , Processed in 0.124734 second(s), 22 queries .

Powered by 海安天坑软件科技有限公司

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表