第4章数组.docx
- 文档编号:8462636
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:47
- 大小:32.60KB
第4章数组.docx
《第4章数组.docx》由会员分享,可在线阅读,更多相关《第4章数组.docx(47页珍藏版)》请在冰豆网上搜索。
第4章数组
第4章数组
教学内容:
1.一维数组的定义(10分钟)、初始化赋值(10分钟)和元素引用(20分钟);
2.一维数组求最值、均值(20分钟)与排序(30分钟)的编程方法。
3.二维数组的定义(15分钟)、初始化赋值(10分钟)和元素引用(10分钟);
4.二维数组元素的输入/输出(15分钟)、求最值、均值问题(40分钟)的编程方法;
5.字符串的概念(8分钟)、字符数组的定义(7分钟)、初始化赋值(15分钟)和引用方法(15分钟);
6.六种字符串处理函数的格式与功能(30分钟),应用举例(15分钟);
7.习题课内容
(1)一维有序数组中数据的插入与删除;
(2)二维数组的最值问题、求均值问题;
(3)二维数组的排序;
(4)矩阵加、减、乘法运算;
(5)杨辉三角形问题
教学要求:
1.掌握一维数组定义、初始化赋值和使用方法;
2.学会一维数组求最值、均值与排序的编程方法;
3.掌握二维数组定义、初始化赋值和使用方法;
4.学会二维数组元素的输入/输出、求最值、均值问题的编程方法;
5.掌握字符数组的定义、初始化赋值和使用方法;
6.学会字符串处理函数的使用方法;
7.学会有序数组中数据的插入与删除、二维数组的排序、矩阵加、减、乘法运算、杨辉三角形等问题编程方法。
教学方法:
1.通过线性代数中行矩阵引出一维数组的数组名、数组元素、元素下标等概念,然后给出一维数组的定义及初始化赋值。
2.用数组的内存分配图来说明一维数组的内存分配方式。
3.在介绍一维数组元素引用时,应使用最简单的数组元素输入/输出例子,以便学生能通过简单例子来理解一维数组的概念。
4.一维数组应用重点是:
求数组元素的累加和、平均值、最大值、最小值、排序程序的编写方法。
求最大(小)值的方法是数据元素逐一比较,大(小)的留下,小(大)的放走。
排序算法的关键是要记住:
(1)冒泡法(升序):
定义数组为a[N],数据输入到a[0]~a[N-1],外循环变量i从1到N-1,内循环变量j从0到N-1-i,相邻两数比较,若a[j]>a[j+1]则交换。
(2)选择法(升序):
定义数组为a[N+1],数据输入到a[1]~a[N],用双循环:
i=1toN-1,j=i+1toNifa[i]>a[j]则交换。
(3)用单步运行方法,使学生看清求最值、均值与排序的过程。
建议制作多媒体课件演示排序过程。
5.二维数组的概念可从m*n矩阵及二维线性表引入。
并由此给出定义、初始化赋值。
6.二维数组按行分配存储空间的概念一定要画图说明。
7.二维数组元素引用可用3*4数组数据的输入/输出为例加以说明,举例后再给出思考题,让学生考虑数据处理,如两数组相加的处理。
8.二维数组应用举例以计算学生成绩表中的平均成绩为重点,在此基础上引出计算总分与每门课平均分的问题,再进一步引深到求每门课最高分与最低分的问题。
9.重点讲清字符串的格式、存储方式、结束标志,说明字符数组是类型为字符型的数组,因此,其定义格式与一维数组基本相同。
允许用cin将字符串输入到字符数组,用cout将字符数组输出到屏幕。
10.可以用串函数连接、拷贝、比较两个字符串,测串长,改变大小写等。
11.通过习题课使学生学会下列问题的求解编程
(1)一维有序数组中数据的插入与删除;
(2)二维数组的最值问题、求均值问题;
(3)二维数组的排序;
(4)矩阵加、减、乘法运算;
(5)杨辉三角形问题。
C++除了提供基本数据类型外,还提供了导出数据类型,它们有数组、结构体、共同体和类,本章介绍数组。
数组是若干个同类数据元素的集合,分为一维数组、二维数组、字符数组。
下面依次介绍。
4.1数组的定义和引用
4.1.1一维数组的定义和引用
引例:
在线性代数中具有10个整数元素的行矩阵A表示方法为:
A=[a0a1a2a3…a9],为了存放行矩阵A的元素值,引入一维整型数组a[10],该数组的数组名为a,共有10元素,分别为a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]。
一维数组必须先定义后使用,其定义格式为:
inta[10];
表示定义了一个名为a的整型数组,由此可引出一维数组的定义格式。
1.一维数组的定义与初始化赋值
(1)定义格式:
〔存储类型〕<类型><数组名>[<常量表达式>];
说明:
①存储类型将在第5章中介绍;
②类型定义了数组元素的数据类型,可以是基本类型或导出类型;
③数组名应符合标识符的命名规则;
④常量表达式规定了数组元素的个数,即数组长度。
常量表达式中可以包含常量和符号常量,不能包含变量,如N+1。
其中N为符号常量。
⑤数组元素的下标从0开始,且不能超出范围。
(2)一维数组的初始化赋值
一维数组初始化赋值有三种方法:
①给所有元素赋初值:
{a0,a1,a2,…,an}
将各元素初值放在花括号括起的表中,各初值间用逗号分开。
例如:
inta[10]={1,2,3,4,5,6,7,8,9,10};
表示数组a中的所有数组元素a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]分别获得初值1、2、3、4、5、6、7、8、9、10。
注意:
可由初值个数确定数组长度。
如果一个数组在定义时对它的所有元素赋了初值,可以不指定数组的长度,系统自动计算数组的长度。
例如:
intb[]={1,2,3,4,5};
系统自动计算b数组的长度为5,即b数组有5个数组元素b[0]、b[1]、b[2]、b[3]、b[4],并分别获得初值1、2、3、4、5。
②给部分元素赋初值{a0,a1,a2,…,ak}
将a0、a1、…、ak-1赋给a[0]、a[1]、…、a[k-1],而a[k]、…、a[n]的值不确定。
例如:
inta[10]={1,2,3,4,5};
a[0]
1
a[1]
2
a[2]
3
a[3]
4
a[4]
5
a[5]
6
a[6]
7
a[7]
8
a[8]
9
a[9]
10
图4.1一维数组的存储方式
表示数组a中的前5个元素a[0]、a[1]、a[2]、a[3]、a[4]分别获得初值1、2、3、4、5,其它元素的值是不确定的。
③数组定义为全局或静态变量时,所有数组元素初值均为0;数组定义为其他存储类型的局部变量时,数组元素没有确定的值。
关于局部变量、全局变量、静态变量的概念将在后面的章节中介绍。
2.一维数组内存分配
数组a[n]定义后,系统分配n*k个连续存储单元存放数组元素值(k=元素占用字节数)。
例如:
定义数组:
inta[10]={1,2,3,4,5,6,7,8,9,10};后,系统将为数组a分配10个元素的存储空间,每个元素占有4个字节,共40个字节。
存储空间的分配如图4.1所示。
3.一维数组元素的引用
C++规定只能对数组中的元素进行引用,不能把整个数组作为一个整体使用。
一维数组元素的引用格式:
<数组名>[<下标表达式>]
下标表达式值=数组元素下标(整型)。
【例4.1】通过键盘将10个整数依次输入到一个数组中,然后按倒序输出。
程序如下:
#include
voidmain(void)
{inta[10],i;
cout<<"Inputtenintegers:
";
for(i=0;i<=9;i++)
cin>>a[i];//结合图4.1讲述
for(i=9;i>=0;i--)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第4章 数组
![提示](https://static.bdocx.com/images/bang_tan.gif)