其他分享
首页 > 其他分享> > 晚风于我皆客的题目集1~3的总结性Blog

晚风于我皆客的题目集1~3的总结性Blog

作者:互联网

前言:第一次作业的第一题学习到了身体质量指数的计算方法且质量指数在什么范围内有什么情况(即学会如何用if函数),而且学习到了题目的严格要求代码也得遵守,小细节都不行。第一题的难度不是很大,题量不大。第一次作业的第二题首先学习到了1磅和1英寸的国际单位制与英制之间的计算的换算,其次题目要求用浮点数,浮点数有两种表示方式,一种是float,一种是double,在这道题中,若是zhi,chang两个变量全部用double,结果会出错,而且剩余变量也是,我觉得是因为内存的问题和精度的问题,学习到了什么时候用double,什么时候用float,题量不大,也不难,第三题奇数求和学习到了用数组,题量和难度是最低的,第四题学习到了怎么输出空格形式以及浮点数的应用,题量不多,难度一开始觉得挺难,是因为看不懂题,后来就觉得不难了。第五题是游戏角色选择,我学习到了Switch和case的用法,题量少,题目简单,第六题学到了用字符来描述问题解决问题,并且学到如何计算每一位的数字,题量比较麻烦,难度有点大,对于当时来说,第七题学到在浮点数中比较大小精确度在0.01之内而且学到如何将三角形划分几类三角形,难度偏中,题量较大,第八题学到了用巴比伦法求平方根近似值,不能将浮点数写成double,因为float精确到前几位,而double不是,学会用循环,难度较低,题量较小,第九题不会写。

第二次作业的第一题我学会了运用古典变量来对情况进行分析,难度较小,题量较小

。第二题学会了用一个正则表达式判断输入是否合法以及循环逻辑的结构梳理,难度较大,题量适中。第三题学习到了如何表示一串字符中以n个一维数组分隔开来完成题目,以及循环结构,难度较大,题量不大。

第三次作业的第一题我学会了如何用正则表达式判断一个字符串是否为double类型,以及如何以,将字符内容分隔开和怎么以空格将点坐标分隔开,难度较大,题量较大。第二题学习到了用Switch和case对情况进行甄选,以及跟第一题一样的收获。第三题学会了如何用正则表达式判断一个字符串是否为double类型,以及如何以,将字符内容分隔开和怎么以空格将点坐标分隔开,用Switch和case对情况进行甄选,难度特大,题量特大。

 

设计与分析:第一次作业的第一题我的思路是先定义两个输入的浮点型变量sg,tz,以及定义浮点型变量BMI进行赋值BMI = tz/(sg*sg),然后根据BMI的取值范围分别对应其操作。

第二题我的思路是定义个输入的浮点型变量zhi,chang,并且将 0.45359237和0.0254赋值给两个变量,然后再做运算输出结果。第三题我的思路是创建一个放置10个元素的数组,然后用for循环对每个元素进行输入以存储在数组中并且执行判断为奇数的操作,最终输出奇数之和。第四题我的思路是定义题目中要求的四个输入变量,然后作为购房次数的那个变量在取值范围内进行讨论,里面在房屋面积的那个变量进行讨论执行相应操作,在循环外再列式子最终将其输出。第五题我的思路是定义两个输入的整数型变量,分别对变量进行Switch case语句实行对应输出的结果。第六题我的思路定义一个可以输入一行的输入变量,先判断位数,如果不是8位,非法输入,如果是8位数,则再判断学院编号是否为01,02,03,20,其中之一,若不为,非法输入,若为,再判断从右到左依次两位数属于什么特定东西,输出特定东西。第七题我的思路是定义三个浮点型可输入的变量,如果此变量不在题目所给的范围内,输入非法,如果在所给的范围内,如果三条边不能构成三角形,输出一段,如果可以先判断是否为等边三角形,若是,输出一段,不是的话再判断是否为等腰三角形,是判断一下是否为直角三角形,是输出一段,不是输出一段,若不是等腰三角形,再判断是否为直角三角形,是和不是分别输出一段,最终输出结果。第八题我的思路是定义两个浮点数型的可输入变量,再定义一个不可输入的变量用上面两个变量关系赋值表示,如果那两个变量分别小于0,小于等于0,则非法输入,否则再用一个循环表示最终的差值是否小于0.01,最终输出结果。第九题我不会写,不过我认为要使用字符串以及字符串的函数。

第二次作业第一题我的思路是先定义一个可输入的字符串变量,定义一个古典变量,用循环访问字符串的每个字符,若在a与z或A与Z之间,则古典变量赋予一个类型,否则赋予相反类型,若不在,则非法输入,然后用古典变量作为if判断条件,进行大写字母转换数字或小写字母转换数字的情况执行相应的操作。第二题我的思路是定义一个可输入的字符串变量,用字符串的长度和正则表达式判断输入的合法性,若少于11位或者输入数据全1没有起始位,则输出null data,然后再用循环访问该字符串的每一个字符,若为0并且自start变量从0和1,该字符串的第start+10位则按要求输出,否则如果为1,在进行如下操作,再接着以判断里面的古典变量作为if执行接下来所对应的情况,最终得到输出结果。

SourceMonitor相应类图:

 

第三题我的思路是定义一个输入一整行的可输入的字符串,判断位数是否为8的倍数,不是非法输入,是的话定义一个n个的一维数组,并调用string函数截取当中的字符串进行讨论得到最终结果。

第三次作业的第一题我的思路是定义一个输入一整行的变量,计算空格的数量判断是否有超过点的个数,然后再调用 String函数将空格前的字符串提取以及空格后的字符串提取,并讨论是否有逗号以及逗号的个数,若为1个逗号则再讨论两边是否为double类型的数,用正则表达式判断,但是符号+-得单独判断,若满足两个点,再计算他们的距离,此时得创建一个类联系他们。

SourceMonitor相应类图:

 

第二题和第三题超出点的个数用这种方法,其余的都不会写,但是得肯定一定要用到至少5个类。

踩坑心得和改进建议:第一次作业第一题边界值没有取,由于在eclipse中无影响,而pta不能得全分最后一次提交修改过来了,所以无法截图,如下图划横线即为边界值,每次情况都要加=

 

第一次作业第二题一开始写代码的时候全用了double结果部分正确,最后将double改为float后就写对了。如下图,类型不同,输出结果有差异

 

所以要求严格认识double和float带来的差异

第一次作业第三题无问题

第一次作业第四题也是同第二题一样为浮点数类型的问题,将double改为float后就可行了

第一次作业第五题没有问题

第一次作业第六题无问题

第一次作业第七题中判断三角形是否为直角三角形时若两边的平方和等于第三边的平方和是错误的,应该是两边的平方和减去第三边的平方和小于0。01才算,因为三边均为浮点数,有精确度。在eclipse无法展现他们的区别和部分正确以及全部正确,所以无法截图。

第一次作业第八题也是double类型和浮点数类型的问题,将变量全用浮点数表示即可,与第二题一样的情况。

第一次作业第九题不会写

第二次作业第一题无问题

第二次作业第二题会漏判断条件

 

 

第二次作业第三题无问题

第三次作业第一题未对点的个数超过2个的情况进行判断,其余两道题不会写,真的很烦就是不知道咋写。另外编写一个函数判断点的个数超过两个会怎样。

总结:Java的运行(基础必备) 这条可能出看很简单,java程序的运行谁不会呢?不过很多时候, 我们只是单纯通过IDE去执行java程序,底层IDE又是如何执行java程序呢?很多人并不了解。

这 个知识点是最最基本的java开发者需要掌握的,初学java,第一个肯定是教你如何在命令行中执行java程序,但是很多人一旦把java学完 了,IDE用上了,就把这个都忘了。为什么强调要知道这个呢,知道了java最纯粹的启动方式之后,你才能在启动出问题的时候,去分析当时启动的目录多少,执行命名如何,参数如何,是否有缺失等。 这样有利于你真正开发中去解决那些奇奇怪怪的可能和环境相关的问题。

在这里需要掌握的知识有: javac 编译java文件为 class 文件java 命令的使用, 带package的java类如何在命令行中启动java程序涉及到的各个路径(classpath, java。library。path, java运行的主目录等)

3.数据类型 这条没有什么好多说的,无非就是Java中的基本类型和对象类型的掌握。可以再了解一些JDK如何自动转换方面的知识,包括装箱拆箱等,还要注意避免装箱之后的类型相等的判断 主要知识点: 基本类型: int, long, float, double, boolean ······ 对应的对象类型: Integer 等类型到基本类型的转换, 装箱和拆箱Object类型: equals, hashcodeString 类型的特点

4.对象和实例,对象的创建 在这方面,开发者需要了解class和instance的概念以及之间的差别, 这是java面向对象特性的一个基础。

主要知识点有:Class和 Instance 的概念; Instance 创建的过程:1. 无继承:分配内存空间, 初始化变量, 调用构造函数;2.有继承:处理静态动作, 分配内存空间, 变量定义为初始值 , 从基类->子类, 处理定义处的初始化, 执行构造方法; 需要注意的点:静态属性等从基类->子类进行初始化;默认无参构造方法相关的特性。

5.访问控制 这也是java封装特性的一个基础需要掌握的有:public protected default private 对于class, method, field 的修饰作用

6.流程控制 Java 流程控制的基础,虽然有些语法不一定很常用,但是都需要了解,并且在合适的地方使用它们。需要掌握的有: if, switch, loop, for, while 等流程控制的语法

7.面向对象编程的概念 这是一个java的核心概念,对于任何java开发者都需要熟练掌握。Java中很多特性或者说知识点都是和java面向对象编程概念相关的。在我的理解, 一个好的开发者不仅仅需要了解这些特性(知识点)本身,也更需要知道这些对象在java的面向对象编程概念中是如何体现出来的,这样更有利于开发者掌握 java这门开发语言,以及其他面向对象编程的语言。

主要的知识点包括有:面向对象三大特性:封装,继承,多态; 各自的定义概念,有哪些特性体现出 来,各自的使用场景静态多分派,动态单分派的概念重载的概念和使用继承:接口多实现,基类单继承抽象,抽象类,接口多态:方法覆盖的概念和使用接口回调

8.Static 静态属性在java日常开发中也是经常使用,需要了解和 static 关键字相关的用法,还有和其他关键字的配合使用, 如是否可以和 abstract, final 等关键字联合使用。 主要需要掌握的有:静态属性的定义,使用,以及类加载时如何初始化静态方法的定义和使用静态类的定义和使用静态代码块的定义和初始化时机。

9.对教师和课上尽量不要很快的讲新东西,需要有一个细嚼慢咽的过程,希望教师多多讲一下作业该怎么写以及一些基础知识的温习,作业方面尽量出一些难易结合的题目,而不是都是难题,实验课上希望老师在实验方面能够指导一下学生往哪个方向思考。

标签:总结性,java,变量,double,作业,晚风,Blog,输入,定义
来源: https://www.cnblogs.com/cka2002-06-04/p/16129198.html