`
weimou66
  • 浏览: 1249351 次
文章分类
社区版块
存档分类
最新评论

【精】图编程总结(编程过程的总结)

 
阅读更多

编程过程思维状态

编程是一个需要注意力高度集中的过程,不仅是编码的过程,而且构建算法与数据结构的过程也必须如此。因为整个过程可能有很多状态,稍微不注意就会忽略或陷入混乱。人是高度进化的动物,能够处理很多出乎意料之外的事情,但是计算机却没有办法,如果出现之前未考虑的情况,计算机最可能的反应就是出错与崩溃。

然而就算注意力完全集中,一个人大脑中的缓存也是有限的,不可能同时保持着那么多状态与变量的状态,但人脑不会内存溢出,取而代之的是混乱。我们要清晰编程,而不要混乱编程因此就必须应用从上至下,逐步求精的过程,先从问题的性质与规律入手,然后进行算法与数据结构的构想,等这一切都无懈可击之后在开始写代码,编码中写好注释,真正的编码时间不应该超过整个过程的百分之三十。尽量在纸张上写出相关的状态与过程,以便于之后的参照。

进一步具体的说一下编程的过程

1问题探索过程,观察思考问题的性质,找到问题及其对象中存在的规律,从而找到一种人能够实现的有周期性的解法。

2算法的求精与数据结构、模块、接口的设计:将抽象性较高的周期性解法转化为计算机能够执行的算法,将程序框架以及具体实现都设计好,最后的代码就是这个过程结果的充实。

3根据伪代码编码,在写每个块状结构之前都必须注释上这个块状结构的功能与实现。

4debug与测试

debug

debug是非常重要的,我总结的常用办法有个:

1错误代码段定位,缩小搜索范围是节省时间的重要方法。

2抓住一些关键的量(状态指示量),将代码的运行状态显示出来。不要让代码成为脱缰的野马,在写代码的时候,每一个结构块之前都要注释这一个结构块的功能实现,在debug的时候,用运行状态变量来保证代码的运行情况在掌握之中。

3、利用大量的多种类型的可能输入进行测试(对于初步运行正常的程序)

虽然debug技非常关键,但是一次性命中仍然是努力的目标,每次写代码都必须努力减少bug出现的几率,一个好的方法是分块分段来写程序,对块段的测试bug的出现,也可以减少debug上的时间。

debugee1:当vertex[n]被声明但n还没定义的时候,DEV并不报错,但运行的时候却有时会出现诡异的错误,也就是vertex的地址发生改变,访问vertex内的元素时出现崩溃。这个bug虽然是被编译器放过而变得很隐蔽,但是仍然不应该困扰那么长时间,因为当系统中某一个环节问题的时候,你必须考虑它所有的元素是否都正常,如果能看到的元素是正常的,就必须考虑那些隐藏的元素一个变量出现诡异的变化,不仅要看它被调用、修改的过程,也要注意到它的声明与定义的过程

debugee2:二维数组的传递需要列的信息,为了克服这一问题,用一个指针数组来存储这个各行的头指针。

debugee3:算法与数码实现的代沟,或者说是伪代码与代码之间的代沟,当你用抽象语言来期望完成某个功能的时候,用代码写出来却会出现言不达意的错误。就像这里,原来把if中语句放在for语句的中间期望完成同样的功能,但实际上会出现bug这类问题的解决方法在于编程过程的把握。

debugee4debugee5算法本身的漏洞,没有把问题考虑周全,可能将同一个未访问的顶点多次放入栈中。debugee5中指针指来指去比较复杂,容易出错。这类问题的解决方法在于编程过程的把握。

debugee6:对于向量的应用不是很熟悉,对于迭代子也不了解,很多功能函数是基于向量迭代子的,所以,很多时候用迭代子比较好。但是如果直接用计数变量也可以,因为可以用再一次计数方法来得到相应位置的迭代子。

debugee7:对于指针的new的理解模糊,实际情况是new一个空间,把给定的指针的值改为new空间的首地址。因此,a=ba=newint这样的行为会使a的值改变,但是不会使b的值改变,这是很明显的。这是指针与普通变量的相似点。

附上代码,代码在DEV下编译通过。(代码有点乱,因为同时用了邻接表与邻接矩阵两种方式来锻炼下。)

<!--EndFragment-->
分享到:
评论

相关推荐

    编程过程中的新得,总结

    编程过程中的新得,总结,方便自己查看,每周的编程心得和总结。

    c++编程常遇问题总结

    编程四年过程中常遇问题总结,个人经验,很宝贵啊。。。。。。。

    方便自己使用的文档,编程过程中的总结

    方便自己使用的文档,编程过程中的总结。有利于自身编程能力的提升

    PLC编程学习心得总结

    它采用可编程序的存储器,用来在其内部存储执行逻辑运算、顺序控制、定时、计数和算术运算等操作的指令,并通过数字式、模拟式的输入和输出,控制各种类型的机械或生产过程,以下是PLC编程学习心得总结

    java多线程编程大总结

    java多线程编程大总结:Java 线程是 Java 语言中一个非常重要的部分,Java5 之前,多线程的语言支持还是比较弱的, 内容也较少,写一个复杂的多线程程序是相当有挑战性的。 在Java5 以后,Java 对多线程做了很多...

    汪文君高并发编程实战视频资源下载.txt

    │ 高并发编程第二阶段04讲、多线程的休息室WaitSet详细介绍与知识点总结.mp4 │ 高并发编程第二阶段05讲、一个解释volatile关键字作用最好的例子.mp4 │ 高并发编程第二阶段06讲、Java内存模型以及CPU缓存不一致...

    JDBC编程总结(包括各种数据库连接方法)

    个人学习JDBC过程中总结出来的一些经验,希望可以给你参考

    .net&VS;&SqlServer;编程小技巧经验总结

    编程小技巧(.net&VS;&SqlServer;)经验总结:本人在多年编程过程中,遇到了一些问题,通过自己的摸索得到了问题的解决。每解决一个问题均记录在此,希望其它编程者在遇到类似问题时可以借鉴。

    VC编程常见问题总结与分析

    VC编程常见问题总结与分析,是vc编程过程中总结出来的问题以及相关资料书籍收集到的资源。有助于学好VC。谢谢

    《工业机器人编程与仿真》实训报告

    《工业机器人编程与仿真》实训报告

    西门子PLC常见编程问题点总结归纳(S7-300_S7-1200).pdf

    西门子PLC常见编程问题点总结归纳(S7-300_S7-1200)

    jsp和js编程基本函数总结

    在用jsp编程过程中用到的基本函数用法总结,我会继续总结。

    梁肇新《编程高手箴言》

    本书是作者十余年编程生涯中的技术和经验的总结。内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及...

    蓝牙编程总结

    本文档主要总结了蓝牙编程的过程中可能遇到的一些问题,以及一些总结,希望能对大家带来些帮助。

    CSDN VC编程经验总结

    总结了在VC开发过程常用的一些知识点和技巧。希望后来者少走些弯路。

    proc ++ 编程经验总结

    proc 编程经验 SQLCA 的错误的处理 调用存储过程的方法

    Java面向对象编程思想

    最近看了不少的资料,在这里总结一下对此的心得体会。 所有的计算机程序都由两类元素组成:代码和数据。换句话说,程序还可以以它的代码或是数据为核心进行组织编写。也就是说,一些程序围绕“正在发生什么”编写,...

    编程高手箴言,操作系统,编程,cpu

    本书是作者十余年编程生涯中的技术和经验的总结。内容涵盖了从认识CPU、Windows运行机理、编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题的认知过程和透彻的分析,以及...

    《编程高手箴言》(梁肇新 著)

    本书是作者十余年编程生涯中的技术和经验的总结。内容涵盖了从认识CPU、Windows运行机理、 编程语言的运行机理,到代码的规范和风格、分析方法、调试方法和内核优化,内有作者对许多问题 的认知过程和透彻的分析,...

    Java集合框架使用总结

    数据结构对程序设计有着深远的影响,在面向过程的C语言中,数据库结构用struct来描述,而在面向对象的编程中,数据结构是用类来描述的,并且包含有对该数据结构操作的方法。 在Java语言中,Java语言的设计者对常用的...

Global site tag (gtag.js) - Google Analytics