PTA题目总结
(1)前言:第一次题目集主要考察JAVA的一些语法知识,比如,控制台的输入,输出时保留两位小数,数组的使用,第十题有点难度,当时没写出来,现在想想
也还好,就是读懂题目有点费劲,第一次题目的题量比较大,有十二道题目。
第二次题目集主要考察类型转化,第一题为float型,第二题考察数组的创建int[ ] a = new int[4 ];第三题也需要将输出强制改为float,第四题考察字符数组String[ ] a = new String[4];第五题考察equals函数的使用,用于字符串之间的比较以及substring(a,b)函数的使用,为第a到b-1之间的所有字符;第六题主要考察float型,将所有的变量变为float;第七题主要考察contains()函数以及indexOf()以及charAt();第八题主要考察三角形,只要将等腰三角形单独提出来对他进行分析,直角三角形只需要将两边之和与第三边的差小于很小的数(1e-5);第九题主要考察闰年的求解以及日期是否合法,12月的最后一天年份加一,月份的最后一天月份加一;其他的就直接天数加一;
第三次题目集主要考察类与对象,第一题主要考察圆的属性,方法的使用,无参及有参构造方法,难度不大,可以更具书上的内容来进行作答;第二题主要考察类的方法的调用,改变他的值,难度不大,就是需要想清楚他们之间的关系;第三题与第二次题目集的最后一题很像,只要加上类的调用方法就行了,难度不大;第四题考查的是方法的使用及调用,比较灵活,有点难度;
(2)设计与分析:第一次题目集考查的是语法以及逻辑关系,只要对题目的逻辑语法进行相应的分析就行了;第二次题目集考察的是输出格式float型,需要进行转化以及equals函数的使用三角形的等腰问题,包括了两种,需要进行分析;
第三次题目集考察了类与对象,第一题对圆的属性和方法进行了调用,第二题则对account类进行处理,第三题
第四题
需要理清楚他们之间的关系,对他们进行使用;
(3)踩坑心得:
1.保留两位小数没有用这种形式,导致测试点没有通过;
2.这里的体重指数当时的逻辑没有很清楚,不符合条件的体重一直能通过,所以导致最后的答案一直“Wrong Format”,经过这个调整以后测试点才通过;
3.这里当时输出时没有用print代替println,处理导致当时的结果空了很多行,使得测试点一直没过,进行改正之后,才通过测试点;
4.这里当时没有在count++后面进行处理,虽然通过了测试点但是答案并不是正确的,有点瑕疵;所以可以将结果改为下面的类型就可以了;
5.当时处理的时候并没有从新定义变量,导致变量的值一直在变没有固定下来;后来想想只需要将变量另外设置一个值就行了,这样就不会改变变量的值,也就能通过测试点了;
6.这里当时没有对天数进行约束,没有使得day>0,所以测试点没有过,对day进行约束就可以通过啦
7.当时处理字符相等的时候用的是“=”,导致测试点没有通过,出现了编译错误,后来查找资料发现需要用到equals来进行字符串之间的比较是否相等的情况;
8.在做这个三角形题目的时候,并没有考虑到他们之间是不会相等的,因为输入的是个浮点数,所以我们只需要将三角形的两边之和与第三边的差小于一个很小的数就可以啦,然后记得要加上绝对值,否则也是会出错的;
9.当时没有给radius前面加上this导致出现编译错误,this表示当前对象,对当前对象进行定义;
10.用get时需要有返回值,否则会出现错误
11.当时做这个题目时并没有进行这种初始化赋值,导致没有做对,实际上是需要进行赋值的;
12.当时处理这个时间的时候不知道该怎么调用它,后来干脆就直接把他定死,把时间定为一个固定值直接输出;
13.做这个题目我用了两种方法,之前的方法感觉不是很好,有点复杂化了,所以我就用了第二种方法,注释掉的为之前的方法;
14.做到这一步的时候我开始是吧这个函数的调用放到了外面,所以导致结果有点错误,之后想了想他是应该放在里面的,不然他的值是会改变的;
15.开始粗心大意的以为时间和上一题的很像,结果发现并不一样,这是一个坑了;
16.这个求下N天刚开始,真的不知道问题出在哪里,感觉直接用一个循环重复第三题的求法应该就没问题了呀,可是当给a[2]赋值的时候他的天数就是固定的,根本不会变,所以,我们应该在赋值之后的那一步加上a[2]=28,这样的从新赋值,就不会使得答案有差别;
17.这一题和上面的16点的知识是一样的,都需要重新赋值;
18.刚开始我这里写的是a[month-1]可是后来发现,Month已经是减了之后的状态,根本不需要再一步进行减一的操作;
19.这里刚开始不是很理解为什么要怎么做,后来想明白了,这是为了方便进行求日期,所以可以先判断他们两个日期谁先谁后这样会比较好求解,然后再根据年份相同比较月份,月份相同比较天数,年份不同就慢慢的计算;
20.这里是进行年份先后的判断,方便后面的计算;
21.这里是输出返回的结果,直接String一个字符串,直接赋值,然后返回结果;
(4)改进建议:
1.在做这道题目的时候有点难为情,当时不知道咋下笔,后来就想通了,然后觉得这样子改进会比较好:
注释的地方是进行改进的地方;
2.这个地方也是可以这样子来改进的,就不会显得头重脚轻;
3.这个地方也是可以不用那样子返回值,注释的地方为第一次写的,有点青涩,感觉这样写会比较好操作;
(5)总结:
通过这三次的练习发现,第一次主要考察的是对于JAVA的一些语法。然后第二次。也和逻辑语法有密切的关系,第三次考察的主要是类与对象。在第一次题目集中学到了怎么用数组来表示?他们之间的关系,创建一个字符串数组,或者是整型数组来储存相应的数字,这样就可以更好的求出你要的结果。印象比较深刻的是第十题,他的意思有点难懂,比较难理解,所以暂时还没弄出来,在老师规定的时间里。第二次题目集主要对输出形态有相应的规定,有些输出形态一定要把它强制转换为浮点型才能够输出正确,否则的话输出结果都是错误的。这一次印象比较深刻的是第。八题三角形的计算时。有一个。直角三角形的计算,它需要两边之和的平方减去,第三边大于一个较小的数,因为他们的值不会等于零,然后还需要用绝对值的方式表示出来,所以这道题目比较难。更好的锻炼了我的思维。第三次题目及刚开始接触的时候是有点生疏的,因为对类与对象并没有很强大的理解,也没有看书,所以直接做的话有一点困难。然后在看完了书之后,第一题和第二题相对来说是比较简单的,当时做第二题的时候做的时间比较久,主要是因为对这种。关系之间并不是很清楚,而且不是特别的理解。然后做到第三题的时候就开始上手了,因为第三题计算时间的时候和第二次的第九题十分的相似。所以写的时候就会比较容易,第四题的时候又与第三题紧密相扣,所以说这些题目都是比较有挑战性的。第四题在进行计算下一天的时候,让我学习了需要重新把它。定义一下,否则的话,会出现日期的增多。然后再做第三次练习题的时候。对于类的方法和对象有了更清晰的了解,感性方面,希望老师能够。讲一讲每道题的大致思路,或者是发一下错的比较多的题目,应该怎样正确的规范自己的想法?因为有些题目做对是做对了,但是可能并不是特别的规范,有些甚至是直接。过了某一个点就行,完全达不到真正的要求和效果。还有就是希望老师给的时间多一点,这样也会让我们有更多的时间思考,不会特别的紧张和无措,对于做题目的时候会做的比较从容,不会有那种紧张的感觉。