TC官方合作论坛

 找回密码
 立即注册
查看: 5784|回复: 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
回复

使用道具 举报

19#
发表于 2014-8-26 13:52:42 | 只看该作者
无基础 新手来学学
回复 支持 反对

使用道具 举报

18#
发表于 2013-3-5 13:53:28 | 只看该作者
看不懂  怎么办????
回复 支持 反对

使用道具 举报

17#
发表于 2013-3-2 08:11:20 | 只看该作者
学习
回复 支持 反对

使用道具 举报

16#
发表于 2012-10-30 10:50:16 | 只看该作者
老师,我想写一个自动开启或关闭服务程序的脚本,怎么做?给点意见。
回复 支持 反对

使用道具 举报

15#
发表于 2012-10-23 21:47:59 | 只看该作者
看不懂
回复 支持 反对

使用道具 举报

14#
发表于 2012-10-7 07:59:07 | 只看该作者
老师威武
回复 支持 反对

使用道具 举报

13#
发表于 2012-8-20 14:51:30 | 只看该作者
中文语法真让人崩溃啊
回复 支持 反对

使用道具 举报

12#
发表于 2012-8-16 19:04:14 | 只看该作者
顶一个,这个就复杂了
回复 支持 反对

使用道具 举报

11#
发表于 2012-8-8 18:40:40 | 只看该作者
回复 1楼Abin的帖子

可不可以给一维数组赋坐标呢?
坐标[3]={(x0,y0)(x1,y1)(x2,y2)(x3,y3)(x4,y4)}
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

关闭

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

GMT+8, 2025-9-18 00:01 , Processed in 0.111168 second(s), 23 queries .

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

© 2001-2013 Comsenz Inc.

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