位置:有考网 > 兴趣爱好>信奥赛C++> 信息学奥赛难不难?  正文

信息学奥赛难不难?

发布时间:2022-01-28 10:54:57来源:转载

一般初赛选手较害怕的就是阅读程序写输出的题目,尤其是一些比较复杂的题目。其中特别是一些递归程序,当它一层一层得自己调动、自己递归下去时,所以都会很头疼。

如果用常规的办法:

先在草稿纸上一行一行得去模拟代码执行、去跟踪所有变量运行的值的变化。

程序简单时其实情况还好,但当程序开始变得复杂,递归很多层后,时刻去跟踪、调整、记录每一层的变量会导致我的工作量变得很大,错误率也会随之提高。

其实仔细思考发现并不需要一行一行得模拟程序运行,更关键的是先读懂程序的目的。

比如写了一个程序后去阅读程序源代码,然后发现这个递归程序其实是去解一个斐波那契数列的第N项。在理解程序的意思后再去观察一些比较简单的输入,就会发现这个运行的结果和之前的理解是一致时,就可以大胆得对程序的理解直接去得到输出。

程序填空题其实也是如此,我们同样要把整个程序先读一遍,再特别认真读一下题干,当理解题目在干什么后,再针对性得去思考每一个空的目的。

初赛赛题即使不能完全看出程序的意图,也是能通过代入法、反例法等方法拿到大多数的分数。当然,这是要建立在同学会带入数据,有阅读程序经验的基础上。

由于初赛的程序不是由我们自己编写而是试题提供,部分程序不能完全分析出程序的意图(看不懂)其实很正常的,特别是阅读程序的问题,完善程序题目会交代程序的意图,相对来说会好一些。

面对这种情况,同学们要掌握的方法是代入法,直接将选项代入题目,检验每个选项的正确性,这是较基础较简单的方法。「基本上」适合所有题。

反例法/反证法则更适合于判断题,或者选手在考试中认为错/对但是不知道怎么证明的情况。

使用反例法的时候一般需要思考一些边缘情况(在阅读代码和完善代码中则需要结合代码)尝试去制造反例,很多时候一组很小的数据就可以成为反例。

而反证法则是假设命题为假的时候去推测可能产生的矛盾。

由于大家平时大多数情况下都是自己构建思路、自己编程,因此部分同学的程序阅读、模拟、分析能力会偏弱,这个需要通过反复训练,学会总结和寻找规律

西安C++少儿培训机构哪家靠前?
杭州信息学奥赛培训机构哪家好?
深圳比较不错的信奥赛培训班
信奥赛适合哪些孩子学?
长沙有没有专业的信息学奥赛培训机构?
杭州信息学奥赛培训机构排名靠前的是哪家?

相关内容: 信奥赛 信息学奥赛 信息奥赛

同类文章