项目三 解决约瑟夫环问题课件

上传人:我*** 文档编号:141982020 上传时间:2020-08-14 格式:PPT 页数:52 大小:247.50KB
返回 下载 相关 举报
项目三 解决约瑟夫环问题课件_第1页
第1页 / 共52页
项目三 解决约瑟夫环问题课件_第2页
第2页 / 共52页
项目三 解决约瑟夫环问题课件_第3页
第3页 / 共52页
项目三 解决约瑟夫环问题课件_第4页
第4页 / 共52页
项目三 解决约瑟夫环问题课件_第5页
第5页 / 共52页
点击查看更多>>
资源描述

《项目三 解决约瑟夫环问题课件》由会员分享,可在线阅读,更多相关《项目三 解决约瑟夫环问题课件(52页珍藏版)》请在金锄头文库上搜索。

1、项目三 解决约瑟夫环问题模块1 数组的使用,新课引入,例301:(不使用数组)从键盘输入5个学生的成绩,输出总分和平均分。,数组的概念,数组是一个变量,是具有相同数据类型的一系列数据元素的集合。 数组元素可以通过数组名和下标来引用。 一旦声明数组的大小,就不能再修改。 数组中第一个元素的索引号从0开始。,数组分类,一维数组 多维数组,一、声明: 数组要先声明然后才能使用。 语法:数据类型 数组名 ;或数据类型 数组名; 数据类型既可以是基本数据类型也可以是引用数据类型,数组名可以是任意的合法变量名。 如: int score; double height ; String name; 注意,不

2、可在数组名后的方括号内指定数组元素的个数,如int sum10;是错误的。,一维数组,二、分配空间: 声明了数组只是得到了一个存放数组的变量,并没有为数组元素分配空间,不能够使用,因此要为数组分配空间,这样数组的每个元素才有一个空间进行存储。 语法:数组名=new 数据类型数组长度; 其中,数组长度就是能够存放的元素个数,显然应该是大于0的整数。 例如: score=new int 30; height =new double10; name=new String 30;,也可以在声明数组时就给它分配空间。 语法:数据类型 数组名 =new 数据类型数组长度; 如:int sum =new i

3、nt100;,三、赋值: 给数组元素赋值。有三种方法赋值。 方法一 语法:数组名下标值=值; 例如: score0=89; score1=56; score2=75;,方法二 每一次赋值时,只有下标在变,因此,可以使用循环给数组赋值。 例如: for (int index = 0; index args.length; index+) double num = Double.parseDouble(argsindex); ,方法三 直接创建数组,将声明数组、分配空间和赋值合并完成。 语法:数据类型 数组名 =值1, 值2, 值3, , 值n ; 例如:使用下列方式来创建score数组 int

4、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;/错误!,创建数组方法小结,定义数组注意事项: 定义数组时不要漏写数组长度。 数组中存储的数据称为数组元素。 不管数组中含有多少个元素,该数组都只有一个名称,即数组名称。 数组的下标范围从0到(数组长度-1),如果超过这个范围,就会造成数组越界。,四、一维数组的引用

5、 访问数组中的元素 格式为: 数组名下标 下标可以为整型常量或表达式,下标从0开始。 如: int a=new int10; int b=a0+a9; 此处,数组下标为从0到9。如果调用了a10,程序运行时将提示错误: java.lang.ArrayIndexOutOfBoundsException,例302 (用数组编程)从键盘输入5个学生的成绩,输出总分和平均分。 例303 求数组中元素的最大值、数组元素的和,再为各元素从小到大排序。,二维数组,二维数组在编程中应用广泛。常用于表示表,表中信息以行和列的形式组织,第一个下标表示元素所在的行,第二个下标代表元素所在的列。 在Java中二维数组

6、被看作是数组的数组。,一、声明二维数组 语法:数据类型 数组名 ;或 数组类型 数组名;或 数组类型 数组名; 例如: float boy; char array; int array_name ; 或 int array_name; 或 int array_name ;,二、为二维数组分配空间 (1)直接为每一维分配空间 例如:int a=new int32;/建立3行2列数组 (2)高维开始,分别为每一维分配空间 例如: int a=new int3;/指定最高维的长度为3,然后分别为每一维分配空间 a0=new int2; a1=new int3; a2=new int4;,三、二维数组

7、的初始化 (1)直接为数组元素赋值 例如: int a=new int22; a00=1; a01=2; a10=3; a11=4; (2)在数组声明时为数组初始化 例如:int a=1,2,3,4,5,6;,四、二维数组的引用 格式为:数组名下标1 下标2; 下标1,下标2分为二维数组的第一、二维下标,同一维数组一样,也可为整型常量和表达式,并且数组下标都从0开始。,例304 创建类,实现打印二维数组的功能。 例305 初始化二维数组,输出数组长度和每个元素的值。,作用:对数组递增排序 用法: 导入java.util.Arrays包。 调用Arrays的sort方法。对数组中的元素排序的语法

8、是Arrays.sort(数组名) 排序时应注意: 1) Arrays.sort(数组名),()中跟的是数组名。 2) Arrays.sort(数组名)只能实现升序排列。 3) Arrays的sort是静态方法,可在main方法中直接调用。 例306 对数组元素进行排序。,Arrays类中的排序方法sort,项目三 解决约瑟夫环问题模块2 字符串处理,新课引入,字符和字符串: 单个字符用单引号表示:j、a、v、a 字符串用双引号表示:”java”、”学生” 前面已经学过创建字符串: String s=Hello Word!; String name=“Mike;,字符串概念,字符串是字符的序列

9、,它是组织字符的基本数据结构,从某种程度上来说有些类似于字符的数组。 字符串的组成:字母、数字和其它符号。,在Java中,字符串被当作对象来处理。 String类是程序设计人员提前设计的一个非常有用的类,它位于java.lang包中,在使用前要导入这个包。程序默认导入了java.lang包。 程序中需要用到的字符串可以分为两大类 一类是创建之后不会再做修改和变动的字符串常量String类; 另一类是创建之后允许再做更改和变化的字符串变量StringBuffer类。,String类字符串,Java中的字符串通常指的是String类的对象。 一、创建字符串的方式有两种: 1、直接将字符串常量用双引

10、号引起来: String 字符串对象; 字符串对象=“字符串常量”; 或:String 字符串对象=“字符串常量”; 如:String s=“hello world”;,2、使用String类提供的构造方法,例307,二、String类字符串的基本操作 1、 String类字符串的长度 public int length( ):返回字符串中的字符个数 如: String name = John Smith; System.out.println (name.length(); 上述输出结果为10。 汉字与英文或其他字符占用的字符相同,都是两个字节。因此,引号中若为“学生”,则结果为2。,2、

11、String类字符串的比较 (1)比较两个字符串是否相等: boolean equals(String str) :比较两个字符串的值是否相等。 boolean equalsIgnoreCase(String str):忽略大小写,比较两个字符串的值是否相等。 运算符“”表示检查两个字符串是否指向同一个对象,它们的地址是否相同。 例308,(2)比较两个字符串的大小: int compareTo(String value):若调用方法的串比参数串大,返回正整数;反之返回负整数;若两串相等则返回0。若两个串各个位置的字符都相同,仅长度不同,则返回值为二者长度之差。 例309 (3)检查一个字符串

12、是否以另一个字符串开始或结束: boolean startsWith(String value) boolean endsWith(String value) 例310,3、 String类字符串的检索和子串 (1)检索: int indexOf(char ch):搜索字符ch出现的第一个索引号,如果没有找到匹配,则返回 -1 int indexOf(char ch,int fromIndex):从fromIndex位置开始搜索字符ch出现的第一个索引号 int indexOf(String str):搜索字符串str出现的第一个索引号 int lastIndexOf(char ch):从右向

13、左搜索字符ch第一次出现的索引号 int lastIndexOf(char ch,int fromIndex):从fromIndex位置开始从右向左搜索字符ch第一次出现的索引号 int lastIndexOf(String str):从右向左搜索字符串str出现的第一个索引号 例311,(2)取子串: String substring(int index):提取从位置索引开始的字符串部分 String substring(int beginindex, int endindex):提取 beginindex 到 endindex-1为止的字符串部分 例312,4、 String类字符串的修改

14、 String类字符串一旦赋值就不能改变,只能经过一些处理把生成的新字符串赋给其它常量,从而达到修改的效果。 String toUpperCase()/ String toLowerCase():将当前字符串小写改大写/大写改小写 String replace(char old, char new):用字符new替换所有的字符old String trim():去掉字符串首尾空格 String concat(String str):连接两个字符串 例313,StringBuffer类字符串,StringBuffer类的构造方法,例: StringBuffer sb=new StringBuff

15、er();/创建一个没有文本的对象sb,其默认容量为16个字符。 StringBuffer sb=new StringBuffer(30);/创建一个容量为30个字符的对象sb。 StringBuffer sb=new StringBuffer(“Computer”); /创建一个含初始值的对象sb。,例314,项目三 解决约瑟夫环问题模块3 异常处理,异常概述,如何理解“错误”这个术语? 例:当计算机系统启动时,它会先检查所有设备,然后才允许用户在计算机上工作。因此,如果键盘连接不当,或显卡存在问题,屏幕上就会出现错误消息。由此看来,键盘的故障就是一个错误。无论哪里出现错误,系统都会发出错误

16、报告,且只要有可能,都会找出原因。,在Java中,有下列几种错误: 编译错误:通常为语法错误 逻辑错误:也称算法错误,编译器不可能检查这类错误 运行时错误:程序在执行时所发生的执行错误,这是异常处理机制大展拳脚的地方,异常概念 程序运行期间发生的错误称为异常。 异常发生的原因是在执行时发生了某些事件,如,在程序中用零作除数、数组下标越界、在指定的磁盘上打开不存在的文件等。例315、316 异常产生后,系统中若无相应的机制处理,则会产生死机、死循环或其他对操作系统的损害。,异常类的继承结构,Java中定义了很多异常类,每个异常类都代表了一种运行错误,这些异常类都是Throwable类的直接或间接子类。 Throwable类有两个直接子类:Error和Exception。 Error类的异常为内部错误,Java程序不对这类异常进行处理。 Exception类是编程中处理的错误。,Exception:异常层次结构的根类 RuntimeException:许多 java.lang 异常的基类 ArithmeticException:算术错误情形,如以零作除数 I

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号