pta前三次作业总结

一.前言

       pta前三次作业的数量不多,但是题目颇具代表性,充分考查了学生对老师教授内容成果。在三次作业中我只有第一次的作业中有两个题目没有得满分,原因在于题目测试点太多,并且未将测试点说明,导致连错在哪都不知而无法更改。但这也有好处,就是让学生自己去发现问题,解决问题,从而提高学生程序编译能力和问题发现,问题解决得能力。

二.作业过程总结

       第一次作业主要是衔接C语言,了解Java和C语言得共通性,便于学生从C语言到Java的转变;其次是学习Java的基础知识,学生在写题目时能更好理解用Java语言编写程序的优点和熟悉Java程序的写法。第二次作业就已经转向了现实,无论是解一元二次还是判断闰年,计算星期几,和计算一个日期的下N天都已经初步和现实接轨,用于解决生活小问题,并为真正的面向对象做铺垫。第三次作业内容上与第二次作业相似,但加入了类的概念,这是对面向对象的又一大跨步,在难度上比第二次作业难度有所增加主要是因为初次接触类的概念和用法,对类的知识和用法不够熟练。

  面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了(百度百科)。C语言是典型的面向过程的编程语言。面向对象就是是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(百度百科)。JAVA是典型的面向对象编程语言之一。而pta三次作业的过渡也就在此,第一次作业衔接C语言,主要表现的是面向过程,而非面向对象,但是从后两次作业中主要通过解一元二次方程和对时间计算的方向就已经从面向过程向面向对象转变,这也就是作业逐步从面向过程过渡到面向对象。

  在写这三次作业 时遇到了许多问题。就像在第一次作业时,初次 接触Java对Java的许多基础知识和写法都不是很理解,连如何标记字符串第一个字符都不知道该怎么办,还是在网上查了很久资料才弄清楚;而且在第一次作业第一题里数据过多,将代码写完之后很长又多,提交答案后测试点也没有给出,这就导致我花了好长时间也没找到我那个数据输错了,到了截止时间也没解决。而在第二次作业中返回一个字符串,若是在C语言中只需将字符串改成字符数组,再返回数组名就可以了,但在我所学习到的Java中并没有这中方法,这就让我发生卡壳。而在后来,我通过写简短代码发现,Java可以直接输出整个字符串从而解决这个问题。

  三次作业花费时间也是逐次递增的,第一次作业在半天以内解决,而且是因为第一题数据太多,检查和修改花费了太多时间;第二次作业花了将近一天才解决完,其中第二次作业的最后一个题目花的时间最多;而第三次作业是花了一个周末才写完的,第三次作业虽然只有4个题目,但是后三个题目中类所需实现的方法过多,导致花费时间多。

  在作业变成过程中,吃了严谨性好大的亏,特别是第一次作业,明明是最简单的一次作业却还错了,只因写代码时不够严谨,导致数据错误输入。而在其他题目上,想将题目所需方法尽可能简化,却没有考虑周到,代码计算范围不够全面。所以在写代码时严谨性很重要,这关乎一个代码的对与错。

三.程序设计心得

  面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了(百度百科)。C语言是典型的面向过程的编程语言。在C语言中,你就是上帝(主函数就是上帝意志的体现......),你把想做的事“封装”成一个一个函数模块,然后在主函数中通过调用不同的函数完成不同的功能,最后达到你想到的效果(得到你想要的输出)。面向对象就是是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为(百度百科)。JAVA是典型的面向对象编程语言之一。在JAVA(或者说面向对象编程语言)中,你还是上帝,但是你是一个“简政放权”了的上帝。你创建了一个个对象,然后这些对象干这干那的。

  面向对象程序设计既开放又封闭,对扩展是开放的,对更改是封闭的!扩展即扩展现行的模块,当我们软件的实际应用发生改变时,出现新的需求,就需要我们对模块进行扩展,使其能够满足新的需求!这个原则对我们在设计类的时候很有帮助,坚持这个原则就必须尽量考虑接口封装,抽象机制。开放封闭原则主要体现在对扩展开放、对修改封闭,意味着有新的需求或变化时,可以对现有代码进行扩展,以适应新的情况。

  ​编程思维并不是编写程序的技巧,而是一种高效解决问题的思维方式。编程思维就是理解问题,找出路径的思维过程,它由分解—识别模式—抽象—算法四个步骤组成。分解,把一个复杂的大问题,拆解成更可执行、更好理解的小步骤。识别模式,找出相似模式,高效解决细分问题。抽象聚焦最重要的信息,忽视无用细节算法,设计一步一步的解决路径,解决整个问题。编程思维主要是将现实问题简单化,细化,模块化,从而更简单地解决问题。

四.测试的理解与实践

  在写pta作业时也充分体现了测试的重要性,eclipse虽然有识别错误的能力,但能否得出正确得结果还需测试后才能得知,而且测试结果需要与pta给出的结果对比是否一模一样才行。测试不仅可以检验代码的可运行性,还可以检验代码运行的正确性。

  如果让我设计测试样例,我会分三种:一.数据极大值;二.数据中间值;三.数据极小值。从这三个方向出发,检验提交代码的正确性,并且具有足够的可靠性。

五.课程收获

  在这四周的学习中,我从分体会到写代码时要心静这句话的真谛,心不静就不能体会到题目的真正意思,更会使代码出现错误的概率增大,数据作用范围理解不清,导致无法得到正确的答案。这也让我知道,学习不是一成不变而是不断变通,在平时应该经常看一些别人写的代码,学习别人的优点,提高对一个问题解决方式的方法,使一个问题有多个解决方法,提高自己的编程能力。

六.对课程建议

  老师的讲课能力很强,在上课时提出的写代码作业应该放在课后完成而不是上课解决,因为这太浪费时间,学生代码正确性也得不到保障。其次pta上的作业希望老师能进行一些讲解,毕竟写完后需要老师的一些提点,以帮助学生进步。

posted @ 2020-04-02 13:50  -+-+-  阅读(137)  评论(0)    收藏  举报