程序题做题一般步骤

程序题做题一般步骤

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

一、读题

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

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

三、写总体思路

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

四、落实思路细节

具体到

  • 初值怎么选

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

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

五、写代码

六、Debug

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

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

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

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

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

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

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

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

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

静态调试的大致顺序

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

最后王牌

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

其他注意事项

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

posted @ 2021-10-28 00:46  砥安  阅读(517)  评论(0编辑  收藏  举报