大榕树——让我们共成长!
大榕树 myDrs.org
您的位置:大榕树 \ 编程       |  Logo语言   |  Pascal语言   |  信息学奥赛   |  高考保送    |  HTML版本
|  Pascal语言>>算法与技巧>>程序结构组织的技巧         本站全文搜索: 友情提示:

程序结构组织的技巧
http://www.mydrs.org  7/7/2001  大榕树


1 概述[/b]
这里我这是简单的说一下。一想到新内容我会补充的:)

1)自顶向下,逐步求精
意思就是,先写主程序,需要用子程序的地方尽管调用(虽然子程序还没有写),
直至完成主程序的框架(顶)。下面再分别完成各各子程序。
这样做的好处很明显:思路连贯,清晰,从全局入手,不会被众多小问题弄的
晕头转向。静态查错和调试也非常方便,程序可读性也极强。

2)子程序的大小
学过一点软件工程基本知识的同学应该知道,子程序因为起到了分割问题的作用
会降低编程复杂度,但过多的子程序会因为接口工作带来额外的程序量。我不
想借用那种N行一个子程序的建议,只是希望大家注意,子程序不能太多。常用
的代码写成子程序就可以了。

3)子程序的相互依赖关系。
我不想深入展开,只是提醒大家,少用全局变量,减少依赖性,增加独立性。这
会给调试带来极大的方便。

4)竞赛需要简洁和清晰的统一
一般来说,竞赛时更看中简洁,因为涉及到编程复杂度和调试复杂度,所以过程不易太多。

[b]2 美化你的程序
这是一个值得深入研究的问题。我在这里只是讲一点皮毛,给初学者引引路,
帮你们找到“感觉”。

源程序是给人看的。
不只有你是人,因此程序要让第二个人也能看懂^O^.
我知道你不想让别人看到你的程序,但N年以后可能你自己都看不懂了...
所以,我给你一些建议:

a.缩进式。就是每个层次空两格(也不一定是2格,看你的习惯了)。如:
for i:=1 to n do
for j:=1 to n do
if i+j>5 then
begin
i:=i+1;
j:=j-2;
end

就写成:
for i:=1 to n do
for j:=1 to n do
if i+j>5 then
begin
i:=i+1;
j:=j-2;
end

这样层次很清楚,也比较好看一点。

b.给变量取好记的名字。
如:i,j:循环变量
total:累加器
best:当前最优值
等等。主要也是看你的习惯了。注意一定不要引起混淆。
例如一个变量叫num,一个叫number,就难免会用错。

c.善用子程序。
例如:
begin
Init;
for i:=1 to n do
begin
Analyse(i);
Process(i);
AddToResult(i);
end;
end.
程序的作用和结构很明显,如果把init(),analyse(),process().addtoresult()代码放在这里,
就会显得非常臃肿,分不清哪些代码是干什么的,而且很不利于单独调试。

作 者:SRbGa
来 源:OIBH
共有2119位读者阅读过此文

  • 上篇文章其他基本编程方法
  • 下篇文章程序调试技巧

  • 发送邮件
    保存页面 打印文章 HTML版本 发表评论

    □- 近期热门文章 □- 相关文章
    1. NOIP2006竞赛大纲 [8306]
    2. 七类高中生具有保送资格 [5910]
    3. NOI2006获奖选手名单 [4955]
    4. 关于举办NOIP2006模拟赛的通告 [4106]
    5. Turbo Pascal各语句运行速... [3594]
    6. Turbo王者归来新Delphi免费... [3181]
    7. IOI2006我国4名选手全部获得金... [2945]
    8. 关于APIO2007与IOI2007... [2763]
    9. noip倒计时 by 枯叶蝴蝶 [2683]
    10. 朱泽园:思想上的金牌更重要 [2168]
    程序调试技巧
    程序结构组织的技巧
    从一题多解看解题方法
     

    关于本站 | 合作伙伴 | 联系方式
    大榕树 版权所有 ©1999-2006 www.myDrs.org 闽ICP备05000721号