分享

【答疑解惑】如何具备编程思想?

 LZS2851 2015-09-23

1,分析问题
首先要分析待解决的问题是什么问题,初步判断是否能用计算机解决。这个看似简单,其实有时候挺难的。比如说让你编一个程序来造一架战斗机,这个只要不傻都知道这个程序不可能完成;而让你编一个程序求两个整数的最大值,也很容易判断是可以办到的。但是如果我让你编一个程序把计算机主板烧毁,估计你不一定知道这个问题能完成还是完不成,先不考虑你能不能实现,估计判断都不一定判断出来。所以分析问题这一步很重要,它决定了你能否继续进行的动力,复杂的问题需要很多计算机知识和其他领域的知识。这一步是解决要做什么。


2,设计算法及数据结构
一旦上面认为是一个用软件能解决的问题,接下来就该考虑如何去解决它。这一步常常需要更多的编程知识和编程经验,根据问题的复杂程度不同,设计有很打差异。往往熟悉常用的算法和数据结构,如何组织他们之间的关系,消息传递及同步,还可能还需要数学知识。
在考虑算法时,不但要考虑如何实现,很多时候还需要设计如何才能提高效率,因为同样是解决一个问题,不同算法之间可能差别非常大。比如计算1加到100000000,可以用sum += i这个大家都知道的来计算,也可以用等差数列求和公式,这两种算法估计差别不知多少倍。


3,编写代码
完成算法和数据结构之后,就开始编代码来按照算法实现它,这个过程的要求相对来说要去没有上面的那么高,很多大公司往往把这部分交给普通工程师来完成。一个算法设计详细的开发往往已经考虑到很多编程的实现性,因此编写代码基本按照设计完成即可,当然水平高的人同样会编写更有效率的代码。他们可能根据问题的实际情况采用空间换时间,定点代替浮点,局部代码优化等方法。


4,运行调试
编辑完成后,需要进行运行测试,一般来说根据问题的复杂程度,需要调试的时间差别很多,简单的分分钟搞定错误,复杂的几个月甚至更多时间。这个过程往往与下面一步交替进行,运行调试到差不多后,进行验证测试,发现问题继续调试。


5,验证测试
验证测试是为了验证程序是否满足最开始提出的所有要求,并同时尽可能发现存在的bug。这一步与调试相互交替开展,不要想当然开发好了再去测试,而是应该早一点参与进去。
当测试的结果达到问题解决的标准后,即可认为软件开发完毕。根据软件性质,结束项目或者进入后期维护。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多