百宝云数组教程

第五节:数组

    数组这个知识点还是非常重要的,日常的项目里也少不了它的存在,因此,通过这节课,希望大家能掌握数组的一些常规使用方法,以便大家在日后的项目里熟练运用。

   5.1 概念

    数组是一系列数据的集合,可以存储大量数据,通过数组的下标、key,可以实现对数据的快速访问。

   为什么要使用数组,什么场景使用数组?

   好,首先我们来分析一个需求。

   小花参加一次唱歌比赛中,有5名裁判打分,得到如下成绩:  89分, 90分, 80分, 95分, 82分。那么要求是:去掉最高分与最低分,最后成绩是多少? 判断出是哪个裁判的分最高与最低?

   如果我们还是按照以前的思路去写的话,代码是这样的:

   

功能  得到成绩()
    变量 裁判1成绩 = 89
    变量 裁判2成绩 = 90
    变量 裁判3成绩 = 80
    变量 裁判4成绩 = 95
    变量 裁判5成绩 = 82    
    // 这样的写法去判断,代码思路比较乱,而且也不方便扩展,所以就不写了
// 想这样写的读者,可以自己去写写看.
结束

这样使用了5个变量存储5个成绩,要计算出最后成绩的话,需要5 个成绩两两比较,这样的处理比较麻烦。那么有没有方便的处理办法呢?

有,这就需要用到数组了,使用数组之后,这些处理就方便很多了,后期的扩展也方便了。

那么用数组之后的写法是怎么的呢?如下:

功能 得到成绩()
    变量 裁判成绩 = 数组()
    裁判成绩[0] = 89
    裁判成绩[1] = 90
    裁判成绩[2] = 80
    裁判成绩[3] = 95
    裁判成绩[4] = 82
    //变量 裁判成绩 = 数组(89,90,80,95,82)
    变量 最高分 = 裁判成绩[0],最高分裁判 = 0,最低分 = 裁判成绩[0],最低分裁判 = 0,总成绩 = 0
    遍历(变量 i = 1; i < 5; i++)
        如果(最高分 < 裁判成绩[i])
            最高分 = 裁判成绩[i]
            最高分裁判 = i
        结束
        
        如果(最低分 > 裁判成绩[i])
            最低分 = 裁判成绩[i]
            最低分裁判 = i
        结束
    结束
    
    遍历(变量 i = 0; i < 5; i++)
        如果(i == 最高分裁判 || i == 最低分裁判)
            继续
        结束
        
        总成绩 = 总成绩 + 裁判成绩[i]
    结束
    发送文本消息("总成绩为:" & 总成绩)
    发送文本消息("最高分裁判是:" & (最高分裁判 +1) & "号裁判")
    发送文本消息("最低分裁判是:" & (最低分裁判 +1) & "号裁判")
结束


这样一写之后,代码简洁了很多,条理看起来也清楚了很多。扩展起来也简单多了,就是增加数组元素,其他的都不要改了。

 

   5.2 数组的基本用法

   数组里面是可以同时存储多种类型数据。常用的数组分下面三大类型。

   5.2.1索引数组

   这类的数组是最简单的数组,操作起来也很简单,这类数组的下标基本上是从0开始,到数组长度-1。如上面的例子,使用的就是索引数组。简单示例如下:

//变量 a = 数组[3]("宝马","卡宴","奥迪")// 
/变量 a = 数组[3]("宝马","卡宴","奥迪")// 
    //或者 
    变量 a = 数组[3] 
    a[0] = "宝马" 
    a[1] = "卡宴" 
    a[2] = "奥迪" 
    
    //遍历数组 
    遍历(变量 i=0;i<3;i++) 
        发送文本消息(a[i]) 
    结束

    //或者 
    变量 a = 数组[3] 
    a[0] = "宝马" 
    a[1] = "卡宴" 
    a[2] = "奥迪" 
    
    //遍历数组 
    遍历(变量 i=0;i<3;i++) 
        发送文本消息(a[i]) 
    结束


   5.2.2关联数组

  这类数组的特点是:key è value。也就是一个key对应一个value。这里的key可以是任意字符串。如下列的示例:

 

 //变量 a = 数组("key1"="宝马","key2"="卡宴","key3"="奥迪") 
    //或者 
    变量 a = 数组() 
    a["key1"] = "宝马" 
    a["key2"] = "卡宴" 
    a["key3"] = "奥迪" 
    
    //显示指定数组元素 
    发送文本消息(a["key2"])
 

   索引数组与关系数组的区别:

 

选项

描述

索引数组

定义

//索引数组变量定义有五种写法
1、变量 数据 = 数组[5] //未初始成员元素,默认所有元素为null,数组大小为5
2、变量 数据 = 数组[5]() //未初始成员元素,默认所有元素为null,数组大小为5
3、变量 数据 = 数组[5](1,2,3,4,5) //初始化成员元素,数组大小为5
4、变量 数据 = 数组[](1,2,3,4,5) //能过初始化成员元素,确定数组大小为5 
5、变量 数据 = 数组[] //定义数组大小为0的数组 

元素范围

下标是从0开始,到数组大小-1,如果访问元素,超过下标范围,程序会报错,提示访问数组越界 

访问方式

变量 内容 = 数据[0]
在访问的时候[]中间一定是整数型值,否则程序会提示访问越界数组

关联数组

 

定义

//关联数组定义有三种写法
变量 数据 = 数组() //未初始化成员元素的定义,没有成员元素,数组大小为0
变量 数据 = 数组("a","b","c",4,5,6) //初始化成员元素的定义,数组大小为6
变量 数据 = 数组("a"="a","b"="b","c"="c","d"=4,"e"=5,"f"=6) //初始化指定key的成员元素的定义,数组大小为6

元素范围

关联数组理论上可以无限大,且不会存在越界等错误.

访问方式

关联数组采用的是一种key->value对应的方式存在,我们在访问关联数组,采用如下方法 
变量 内容 = 数据["abc"]
在这里,关联数组本身具有自动增加元素的特性,当元素不存在,第一次访问的时候会自动增加,并设置初始值为null

 

   5.2.3 多维数组

   百宝云里的多维数组定义与其他语言的不同,不是 

   

变量 b = 数组[2][2]   // 

写法是错误的

   这样的写法在百宝云里是错误的,应该是下面这样的写法:

   

//索引多维数组 
   变量 车辆资料 = 数组[3](数组[3]("Volvo",22,18), 数组[3]("BMW",15,13), 数组[3]("Saab",5,2))  
  //或者  
变量 车辆资料 = 数组[3]()  
车辆资料[0] = 数组[3]("Volvo",22,18)  
车辆资料[1] = 数组[3]("BMW",15,13)  
车辆资料[2] = 数组[3]("Saab",5,2)  
  
变量 n = 数组大小(车辆资料) 
遍历(变量 i=0;i  < n;i++)   
    变量 临时数组 = 车辆资料[i] 
    变量 n1 = 数组大小(临时数组) 
    遍历(变量 j=0;j  < n1;j++)   
        发送文本消息(临时数组[j])   
    结束 
结束

 

   在日常的项目当中,我们用到二维数组就差不多了,再增加维数,那样操作起来就麻烦了。

   以下我们再来学习下keyàvalue类型的多维数组。示例如下:

  

 //关联索引数组 
   变量 车辆资料 = 数组()   
   车辆资料["张三"] = 数组("品牌" = "Volvo","里程" = 22,"车铃" = 18)   
   车辆资料["李四"] = 数组("品牌" = "BMW","里程" = 15,"车铃" = 13)   
   车辆资料["王五"] = 数组("品牌" = "Saab","里程" = 5,"车铃" = 2) 
  
  //通过遍历的方式,访问关联数组中所有的元素 
  变量 n = 数组大小(车辆资料) 
    遍历(变量 i=0;i < n;i++)   
    变量 临时值 
    数组获取元素(车辆资料,i,临时值) 
    变量 n1 = 数组大小(临时值) 
    遍历(变量 j=0;j < n1;j++)   
        变量 临时键1,临时值1 
        关联数组获取元素(临时值,j,临时值1,临时键1) //记住这里只能是关联数组,否则会获取元素失败 
        发送文本消息("key:"&临时键1&" "&"value:"&临时值1) 
    结束 
结束   
  

  //也可以通过关联数组的key 直接访问对应的元素    

   发送文本消息("李四的车辆品牌是:" & 车辆资料["李四"]["品牌"])

 

  百宝云还提供了一系列操作数组的命令,大家有时间的时候,都去看看这些命令,最好能把命令的示例给运行下,这样就更容易掌握各个命令的用途了。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel百宝箱12是Excel软件中的一种功能插件,主要提供了一系列实用的工具和功能,方便用户在处理数据和进行计算时提高工作效率。 首先,Excel百宝箱12中提供了各种数据处理和分析工具。我们可以使用数据筛选器和排序器,快速对数据进行筛选和排序,便于查找和分析数据。此外,插件还提供了高级筛选功能和透视表,可以根据多个条件对数据进行更复杂的筛选和分析,以展现数据背后的规律和趋势。 其次,Excel百宝箱12还包括了许多实用的计算工具。用户可以通过插件中的函数库,直接调用各种常用和高级的计算函数,如数学函数、统计函数、逻辑函数等,省去了手动编写公式的繁琐过程。此外,插件还提供了一些专门用于处理日期、时间和文本的函数,方便用户在处理工作中遇到的特殊数据类型时进行计算和处理。 另外,Excel百宝箱12还拥有一些其他实用的功能。比如,插件提供了数据去重和单元格合并功能,可以方便快速地对数据进行去重复和合并操作。还有流行的图表工具等,以便更好地展示和可视化数据。插件还包括了一些数据清理和错误检测的功能,可帮助用户检查和修复数据中的错误或异常,提高数据的准确性和可靠性。 总之,Excel百宝箱12作为一款实用的Excel插件,提供了丰富多样的数据处理和计算工具,使用户能够更高效地处理数据和进行各种复杂的分析和计算。无论是个人用户还是工作中的专业人士,都可以通过使用这个插件来提高工作效率和数据处理的质量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值