就这个问题而言,我觉得很有必要写一个贴子,大家知道,我们课本上提供的表同算法实现结果值的方法有很多,其中,比较典型的有“自然语言表示法”,“传统语言表示法”、“传统流程图表示法”、“N-S流程图表示法”、“伪代码表示法“。 这些算法在谭浩强教授主编的《C程序设计》中第二章提供得非常详细。所以,我觉得我就没有必要在这里写了。 我想说的,就是在我们学习了“算法”以后,我们在解决一个问题;通常会进行总结,每个程序员都会潜意识的形成一种属于自己独有的方式来实现处算法(描述)。我希望能够以我开个头;大家都能将自己经过长时间积累形成的一种风格,贡献出来;然后再相互学习,最终达到实现”最佳算法“。 我们大家如果接触过一些关于C语言程序设计的书,都知道;对于大型的实现多功能的程序;采用当然是”自顶而下;逐步细分“的原则(注:这里说的只是对过程程序设计的方法)但在这里,我建议不做我们讨论的对象。我希望各位网友能够以一些小程序为例,以”点“带”面“,以更形象更容易理解的语句来讲述自己总结出来的算法。 虽然,书本上都提供了相应的科学的算法。但是,我们在真正解决一个问题时;通常都不会固化的搬套。 下面,我就以编一个”要求用户输入打印行数,并进行输出相应的直角三角形“为例来说明,我是如何实现对一个问题的算法的。 我看了这个题目之后,我的脑海中大致浮现出了可能输出的结果: * ** *** ...(略)
然后,我采用“自然语言”来简要的说明要嗵实现的几个过程: A:询问用户输入的行数 B:主体实现部分,打印出相应的结果 接下来,我采用的是“伪代码"来细分用"自然语言"列出的过程.
A: main() { printf("please to number:"); scanf("%d",&n); B: for(i=1;i<=n;i++) {for(j=0;j<i;j++) printf("*"); } 接下来,对用"伪代码“写的部分进行完善;最后,再将其组合,根据上面出现的变量,将其进行定义。 main() {int i,j,n; printf("please to number:"); scanf("%d",&n); for(i=1;i<=n;i++) {for(j=0;j<i;j++) printf("*");} } 再接下来,就是输入到电脑中,进行调试,让源代码更加人性化,更完善化,最后得出的完整的代码如下: #include<stdio.h> main() {int i,j,n; printf("\n\n please to number:"); scanf("%d",&n); for(i=1;i<=n;i++) {for(j=0;j<i;j++) printf("*"); printf("\n");} } (本文完!)
---------------------------------------------------------------
个人主页:wwweye.126.com
E-mail:ribdsiq@163.com
----------------------------------------------------------------
[此贴子已经被作者于2004-10-05 21:21:34编辑过]