精华内容
下载资源
问答
  • 声明二维数组与一维数组一样,使用Dim语句来声明二维数组。例如,语句Dim myArray(3,7) AsInteger声明了一个名为myArray的包含4行8列共32个元素的二维整型数组,如图1所示。 图1也可以使用以下语句,使myArray数组的...

    VBA可以定义多达60维的数组,但实际上很少使用三维以上的数组。本文主要讲解二维数组及其使用。

    声明二维数组

    与一维数组一样,使用Dim语句来声明二维数组。例如,语句

    Dim myArray(3,7) AsInteger

    声明了一个名为myArray的包含4行8列共32个元素的二维整型数组,如图1所示。

    113254680_1_20171013064310532  图1

    也可以使用以下语句,使myArray数组的下标索引值从1开始。

    Dim Arr(1 To 4, 1 To8) As Integer

    声明一个4行8列的二维数组。

    声明二维数组的方式

    ① Dim数组名(数字,数字) As数据类型

    ② Dim数组名(数字,数字)

    各部分的说明与上篇文章相同。(注,谢谢doubao朋友在上篇文章中指出的歧义;数组名后的数字定义了数组最大下标索引值,这个数字可能该维的最大元素数,这取决于Option Base语句)

    给二维数组赋值

    下面的过程给二维数组myArray赋值:

    Sub testMyArray()

    Dim myArray(3, 7) As Integer

    Dim i As Integer, j As Integer

    For i = 0 To 3

    For j = 0 To 7

    myArray(i, j) = i * j

    Next j

    Next i

    End Sub

    运行程序后,数组myArray中各元素的值如图2所示。

    113254680_2_20171013064310642 图2

    获取二维数组元素的值

    如图3所示,可以看出数组myArray的第2行第3列的元素的值为2。

    113254680_3_20171013064310782 图3

    可以使用myArray(1, 2)来获取其值,如下面的过程:

    Sub testMyArray1()

    Dim myArray(3, 7) As Integer

    Dim i As Integer, j As Integer

    For i = 0 To 3

    For j = 0 To 7

    myArray(i, j) = i * j

    Next j

    Next i

    MsgBox '数组myArray的第2行第3列元素的值是: ' & _

    'myArray(1,2) = ' &myArray(1, 2)

    End Sub

    运行代码后的结果如图4所示。

    113254680_4_20171013064310892 图4

    由于默认下标索引值基于0开始,因此第2行的元素下标索引值是1,第3列元素下标索引值是2。

    注意,如果下标超出了数组范围,则会出现运行时错误:下标越界。

    二维数组的下限与上限

    可以使用LBound函数和UBound函数来确定二维数组的下限和上限,即二维数组各维的下标的最小索引值和最大索引值。例如,下面的过程:

    Sub testMyArray2()

    Dim myArray(3, 7) As Integer

    Dim i As Integer, j As Integer

    Dim k As Integer, str As String

    For i = 0 To 3

    For j = 0 To 7

    myArray(i, j) = i * j

    Next j

    Next i

    For k = 1 To 2

    str = str & '数组myArray的第' & k &'维的下限是: ' &LBound(myArray, k)

    str = str & '上限是: ' &UBound(myArray, k) & vbCr & vbCr

    Next k

    MsgBox str

    End Sub

    运行后的结果如图5所示。

    113254680_5_20171013064310970 图5

    可以看出,在LBound函数和UBound函数中,第1个参数为数组名称,第2个参数指定数组的维数。

    本文简要介绍了二维数组的基本操作,下一篇文章将重点讲解二维数组在工作表中的应用。

    相关链接:

    本文属原创文章,转载请联系我(xhdsxfjy@163.com)或者注明出处。

    欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

    展开全文
  • 维数组初始化 如果要对二维数组初始化,只能用read file从文本文件读进来的方式或者用generate 来对数组初始化;   用read file的方式如下(文本文件为2进制,每个数据占据行,例如11001111): r...

    今天设计碰到需要例化32个子模块的问题,依稀记得verilog中好像有循环的语句可以使用,于是查到了generate的使用。同时学习使用二维数据,将代码简洁化:

    二维数组初始化

    如果要对二维数组初始化,只能用read file从文本文件读进来的方式或者用generate 来对数组初始化;

     

    用read file的方式如下(文本文件为2进制,每个数据占据一行,例如11001111):

    reg [7:0] mem_2d [99:0];

    initial begin

    $readmemb("simu.txt", mem_2d);

    end

     

    用generate 的方式(相当于依次给每个元素赋值)如下:

    wire [7:0] mem_2d[99:0];

    generate

    genvar i;

    for(i=0;i<=99;i=i+1) begin : BLOCK0

    assign mem_2d[8*(i+1) : 8*i] = i;//

    //crc_32    crc32(mem_2d[i] ,  crc_dout[i] );

    end

    endgenerate

    也许大家会认为可以用如下的for循环来初始化数组:

    reg [7:0] mem_2d[99:0];

    initial begin

    for(i=0;i<=99;i=i+1) begin

    mem_2d[i] <= i;

    end

    end

    但实际modelsim编译时会报错误,会认为mem_2d[i]应该是一个已知数据,不能用变量。

     

     

    展开全文
  • 数组初始化赋值是指在数组定义时给数组元素赋初值。数组初始化是编译阶段进行的。这样将减少运行时间,提高效率。 注:之前用到的赋值语句或输入语句给数组赋值是在运行时完成的。 一般形式为:类型说明符 数组名...

    给数组赋值的方法除了用赋值语句对数组元素逐个赋值外,还可采用初始化赋值和动态赋值的方法。

    数组初始化赋值是指在数组定义时给数组元素赋初值。数组初始化是编译阶段进行的。这样将减少运行时间,提高效率。

    注:之前用到的赋值语句或输入语句给数组赋值是在运行时完成的。

    一般形式为:类型说明符 数组名[常量表达式]={值、值……值}

    例:int a[8]={0,1,2,3,4,5,6,7};

    (1)所赋初值放在等号后的一对花括号中,数值类型必须与所说明的类型的一致,所赋初值之间用逗号隔开,系统将按这些数值的排列顺序,从a[0]元素开始依次给a数组中的元素赋值。以上语句将给a[0]赋初值0,给a[1]赋初值1……,给a[7]赋初值7。在指定初值中,第一个初值必定赋给下标为0的元素,因此,不可能跳过前面的元素给后面的元素赋初值。

    (2)当所赋初值少于所定义数组的元素个数时,将自动给后面的元素补以初值0。

    例:给a数组中所有元素赋初值0

    int a[10]={0};

    (3)对于字符型数组也同样补以初值0,即'\0'。

    例:char c[5]={'@'};

    相当于:

    char c[5]={'@','\0','\0','\0','\0'};

    (4)当所赋初值多于所定义数组的元素个数时,在编译时将给出出错信息。

    (5)在对全部数组元素赋初值时,由于数据的个数已经确定,因此可以不指定数组长度。

    例:int a[5]={1,2,3,4,5};也可改为 int a[]={1,2,3,4,5};

    在第二种写法中,花括弧中有五个数,系统就会据此自动定义a数组的长度为5。但若数组长度与提供初值的个数不相同,则数组长度不能省略。

    数组初始化与未初始化比较:

    #include<stdio.h>
    
    void main()
    {
        int i,a[5]={3,4,5},b[5];
        printf("\n array a is:");
        for(i=0;i<5;i++)
        {
            printf("%d",a[i]);
        }
        printf("\n array b is:");
        for(i=0;i<5;i++)
        {
            printf("%d",b[i]);
        }
    }

    动态赋值的方法:(程序演示,文字就不打了)

    #include<stdio.h>
    
    void main()
    {
        int i,max,a[10];
        printf("input 10 numbers;\n");
        for(i=0;i<10;i++)
        {
            scanf("%d",&a[i]);
        }
        max=a[0];
        for(i=1;i<10;i++)
        {
            if(a[i]>max)
            {
                max=a[i];
            }
        }
        printf("maxmum=%d\n",max);
    }

    注:与数组大小的动态定义进行区分,数组大小不允许动态定义。

     

    展开全文
  • 我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!VBA部分我们学习了VBA中涉及到的一些基本...提到数组,可能很多同学就会觉得挺...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

    VBA部分我们学习了VBA中涉及到的一些基本概念以及常见的语句结构,Range对象、Worksheet对象、Workbook对象,已经能解决比如单元格合并,工作簿、工作表的合并以及拆分等问题了。

    从本节开始,我们学习数组。

    一提到数组,可能很多同学就会觉得挺复杂的,其实数组就是存储数据的一种结构而已,只要你冷静下来用心去学习、思考,这些都是非常简单的知识。

    学习了数组后,我们在解决问题时可能就变得更加灵活了,写代码的思路也会更加明了。

    今天我们先来了解下数组的基本概念。

    一、什么是数组:

    数组是用于储存多个相同类型数据,其实就是一组相同类型的数据的一个有序集合。在存储数据的时候,首先在内存中分配一个连续的存储空间,将各个元素按顺序存放在连续的存储单元中。

    在Excel中,选择某个区域的数据,这里的区域你肯定知道是什么意思,同样的道理,VBA中的数组就类似于区域,它是在内存中预定了个位置,这个位置就用来存放某些特定的数据。

    尽管二者存储数据在本质上完全不同,但是我们依然可以对照着来理解。

    二、在VBA中怎么表达数组:

    951cceac8a68b3d257a507b40cb1a3bf.gif

    Sub 数组()  [a1:e1] = Array(1, 2, 3, 4, 5)  [a7:e7] = [{1,2,3,4,5}]  [a2:a6] = WorksheetFunction.Transpose(Array(1, 2, 3, 4, 5))  [e2:e6] = [{1;2;3;4;5}]End Sub

    以上是数组在VBA中的各种书写方法,利用Array写入数组时,只能写入横向的数组,想要变成竖向的数组,要用到Transpose函数。

    三、数组的声明:

    Dim 数组名称(数组元素的上下界,...) As 数据类型

    例如:

    dd3b06d46e94137f3e226231a43d3e8d.png

    Dim ary(1 To 5) As Integer,是声明一个一维数组ary,包括元素5个,数据类型为整型。

    1 to 5,1和5为数组的下标,1为下标的上限,5为下标的下限。

    206f823b7a0fcd270d177c3de1445d8d.png

    上面这个是二维数组,表示一个5行4列的数组,一共20个元素,我们通过本地窗口可以看出来。

    学习VBA一定要动手去写写代码,光看是永远都学不会的,看不懂文章的同学可以去米宏学院的网站或者是公众号端学习下视频。

    本节的分享就到这里,鹏哥祝大家每天都有进步。

    VBA其实并不难

    手机端请扫描

    7bc6dd784012fab92dd8eec92fbaec65.png

    电脑端请登录

    www.mihong.top

    视频教程《带你走进VBA的世界》

    从基础开始,一步步带你领略VBA的神奇!

    4d4325691f639d4b43d828e3ab51d040.gif您点的每个赞,我都认真当成了喜欢
    展开全文
  • 一维数组与二维数组

    2016-10-07 20:43:36
    1620-7 唐大智《2016年10月...现在说数组初始化数组在使用前必须先定义,在使用时各元素都应该有确定的值,数组除了用赋值语句对元素赋值还可以在定义时赋值,常用方法:(a)以集合形式给出所有元素的值,也可以给
  • 一维数组初始化方法 方式一:静态初始化 数据类型[] 数组名 = {元素1,元素2,元素3...};//必须在一个语句中完成,不能分开两个语句写 举例: 定义存储1,2,3,4,5整数的数组容器 int[] arr = {1,2,3,...
  • 维数组初始化

    2009-05-17 21:07:36
    一般二维数组初始化也都是根据实际情况来判断, 比如 1 2 3 4 2 3 4 1 3 4 1 2 4 1 2 3 该矩阵中的数字很规则,在实际解决该问题时,只...
  • 一维数组

    2019-04-01 11:30:38
    第六章 一维数组 6.1 一维数组的定义 数组的定义:数组是用来存储数据的集合,但是,通常我们会发现把...数组初始化语法中不使用操作符new。使用数组出初始化语法时候,必须将声明、创建和初始化数组都放在一条语句...
  • 1.二维数组初始化和声明数组变量的声明,和创建数组可以用语句完成,如下所示:int a[][] = new int[2][3];int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};2.二维数组遍历//遍历二维数组public class Traverse_a_two_...
  •  实体中的变量都有默认初始化值  实体不在被使用,会在不确定的时间内被垃圾回收器回收 方法区,本地方法区,寄存器 数组操作常见问题  数组脚标越界异常(ArrayIndexOutOfBoundsException) int[] ...
  • 数组 定义 //方式 ...没有初始化时值为0 遍历 增强for语句 for (int x : array) { System.out.println(x); } 可变长形参 int max(int ... varArgs) { //在可变长形参数...
  • 维数组的输入输出及初始化

    千次阅读 2016-11-23 22:36:02
    一维数组的输入输出只有一个for循环就可以搞定,但是二维数组的输入输出要用到for语句嵌套,如: 定义一个3行5列的二维数组,并输入输出; #include int main() {  int a[3][5];  int i, j;  printf(...
  • //* 定义个二维数组初始化 for(i=0;i<2;i++){ //* 外循环,从0始到1共遍历2次,外循环每遍历1次,块语句执行1次; for(j=0;j<3;j++) //* 内循环,从0始到2共遍历3次,内循环要遍历完3次才会回到外...
  • 在Java中,可以使用以下格式来定义数组。如下 数据类型[] 数组名 = new 数据类型[元素个数或数组长度]; int[] x = new int[100]; 上述语句就相当于在内存中定义了100个int类型的变量, 第个变量的名称为x[0],...
  • 数组版权声明数组一维数组1、一维数组的定义2、一维数组初始化 版权声明 本文原创作者:清风不渡 博客地址:https://me.csdn.net/WXKKang 数组 学习了Java中的语句结构之后,让我们来学习数组这一模块,那么,...
  • 维数组

    2018-10-29 22:13:34
    2、为二维数组初始化 (1)静态初始化:行数、列数、元素的值都同时确定 二维数组名 = new 元素的数据类型[][]{{元素1,元素2…},{元素1,元素2…},…}; 当声明和静态初始化在同语句中完成: 元素的数据类型[][]...
  • 默写: 1.简答题 简述if相关三种分支结构的语法格式以及...(2)一维数组 (3)二维数组 1.循环结构(重中之重) 1.1 for循环 (1)语法格式 for(初始化表达式1; 条件表达式2; 更改初始值表达式3){ 语句块1;(循环体...
  • 使用数组初始化语法时,必须将声明、创建、和初始化数组都放在语句中。```elementType[] arrayRefVar = {value0,value1......}```- 处理数组:对于char[]类型的数组,可以用语句打印```char[] city={'D','a'...
  • 数组初始化(两种方法)数组类型 数组明[]={值1,值2,值3......值n};数组类型 数组名[]=new 数据类型[常量值] //这种方法会给所有的数组元素赋予同个默认值,对数值类型来说,默认值也是01.数组的遍历除了...
  • C语言入门系列之6.一维和二维数组

    千次阅读 2020-04-27 10:18:31
    在C语言中使用数组必须先进行定义,一维数组声明格式为类型说明符 数组名 [常量表达式];,不允许对数组的大小作动态定义;形式为数组名[下标];给数组赋值包括赋值语句赋值、初始化赋值和动态赋值3种方式。二维数组...
  • 即使对于初学者这也是非常简单的一维数组的输入和输出,只不过我并不是初始化数组,而是构造for语句循环输入和输出数组的值,但是问题是我定义的数组申请的空间为4,而我输入7个数据,也就是越界输入数据,在部分...
  • 1.二维数组初始化和声明 数组变量的声明,和创建数组可以用语句完成,如下所示: int a[][] = new int[2][3]; int[][] arr = {{1,2,3},{4,5,6},{7,8,9}}; 2.二维数组遍历 //遍历二维数组 public class ...
  • 数组初始化语句只能在条语句里完成, 2.数组作为函数 实参和形参都是同个数组 函数原型中的参数名可以省略 但是和引用传递不同,她还是属于值传递,传的是该实参的起始位置,属于传递共享 3.防止函数修改...
  • java的一维数组

    2018-07-19 16:56:00
    初始化数组的方法: 复制数组的方法: 1、使用循环语句逐个地复制数组的元素 2、使用System类中arraycopy方法 3、使用clone方法复制数组 数组的排序 可以使用Array类中的sort()或parallelSort().....
  • 数组的声明和赋值 声明赋值方式 语法 ...先声明,再分配空间 ...注:简化方式中,数组的声明和赋值必须在同语句中,不可以分成两行 在为数组分配空间后,使用for循环来对数组进行初始化(必须是分配空间
  • C语言 声明数组: 在 C 中要声明数组,需要指定元素的类型和元素的数量,如下所示: ...在C中,可以逐个初始化数组,也可以使用初始化语句,如: double dList[5] = {1000.0, 2.0, 3.4, 7.0, 50.0}; 其中...
  • Java.一维数组

    2016-10-16 15:00:00
    数组初始化(两种方法) 数组类型 数组明[]={值1,值2,值3......值n}; 数组类型 数组名[]=new 数据类型[常量值] //这种方法会给所有的数组元素赋予同个默认值,对数值类型来说,默认值也是0 1.数组的...
  • 1.二维数组初始化和声明数组变量的声明,和创建数组可以用语句完成,如下所示:int a[][] = new int[2][3];1int[][] arr = {{1,2,3},{4,5,6},{7,8,9}};12.二维数组遍历//遍历二维数组public class Traverse_a_...
  • 使用Python语言编写该策略,也非常容易实现,加上回测配置信息,有70行代码,实际可以更加精简,鉴于教学策略,没有使用难懂的Python语法,使用的是比较基础的语句、结构。便于使用Python语言进行商品期货程序交易...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 309
精华内容 123
关键字:

一维数组初始化语句