《C#程序设计》课件第5章数组_第1页
《C#程序设计》课件第5章数组_第2页
《C#程序设计》课件第5章数组_第3页
《C#程序设计》课件第5章数组_第4页
《C#程序设计》课件第5章数组_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数组思政目标:

☞逻辑是代码设计中的关键,通过学习数组,加强逻辑思维能力

☞通过编程训练,培养动手能力及团队协作能力技能要求:

☞掌握数组的基本概念、声明及初始化

☞了解数组的访问与遍历

☞了解数组的Array类

☞理解并掌握索引器的定义和使用实践目标:

☞能够在编程中熟练使用数组

☞能够对数组进行基本的操作,为以后的编程做铺垫第5章数组声明和初始化访问元素数组的基本操作声明和初始化01PART数组是一个数据结构,用来存储相同类型元素。其中,需要说明的有以下两点。(1)数组分为一维和多维,其访问方式由相同数组名称和不同索引来实现。(2)元素的类型可以是引用类型或者整型这些基本类型。声明和初始化声明和初始化在数组的分类中,一维数组的使用最普遍,其一般声明方式如下:类型[]数组名称=new类型[数组大小];数组的声明声明和初始化该声明中,需要注意“=”左侧的中括号位置。另外,类型可以为各种数据类型,数组大小指明了所能容纳的元素个数,数组的索引是从0开始的数组的声明声明和初始化类型[]数组名称;数组名称=new类型[数组大小];例如,声明一个整数类型数组,数组共4个元素数组的声明声明和初始化在某些场合下,需要使用高维数组,其一般声明方式如下:类型[,,…,]数组名称=new类型[第一维大小,第二维大小,…,第N维大小];例如,声明一个二维数组,数组共30个元素数组的声明声明和初始化声明数组,是为在其中存放数据,在使用数组前,都需对其进行初始化。若一个数组没有初始化,只进行了声明,其中存放的数据会如何?数组的声明声明和初始化声明数组,是为在其中存放数据,在使用数组前,都需对其进行初始化。若一个数组没有初始化,只进行了声明,其中存放的数据会如何?数组的声明声明和初始化数组元素的默认值是有规则的,其规则如表所示。声明和初始化数组元素默认值数值类型0字符类型0枚举类型0布尔类型False引用类型null数组的初始化一般采用如下方式:类型[]数组名称=new类型[数组大小]{与数组大小相等个数的元素值列表};数组的初始化声明和初始化初始化时,初值的个数必须与数组大小相等,否则会出现编译错误数组的初始化声明和初始化在C#中还有一种特殊的二维数组,即锯齿数组。该种声明方式不能跨语言,否则违背公共语言规范,不推荐使用。数组的初始化声明和初始化访问元素02PART数组的访问是通过数组名和索引来进行的,其中,索引从0开始。该代码的作用是通过数组名和索引将数据存入数组中访问元素读取数据访问元素若想访问数组元素,除上述方式外,还可以通过循环遍历,且循环遍历更为常用。进行循环遍历时,为避免数组访问出现越界错误,需要借助数组的Length属性访问元素数组遍历——for循环访问元素数组遍历——foreach访问元素数组复制一些场合中,我们需要使用数组复制联系相关数组。复制的一种情况是将一个数组变量的引用传递给另一个数组;如果一个数组发生改变,那么引用同一数组的变量也要发生改变。另外一种情况是已经复制的数组有自己的存储空间。从执行结果中可以发现:对iDes1和iDes2中的元素进行输出时,两种数组复制方式的结果相同,即都成功完成了复制;但源内容发生改变后,再进行输出,iDes1结果发生改变,而iDes2仍不变。造成这种结果的原因在于:使用iDes1=iSrc完成的复制,赋值的是引用,本质是令iDes1与iSrc指向相同的存储空间,故随着iSrc的改变,iDes1也会发生相同的改变;而iDes2则具有自己的存储空间,所以在复制完成后,它便不再受iSrc的影响。访问元素数组复制根据提供的一系列数值,求其和值、最大值、最小值访问元素数组参数数组的基本操作03PARTArray的常用属性数组的基本操作Array类属性作用Length32位整数,表示所有元素个数LongLength64位整数,表示所有元素个数Rank获取Array的维数(秩)IsFixedSize总是trueIsReadOnly总是falseArray的常用属性实例数组的基本操作Array类Array的常用方法数组的基本操作Array类方法作用Clear()将元素设置为默认输出值0或nullClone()复制数组Copy()将当前一维数组复制到指定的一维数组中GetLength()获取数组指定维的元素个数GetLowerBound()获取数组中指定维度的下限GetUpperBound()获取数组中指定维度的上限GetValue()获取当前数组中指定元素的值Reverse()反转给定的一维数组元素的顺序SetValue()给当前数组中的指定元素赋值IndexOf()某个值在数组中首次出现的索引Sort()对数组元素进行排序CreateInstance()根据提供的参数创建一个Array类的新实例,即动态创建数组Array的常用属性数组的基本操作Array类属性作用Length32位整数,表示所有元素个数LongLength64位整数,表示所有元素个数Rank获取Array的维数(秩)IsFixedSize总是trueIsReadOnly总是false数组的基本操作Array的方法演示数组的基本操作从程序的执行结果可以看到:(1)CreateInstance(Type,Length)用于创建指定类型和大小的数组。(2)SetValue(value,index)用于给数组的索引为index的元素赋值value。(3)GetValue(index)获取数组的索引为index的值。(4)Array.Copy(arrSrc,arrDes,Length)将源数组的前Length个值复制到目标数组中。(5)myArr.CopyTo(arrDes,index)将myArr复制到arrDes中,目标位置从index开始。(6)Copy和CopyTo方法完成的复制,源数组的改变不会影响目标数组。(7)Array.Sort(myArr)将myArr的元素按照升序排列。(8)Array.Clear(myArr,2,3)将myArr数组从index=2的位置开始,对3个值清零。索引器是一个与属性很类似的类成员,可以具有get和set两个访问器,分别用于实现读和写的功能。索引的主要不同之处在于:定义索引器时一定要使用this关键字,而不需要像定义属性一样要程序编写人员定义一个属性名字;索引器一定需要参数;索引器不能定义为static。索引器主要用于为封装在类内部的数组或者集合提供一种类似于数组的访问方式,类似于上述string示例的访问方式。这样,索引器同时兼具属性的特性和数组的便利访问特性。索引器是比数组更聪明的一类数组,或者说是像数组一样有访问的属性。另外,可以用索引器对集合进行封装。数组的基本操作索引器索引器定义的一般形式如下:访问修饰符类型this[参数列表] { get{//返回参数所指定的元素值} set{//给参数所指定的元素赋值} }数组的基本操作索引器下面的示例将在类内部定义一个int型数组,然后以索引器完成对该数组的封装访问。由于该数组定义为int类型,而索引器的目的就是实现对该数组的访问,故索引器的类型也应该定义为int类型数组的基本操作索引器数组的基本操作索引器观察上述代码不难发现索引器的特性。由于对index的判断,避免了数组的越界错误。不过这也带来一个问题,用户如果访问越界,异常不再触发,用户不知道已经越界。为避免出错而不知的情况,程序采用了

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论