项目三 解决约瑟夫环问题PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
➢ (2)在数组声明时为数组初始化
例如:int a[][]={{1},{2,3},{4,5,6}};
▪ 四、二维数组的引用
➢ 格式为:数组名[下标1][ 下标2];
➢ 下标1,下标2分为二维数组的第一、二维下标, 同一维数组一样,也可为整型常量和表达式, 并且数组下标都从0开始。
▪ 例304 创建类,实现打印二维数组的功能。
项目三 解决约瑟夫环问题
模块1 数组的使用
新课引入
▪ 例301:(不使用数组)从键盘输入5个学 生的成绩,输出总分和平均分。
数组的概念
▪ 数组是一个变量,是具有相同数据类型的 一系列数据元素的集合。
▪ 数组元素可以通过数组名和下标来引用。 ▪ 一旦声明数组的大小,就不能再修改。 ▪ 数组中第一个元素的索引号从0开始。
java.lang.ArrayIndexOutOfBoundsException
▪ 例302 (用数组编程)从键盘输入5个学生 的成绩,输出总分和平均分。
▪ 例303 求数组中元素的最大值、数组元素 的和,再为各元素从小到大排序。
二维数组
▪ 二维数组在编程中应用广泛。常用于表示 表,表中信息以行和列的形式组织,第一 个下标表示元素所在的行,第二个下标代 表元素所在的列。
➢ 注意,不可在数组名后的方括号内指定数组元素的个 数,如int sum[10];是错误的。
▪ 二、分配空间:
➢ 声明了数组只是得到了一个存放数组的变量,并没有 为数组元素分配空间,不能够使用,因此要为数组分 配空间,这样数组的每个元素才有一个空间进行存储。
➢ 语法:数组名=new 数据类型[数组长度];
声明、创建 和初始 化
声名数组,为其 分配内存并 对元素初始 化
数据类型[] 数组名={值1, 值 2, …, 值n };
数据类型[] 数组名=new 数据 类型[]{值1, 值2, …, 值n };
▪ 定义数组注意事项:
➢ 定义数组时不要漏写数组长度。
➢ 数组中存储的数据称为数组元素。
➢ 不管数组中含有多少个元素,该数组都只有一 个名称,即数组名称。
▪ 在Java中二维数组被看作是数组的数组。
▪ 一、声明二维数组
➢ 语法:数据类型 数组名[ ] [ ];或 数组类型[][] 数组名;或 数组类型[] 数组名[];
➢ 例如:
float boy[][];
char array[][]; int array_name[ ][ ]; 或 int [ ][ ] array_name; 或
➢ a[0]=new int[2];
➢ a[1]=new int[3];
➢ a[2]=new int[4];
▪ 三、二维数组的初始化
➢ (1)直接为数组元素赋值
例如: int a[][]=new int[2][2]; a[0][0]=1; a[0][1]=2; a[1][0]=3; a[1][1]=4;
➢ 其中,数组长度就是能够存放的元素个数,显然应该 是大于0的整数。
➢ 例如:
score=new int [30];
height =new double[10];
name=new String [30];
百度文库
➢ 也可以在声明数组时就给它分配空间。
➢ 语法:数据类型 数组名[ ]=new 数据类型[数 组长度];
数组分类
▪ 一维数组 ▪ 多维数组
一维数组
▪ 一、声明:
➢ 数组要先声明然后才能使用。 ➢ 语法:数据类型 数组名[ ];或数据类型[ ] 数组名; ➢ 数据类型既可以是基本数据类型也可以是引用数据类
型,数组名可以是任意的合法变量名。 ➢ 如:
int [ ] score; double height[ ]; String[ ] name;
➢ 数组的下标范围从0到(数组长度-1),如果超过 这个范围,就会造成数组越界。
▪ 四、一维数组的引用
➢ 访问数组中的元素 ➢ 格式为: 数组名[下标] ➢ 下标可以为整型常量或表达式,下标从0开始。
如: int a[]=new int[10]; int b=a[0]+a[9];
此处,数组下标为从0到9。如果调用了a[10],程 序运行时将提示错误:
➢ 如:int sum[ ]=new int[100];
▪ 三、赋值:
➢ 给数组元素赋值。有三种方法赋值。 ➢ 方法一
语法:数组名[下标值]=值; 例如:
➢ score[0]=89; ➢ score[1]=56; ➢ score[2]=75;
➢ 方法二
每一次赋值时,只有下标在变,因此,可以使用循环给 数组赋值。
int [ ] array_name[ ];
▪ 二、为二维数组分配空间
➢ (1)直接为每一维分配空间
例如:int a[][]=new int[3][2];//建立3行 2列数组
➢ (2)高维开始,分别为每一维分配空间
例如:
➢ int a[][]=new int[3][];//指定最高维的长度为3, 然后分别为每一维分配空间
例如:使用下列方式来创建score数组
➢ int score[]={60,75,64,73,45};//创建一个长度为5的数组 score
➢ 同时它也等价于下面的代码:int score=new int[ ]{60,75,64,73,45};
注意,直接创建并赋值的方式一般在数组元素比较 少的情况下使用。它必须一并完成,如下代码是不 合法的:
➢ int[ ] score; ➢ score={60,75,64,73,45};//错误!!
创建数组方法小结
方法
说明
语法
仅声明
仅声明数组
使用保留字new
声明和创建
声明,并为 数组元素分
配空间
数据类型[ ] 数组名; 或数据类型 数组名[ ] ;
数据类型[ ] 数组名=new 数组 类型[数组长度];
例如:
➢ for (int index = 0; index < args.length; index++) {
➢
double num = Double.parseDouble(args[index]);
➢}
➢ 方法三
直接创建数组,将声明数组、分配空间和赋值合并 完成。
语法:数据类型 数组名[ ]={值1, 值2, 值3, …, 值 n };
例如:int a[][]={{1},{2,3},{4,5,6}};
▪ 四、二维数组的引用
➢ 格式为:数组名[下标1][ 下标2];
➢ 下标1,下标2分为二维数组的第一、二维下标, 同一维数组一样,也可为整型常量和表达式, 并且数组下标都从0开始。
▪ 例304 创建类,实现打印二维数组的功能。
项目三 解决约瑟夫环问题
模块1 数组的使用
新课引入
▪ 例301:(不使用数组)从键盘输入5个学 生的成绩,输出总分和平均分。
数组的概念
▪ 数组是一个变量,是具有相同数据类型的 一系列数据元素的集合。
▪ 数组元素可以通过数组名和下标来引用。 ▪ 一旦声明数组的大小,就不能再修改。 ▪ 数组中第一个元素的索引号从0开始。
java.lang.ArrayIndexOutOfBoundsException
▪ 例302 (用数组编程)从键盘输入5个学生 的成绩,输出总分和平均分。
▪ 例303 求数组中元素的最大值、数组元素 的和,再为各元素从小到大排序。
二维数组
▪ 二维数组在编程中应用广泛。常用于表示 表,表中信息以行和列的形式组织,第一 个下标表示元素所在的行,第二个下标代 表元素所在的列。
➢ 注意,不可在数组名后的方括号内指定数组元素的个 数,如int sum[10];是错误的。
▪ 二、分配空间:
➢ 声明了数组只是得到了一个存放数组的变量,并没有 为数组元素分配空间,不能够使用,因此要为数组分 配空间,这样数组的每个元素才有一个空间进行存储。
➢ 语法:数组名=new 数据类型[数组长度];
声明、创建 和初始 化
声名数组,为其 分配内存并 对元素初始 化
数据类型[] 数组名={值1, 值 2, …, 值n };
数据类型[] 数组名=new 数据 类型[]{值1, 值2, …, 值n };
▪ 定义数组注意事项:
➢ 定义数组时不要漏写数组长度。
➢ 数组中存储的数据称为数组元素。
➢ 不管数组中含有多少个元素,该数组都只有一 个名称,即数组名称。
▪ 在Java中二维数组被看作是数组的数组。
▪ 一、声明二维数组
➢ 语法:数据类型 数组名[ ] [ ];或 数组类型[][] 数组名;或 数组类型[] 数组名[];
➢ 例如:
float boy[][];
char array[][]; int array_name[ ][ ]; 或 int [ ][ ] array_name; 或
➢ a[0]=new int[2];
➢ a[1]=new int[3];
➢ a[2]=new int[4];
▪ 三、二维数组的初始化
➢ (1)直接为数组元素赋值
例如: int a[][]=new int[2][2]; a[0][0]=1; a[0][1]=2; a[1][0]=3; a[1][1]=4;
➢ 其中,数组长度就是能够存放的元素个数,显然应该 是大于0的整数。
➢ 例如:
score=new int [30];
height =new double[10];
name=new String [30];
百度文库
➢ 也可以在声明数组时就给它分配空间。
➢ 语法:数据类型 数组名[ ]=new 数据类型[数 组长度];
数组分类
▪ 一维数组 ▪ 多维数组
一维数组
▪ 一、声明:
➢ 数组要先声明然后才能使用。 ➢ 语法:数据类型 数组名[ ];或数据类型[ ] 数组名; ➢ 数据类型既可以是基本数据类型也可以是引用数据类
型,数组名可以是任意的合法变量名。 ➢ 如:
int [ ] score; double height[ ]; String[ ] name;
➢ 数组的下标范围从0到(数组长度-1),如果超过 这个范围,就会造成数组越界。
▪ 四、一维数组的引用
➢ 访问数组中的元素 ➢ 格式为: 数组名[下标] ➢ 下标可以为整型常量或表达式,下标从0开始。
如: int a[]=new int[10]; int b=a[0]+a[9];
此处,数组下标为从0到9。如果调用了a[10],程 序运行时将提示错误:
➢ 如:int sum[ ]=new int[100];
▪ 三、赋值:
➢ 给数组元素赋值。有三种方法赋值。 ➢ 方法一
语法:数组名[下标值]=值; 例如:
➢ score[0]=89; ➢ score[1]=56; ➢ score[2]=75;
➢ 方法二
每一次赋值时,只有下标在变,因此,可以使用循环给 数组赋值。
int [ ] array_name[ ];
▪ 二、为二维数组分配空间
➢ (1)直接为每一维分配空间
例如:int a[][]=new int[3][2];//建立3行 2列数组
➢ (2)高维开始,分别为每一维分配空间
例如:
➢ int a[][]=new int[3][];//指定最高维的长度为3, 然后分别为每一维分配空间
例如:使用下列方式来创建score数组
➢ int score[]={60,75,64,73,45};//创建一个长度为5的数组 score
➢ 同时它也等价于下面的代码:int score=new int[ ]{60,75,64,73,45};
注意,直接创建并赋值的方式一般在数组元素比较 少的情况下使用。它必须一并完成,如下代码是不 合法的:
➢ int[ ] score; ➢ score={60,75,64,73,45};//错误!!
创建数组方法小结
方法
说明
语法
仅声明
仅声明数组
使用保留字new
声明和创建
声明,并为 数组元素分
配空间
数据类型[ ] 数组名; 或数据类型 数组名[ ] ;
数据类型[ ] 数组名=new 数组 类型[数组长度];
例如:
➢ for (int index = 0; index < args.length; index++) {
➢
double num = Double.parseDouble(args[index]);
➢}
➢ 方法三
直接创建数组,将声明数组、分配空间和赋值合并 完成。
语法:数据类型 数组名[ ]={值1, 值2, 值3, …, 值 n };