meili 发表于 2022-10-21 20:47:16

国庆期间,合肥信息学竞赛备考攻略 标签:信息学

<p>2023年合肥市信息学竞赛初赛将在10月12日举行,参加信息学竞赛的考生,已经规划好了国庆期间的信息学竞赛备考计划了吗?根据合肥45中老师的介绍:“信息学竞赛的残酷不在复赛而在于初赛”,所以,参加了今年信息学竞赛的考生,国庆期间恐怕要“窝”在电脑前研究备战计划了。本文梳理了往年信息学竞赛程序设计的基本方法,希望可以给合肥考生的国庆备考以启迪。</p><p><strong>青少年信息学(计算机)竞赛:程序设计的基本方法</strong></p><p><strong>一、模块化:</strong></p><p>(1)把一个较大的程序划分为若干子程序,每一个子程序解决一个总是独立成为一个模块;</p><p>(2)每一个模块又可继续划分为更小的子模块;</p><p>(3)程序具有一种层次结构。注:运用这种编程方法,考虑问题必须先进行整体分析,避免边写边想。</p><p><strong>二、自顶向下:</strong></p><p>(1)先设计第一层(即:顶层),然后步步深入,逐层细分,逐步求精,直到整个问题可用程序设计语言明确地描述出来为止。</p><p>(2)步骤:首先对问题进行仔细分析,确定其输入、输出数据,写出程序运行的主要过程和任务;然后从大的功能方面把一个问题的解决过程分成几个问题,每个子问题形成一个模块。</p><p>(3)特点:先整体后局部,先抽象后具体。</p><p><strong>三、自底向上:</strong></p><p>(1)即先设计底层,最后设计顶层;</p><p>(2)优点:由表及里、由浅入深地解决问题;</p><p>(3)不足:在逐步细化的过程中可能发现原来的分解细化不够完善;</p><p>(4)注意:该方法主要用于修改、优化或扩充一个程序。</p><p><strong>例子:</strong>求1到n之间的素数。解:要求1到n之间的素数,程序要做的事就是从1开始依次找,判断是否是素数,是则打印出来,否则继续往下找,直到n为止。于是初步设想成:</p><p>beginread(n);number:=2;</p><p>whilenumber〈ndo</p><p>begin</p><p>ifnumber是一个素数thenwrite(number);</p><p>number取下一个值;</p><p>end;</p><p>end.</p><p>第二步:细化“number是一个素数”及“number取下一个值”。</p><p>(1)细化“number是一个素数”:“number是一个素数”这是一个布尔值,当number是一个素数时为true,否则为false。细化如下:</p><p>k:=2;lim:=number-1;repeat</p><p>ifnubmer能被k整除then</p><p>prim:=falseelsebegin</p><p>k:=k+1;</p><p>prim:=true;</p><p>end;</p><p>untilnot(prim)or(k达到lim);</p><p><strong>编后语:</strong>2023年信息学竞赛在即,参赛的考生国庆期间要制定好考前冲刺规划。竞赛在即,做过多的练习题已经作用不大,考生最重要的是在国庆期间放松心情,查漏补缺,重点突破“短板”,充满自信的应对十一过后的信息学竞赛。</p>
页: [1]
查看完整版本: 国庆期间,合肥信息学竞赛备考攻略 标签:信息学