zoukankan      html  css  js  c++  java
  • 程序题做题一般步骤

    程序题做题一般步骤

    (持续更新中(* ^ _ ^ *)  )

    一、读题

    • 翻译题目意思
    • 注意题目的细节(比如:输出格式,数据范围等等)

    二、工整地在草稿纸上把题目给的样例模拟一遍,计算,写写画画等等(这步一定要做,不然会浪费很多时间)

    三、写总体思路

    • 模块思想(不同的功能用分为不同的模块,比如输出模块,输入模块)如果有使用函数,通常一个函数为实现一种功能。
    • 大化小,对于一个大的问题,把它肢解为小问题,从小到大地推导

    四、落实思路细节

    具体到

    • 初值怎么选

    注意,任何局部变量在使用之前都要初始化,不管是输入给它一个数还是在中途通过赋值语句

    • 变量怎么设
    • 循环设几层
    • 如何输出
    • 变量类型

    五、写代码

    六、Debug

    • Debug的基本步骤
      1. 找数据
      2. 静态、动态调试
      3. 重复以上直到正确

    Q:为什么要Debug?
    A:有数据过不了

    而过不了的数据绝大多数是特殊数据。

    现在很多情况下我们是没办法知道我们没通过的具体是什么数据,这就要求我们在Debug的时候自己去想特殊数据来测试我们自己的程序。基本上是越特殊越好。千万不要仅仅只用样例来Debug,通常而言,出题人会把样例设计得正确与不正确的程序都可以通过。这是血的教训 别问我怎么知道的

    当我们有了这组bug数据之后,我们就可以对代码进行调试了。调试分两种:动态调试静态调试

    动态调试:现阶段我们能使用的功能只有查看程序运行中的变量的值。而且不同的编译器有不同的调试方式。
    静态调试:在程序中使用printf语句将自己要查看的变量输出出来。具体格式及使用方法取决于程序员。

    我个人推荐静态调试。理由如下

    • 静态调试的稳定性高,兼容性好,任何IDE环境,只要能编译,就能静态调试。
    • 动态调试对程序的查看并不如静态调试灵活,且现在阶段的程序规模不大,没必要使用动态调试。

    在静态调试里面,我们甚至可以输出( •̀ ω •́ )✧)来指示程序是否运行到某位置。

    静态调试的大致顺序

    1. 检查赋值语句
    2. 检查输入
    3. 检查中间的计算
    4. 检查输出

    最后王牌

    1. 如果你在尝试了静态调试之后还是没思路,那么我们还有最后王牌,那就是在草稿纸上手动运行。这个方法虽然笨,且耗时有点长,但是很有用
    2. 有些错误我们是完全不知道,但我们可能一直以为它是对的。这种情况下,我们就要进行等值替换,对每个模块进行简单化的替换。把高级的等值变成最最最低级的,确保一定能够正确执行,然后再去看看哪里错了

    其他注意事项

    别用isalpha() (第四次作业的第3题用它就过不了,我也不知道为什么)

  • 相关阅读:
    结巴分词
    Python如何将RGB图像转换为Pytho灰度图像?
    多套方案来提高python web框架的并发处理能力
    python使用web.py开发httpserver,解决post请求跨域问题
    关于socket知识整理
    SQL注入实验
    什么是内存(一):存储器层次结构
    内存剖析2
    JDBC的事务处理 JDBC事务处理 JDBC教程
    SQL注入绕过的技巧总结
  • 原文地址:https://www.cnblogs.com/mitnick/p/15468338.html
Copyright © 2011-2022 走看看