上海交通大学:《程序设计》课程教学资源(PPT课件讲稿)第5章 批量数据处理——数组

《程序设计》cs.u20119 第5章批量数据处理数组 冷一维数组 排序和查找 冷二维数组 冷字符串 程序设计-1
《程序设计》 cs.sjtu 2011.9 程序设计 - 1 第5章 批量数据处理—数组 ❖ 一维数组 ❖ 排序和查找 ❖ 二维数组 ❖ 字符串

《程序设计》cs.u20119 维数组 有时,我们需要存储一批同类型的数据 如有十只羊,主人要保存每只羊的重量, 并从中挑选一只最肥的羊。 解决方案:可以定义十个 double型的变量 sheep, sheep10,然后比较十个值,找 出一个最大值。 冷缺点: >定义了十个变量。要是有100只羊就要定义100 个变量 >程序只能用顺序结构 >如果羊群规模发生变化,程序就得重写m2
《程序设计》 cs.sjtu 2011.9 程序设计 - 2 一维数组 ❖ 有时,我们需要存储一批同类型的数据, 如有十只羊,主人要保存每只羊的重量, 并从中挑选一只最肥的羊。 ❖ 解决方案:可以定义十个double型的变量 sheep1, …,sheep10,然后比较十个值,找 出一个最大值。 ❖ 缺点: ➢ 定义了十个变量。要是有100只羊就要定义100 个变量 ➢ 程序只能用顺序结构 ➢ 如果羊群规模发生变化,程序就得重写

《程序设计》cs.u20119 数组 冷数组是保存一组同类元素的数据类型,它有 两个特征: >数组元素是有序的 数组元素是同类的 定义数组要定义三个基本内容: >数组名字 >数组元素的类型 >数组的大小 程序设计-3
《程序设计》 cs.sjtu 2011.9 程序设计 - 3 数组 ❖ 数组是保存一组同类元素的数据类型,它有 两个特征: ➢ 数组元素是有序的 ➢ 数组元素是同类的 ❖ 定义数组要定义三个基本内容: ➢ 数组名字 ➢ 数组元素的类型 ➢ 数组的大小

《程序设计》cs.u20119 数组的定义 格式 类型数组名元素个数]; 其中,元素个数必须是常量。如: int intarray 10: 但intn=10; int intarrayln l;是错的 冷常用的方法是将元素个数定义为一个常量。如 #define numofelement 10 int intarray NumOfElement;相当于 int intarray 10: 程序设计-4
《程序设计》 cs.sjtu 2011.9 程序设计 - 4 数组的定义 ❖ 格式: 类型 数组名[元素个数]; 其中,元素个数必须是常量。如: int intarray[10]; 但 int n=10; int intarray[n]; 是错的 ❖ 常用的方法是将元素个数定义为一个常量。如: #define NumOfElement 10 int intarray[NumOfElement]; 相当于 int intarray[10];

《程序设计》csu20119 初始化 初始化表 冷定义数组时可以对数组初始化 float x|5l={-1.1,0.2,33.0,4.4,5.05} 冷初始化表的长度短于要被初始化的数组元 素数目,那么剩余元素被初始化为0 冷带有初始化的数组可以不定义数组规模, 编译器根据初值的个数决定数组的大小 inta={1,2,345};则默认数组大小为5 程序设计-5
《程序设计》 cs.sjtu 2011.9 程序设计 - 5 初始化 ❖ 定义数组时可以对数组初始化 float x[5] = { -1.1, 0.2, 33.0, 4.4, 5.05 }; ❖ 初始化表的长度短于要被初始化的数组元 素数目,那么剩余元素被初始化为0。 ❖ 带有初始化的数组可以不定义数组规模, 编译器根据初值的个数决定数组的大小 int a[]={1,2,3,4,5}; 则默认数组大小为5 初始化表

《程序设计》cs.u20119 数组元素 冷数组元素的使用是通过数组名及元素的序 号来指定,如 intarray2。当数组的大小为 n时,元素的序号为0-n-1 冷元素的序号称为下标。程序中,下标可为 整数、整型变量或结果为整型的任意表达 式。正是这一特性,使得数组的应用非常 灵活。 程序设计-6
《程序设计》 cs.sjtu 2011.9 程序设计 - 6 数组元素 ❖ 数组元素的使用是通过数组名及元素的序 号来指定,如intarray[2]。当数组的大小为 n时,元素的序号为0 – n-1。 ❖ 元素的序号称为下标。程序中,下标可为 整数、整型变量或结果为整型的任意表达 式。正是这一特性,使得数组的应用非常 灵活

《程序设计》cs.u20119 数组在内存中 定义数组就是定义了一块连续的空间, 空间的大小等于元素数每个元素所占 的空间大小。 数组元素按序存放在这块空间中 程序设计-7
《程序设计》 cs.sjtu 2011.9 程序设计 - 7 数组在内存中 ❖ 定义数组就是定义了一块连续的空间, 空间的大小等于元素数*每个元素所占 的空间大小。 ❖ 数组元素按序存放在这块空间中

《程序设计》cs.u20119 为数组分配空间 冷如: int intarray 5;占用了20个字节,因为每 个整型数占四个字节。如给 interray3赋值为 3,如果这块空间的起始地址为100,那么在 内存中的情况是 随机值随机值随机值3 随机值 100 103104 107108 111112 115116 冷当你引用变量 intarraylidx时,系统计算它的 地址100+idx*4,对该地址的内容进行操作。 程序设计-8
《程序设计》 cs.sjtu 2011.9 程序设计 - 8 为数组分配空间 ❖ 如: int intarray[5];占用了20个字节,因为每 个整型数占四个字节。如给intarray[3]赋值为 3,如果这块空间的起始地址为100,那么在 内存中的情况是: ❖ 当你引用变量intarray[idx]时,系统计算它的 地址100+idx*4,对该地址的内容进行操作。 随机值 随机值 随机值 3 随机值 100 103 104 107 108 111 112 115 116 119

《程序设计》cs.u20119 数组下标超界问题 冷C/C+语言不检查数组下标的超界。如定义数 组 int intarray10;合法的下标范围是0-9, 但如果你引用 lintarrayl10,系统不会报错。 如数组 interray的起始地址是1000,当引用 intarray{10时,系统对1040号内存进行操作 而1040可能是另一个变量的地址 解决方法:由程序员自己控制。在对下标变 量进行操作前,先检查下标的合法性。 程序设计-9
《程序设计》 cs.sjtu 2011.9 程序设计 - 9 数组下标超界问题 ❖ C/C++语言不检查数组下标的超界。如定义数 组 int intarray[10]; 合法的下标范围是0 – 9, 但如果你引用intarray[10],系统不会报错。 如数组intarray 的起始地址是1000,当引用 intarray[10]时,系统对1040号内存进行操作。 而1040可能是另一个变量的地址 ❖ 解决方法:由程序员自己控制。在对下标变 量进行操作前,先检查下标的合法性

数组的操作 《程序设计》cs.u20119 冷数组的操作主要是数组元素的操作 冷不能直接对数组名进行赋值。如: intarray=30是 错的。事实上,数组名中存放的是该数组的起始 地址。 冷eg.数组的输入输出 int maino Rint intarrayl1o, idx; for(idx=0; idx intarraylidx cout < endl: for(idx=0; idx<=9; ++idx) cout < intarraylidx 程序设计10
《程序设计》 cs.sjtu 2011.9 程序设计 - 10 数组的操作 ❖ 数组的操作主要是数组元素的操作。 ❖ 不能直接对数组名进行赋值。如:intarray=30 是 错的。事实上,数组名中存放的是该数组的起始 地址。 ❖ eg. 数组的输入输出 int main() {int intarray[10], idx; for (idx = 0; idx > intarray[idx] ; cout << endl; for ( idx = 0; idx <= 9; ++idx) cout << intarray[idx]; }
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 上海交通大学:Scheduling Algorithms in Heterogeneous Computing Systems.pptx
- 北京理工大学:《软件工程基础》课程教学资源(PPT课件讲稿)需求工程(主讲:刘驰).ppt
- 《计算机图形学》课程教学资源(PPT课件讲稿)Chapter 4 Graphics Output Primitives(Part II).pptx
- 亚马逊云计算AWS(Amazon Web Service)、Cloud Computing——Cassandra.ppt
- 上海交通大学:《通信网络》课程PPT教学课件(讲稿)Communication Networks - ANALYSIS OF 10G EEE PROTOCOL.pptx
- 上海交通大学:《Multicore Architecture and Parallel Computing》课程教学资源(PPT课件讲稿)Lecture 7 CUDA.ppt
- 上海交通大学:云安全(PPT讲稿)Cloud Security.pptx
- 局域网的硬件设备和操作系统(PPT讲稿).ppt
- 大数据分析(PPT讲稿)大数据引领我们走向数据智能化时代.ppt
- 淮阴工学院:《数据库原理》课程教学资源(PPT课件讲稿)第3章 关系数据库的基本理论.ppt
- 《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第三章 Java面向对象编程.pptx
- 《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第六章 Java输入输出流与文件操作.pptx
- 《Java面向对象程序设计》课程教学课件(PPT讲稿)流程控制语句.pptx
- 《Java面向对象程序设计》课程教学课件(PPT讲稿)AWT和Swing组件.pptx
- 江苏海洋大学(淮海工学院):《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第4章 Java图形用户界面设计.pptx
- 江苏海洋大学(淮海工学院):《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第2章 Java语言基础.pptx
- 《Java面向对象程序设计》课程教学资源(PPT课件讲稿)第四章 Java图形用户界面设计 4.2 AWT和Swing组件.pptx
- 《高级语言程序设计 Advanced Programming》课程教学资源(PPT课件讲稿)第8章 指针.ppt
- 《C语言程序设计》课程教学资源(PPT课件讲稿)第5章 循环结构程序设计.ppt
- 广西外国语学院:《计算机网络》课程教学资源(PPT课件讲稿)第8章 DNS.ppt
- 上海交通大学:《现代操作系统》课程教学资源(PPT课件讲稿)Chapter 02 进程与线程 Process and Thread.pps
- 《数据库基础与应用》课程PPT教学课件(Access案例教程)第9章 数据库语言SQL.pptx
- 《数据库基础与应用》课程PPT教学课件(Access案例教程)第8章 宏.pptx
- 《数据库基础与Access应用》课程教学资源(PPT课件)第12章 应用实例.pptx
- 《数字图像处理基础》课程教学资源(教学大纲.pdf
- 长安大学:《微机原理》课程教学资源(PPT课件讲稿)第7章 汇编语言程序设计.pptx
- 西安交通大学:《微型计算机接口技术》课程教学资源(PPT课件讲稿)第二章 微型处理器与单片机.ppt
- 中国铁道出版社:《局域网技术与组网工程》课程教学资源(PPT课件讲稿)第7章 网络系统集成与网络维护.ppt
- 《计算机应用基础》课程教学资源(PPT课件讲稿)第3章 Word 2007文字处理.ppt
- 《微机原理》课程教学资源(PPT课件)第六章 微型计算机的输入/输出.ppt
- 《单片机原理及应用》课程教学资源(PPT课件)第8章 AT89S51单片机外部存储器的扩展.ppt
- 《网页设计与制作》课程教学资源(PPT课件讲稿)第七章 模板与库的应用.ppt
- 《网页设计与制作》课程教学资源(PPT课件讲稿)第四章 设计页面布局.ppt
- 《微机原理》课程教学资源(PPT课件)第2章 微处理器与总线.ppt
- 山东大学:《微机原理及单片机接口技术》课程教学资源(PPT课件讲稿)第四章 指令系统及汇编语言程序设计 4.5 各类指令详解.ppt
- 多媒体图像处理技术(PPT课件讲稿,共六章).ppt
- 山东大学:《人机交互技术》课程教学资源(PPT课件讲稿)第9章 可用性分析与评估.ppt
- 《C++语言程序设计》课程教学课件(PPT讲稿)第13讲 多态.ppt
- 《计算机组成原理》课程教学资源(PPT课件讲稿)第八章 I/O操作的实现.ppt
- 《编译原理》课程教学资源(PPT课件讲稿)第七章 语义分析和中间代码生成.ppt