资源描述:
《C#程序设计附光盘宋文强全套配套课件 chapter06.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、1本章教学目标理解数组的基本概念掌握定义和初始化数组的方法掌握访问数组元素的方法理解并熟练运用System.Array类的属性和方法理解数组与循环语句相结合的算法技巧6.1数组的定义和引用数组是相同数据类型变量的集合同一数组中的所有元素都可以通过相同的变量名来引用使用下标(Index)来区分不同的元素。例如:一维数组a[0],a[1],a[2]二维数组b[0,0],b[0,1],b[0,2],b[1,0],b[1,1],b[1,2]三维数组c[1,1,1],c[1,1,2]为什么要使用数组?主要优点:排列有序,便于查找结构紧凑,节省空间6.1.1一维数组的定义数组不能
2、隐式定义。在使用数组之前,必须先在程序中定义数组。定义数组的作用,是通知计算机为其分配一块连续的存储区域,数组名就是这个区域的名称。定义一维数组的格式数据类型[]数组名;其中,数据类型C#中的各种数据类型,包括简单类型和引用类型方括号[]声明数组的符号,表示其后面的变量是一个数组变量数组名符合C#变量命名规则的任意字符串定义数组的示例int[]a;//声明了名为a的数组,元素类型为intstring[]b;//声明了名为b的数组,元素类型为string没有指明数组的长度,意味着没有为数组元素分配内存空间6.1.2数组的初始化静态初始化数据类型[]数组名={元素1,元素
3、2,…,元素n};静态初始化数组的语法成分必须与数组定义书写在同一个语句行上例如:int[]a={2,4,6,8,10};string[]b={“篮球”,“足球”,“排球”,“网球”,“羽毛球”,“乒乓球"};定义数组的同时为各数组元素赋值数组元素的初始值动态初始化数据类型[]数组名;数组名=new数据类型[表达式];动态初始化数据类型[]数组名=new数据类型[表达式];这种方法比较常用6.1.3一维数组元素的引用例6.1程序运行后,单击窗体,在数组a[]中存放10个两位随机正整数,计算它们的累加和,并在窗体上显示运算结果。例6.1程序代码privatevoidFo
4、rm1_Click(objectsender,EventArgse){label1.Text="随机数:";Randomrnd=newRandom();//声明随机数对象rndintsum=0;//用于保存累加和的变量赋初值为0int[]a=newint[10];//定义数组并初始化for(inti=0;i<10;i++)//循环结束的条件为i<10而不是i<=10{a[i]=rnd.Next(10,100);//给每个数组元素赋予随机数值sum+=a[i];//计算累加和label1.Text+=a[i]+"";//10个随机数在窗体上输出成一行}label1.Te
5、xt+="累加和="+sum;//空2行,然后显示输出累加和}6.1.4用foreach语句遍历数组元素语法形式:foreach(类型标识符inarray)其中:array被遍历的数组名标识符用于控制foreach循环的只读局部变量,仅在foreach语句中有效类型应与array的类型一致数组的遍历例6.2使用foreach语句遍历字符串数组b中的每个元素,在窗体上按每行显示一个元素值的格式输出。privatevoidForm1_Click(objectsender,EventArgse){string[]b={"篮球","足球","排球","网球","羽毛球
6、","乒乓球"};foreach(stringstrinb){label1.Text+=str+"";//每行显示一个元素值}}6.1.5二维数组的定义和引用二维数组的定义数据类型[,]数组名;实例6.4例6.4将表中的学生成绩数据预先保存到二维数组score中,并将学生姓名保存到一维数组student中,然后在窗体上显示成7行×5列。数组中不能包含学生姓名,因为数据类型不同实例6.4程序代码privatevoidForm1_Click(objectsender,EventArgse){string[]student={"李晓强","何萍萍","郭晓薇","张超"
7、,"艾小兰","周世平","何伟"};float[,]score={{70,85,92,74,62},{92,79,95,68,75},{93,83,89,76,90},{79,62,44,92,56},{61,77,91,57,72},{81,74,68,79,91},{83,90,86,85,82}};label1.Text+="姓名语文数学外语物理化学"+"";for(inti=0;i<7;i++){label1.Text+=student[i]+"";//显示一个学生的姓名for(intj=0;j<5;j++)//在同一行上显示一个学生的