8年级下册信息技术 算法的概念及其描述 逐字稿-3,211字
师:同学们好,今天我们来上算法的第一课时。前面一节课我们已经学习了计算机程序以及程序与软件之间的关系,还学会用VB语言编写程序来解决简单问题。在程序设计时,首先要对解决的问题进行分析,接着设计解决问题的方法和步骤,最后选用合适的计算机语言来描述这些方法和步骤。所以,掌握解决问题的方法和步骤是学习程序设计的基础。关于解决问题的方法步骤设计,我们来看一个例题。烧水泡茶需要做四项工作:一、洗刷茶具;二、拿茶叶;三、烧开水;四、沏茶。如果是你,会如何安排泡茶过程呢?请同学们思考一下。
著名数学家华罗庚先生为烧水泡茶提出了两种解决方法。方法一:第一步烧水;第二步水烧开后洗刷茶具、拿茶叶;第三步沏茶。方法二:第一步烧水;第二步在烧水过程中洗刷茶具、拿茶叶;第三步水烧开后沏茶。这两种方法都是三步。如果用时间标定,烧水需要10分钟,洗刷茶具2分钟,拿茶叶1分钟,沏茶2分钟。方法一需要15分钟,方法二需要12分钟。同样是烧水泡茶,只是更改了步骤,时间就节约了。由此可见,解决同样一个问题,采用不同方法,效果和效率可能大不相同。烧水泡茶仅仅是步骤的变换,就直接影响了所需时间。
最合理的方法和步骤是解决问题的关键。那么,什么是解决问题的方法和步骤呢?在计算机程序里,它专指算法。简单来说,算法就是解决问题的方法和步骤。算法有5个特征:第一个是有穷性,每一个算法都需在有限步骤结束;第二个是确定性,每一步算法都有确切定义,不能存在二义性;第三个是可行性,算法的每一个步骤都应能有效执行;第四个是输入,一个算法要有0个或多个输入;第五个是输出,一个算法要有一个或多个输出,没有输出的算法是没有意义的。
关于算法的描述怎么分类呢?算法的描述有两类,第一个是自然语言。实际上,我们讲解烧水泡茶过程中说的第一步、第二步、第三步,就是用自然语言来描述的。第二个是流程图。
下面我们来看用自然语言描述求解s = 1 + 2 + 3 + … + 99 + 100的过程。开始:第一步,1 + 2 = 3;第二步,3 + 3 = 6;第三步,6 + 4 = 10……第九十九步,4950 + 100 = 5050,最后结束。用自然语言描述算法的优点是通俗易懂,符合我们的表达习惯,但缺点也很明显,繁琐冗长,缺乏直观性和简洁性。
那么能不能避免自然语言的这些缺点呢?我们来看下面一张图,同样是描述求解该等式的过程。首先看右侧的图,有开始和结束两个椭圆形框。第一个矩形框将0赋值给s,将1赋值给i;接着让s + i赋值给s;第三个矩形框让i + 1赋值给i;然后到菱形框,菱形框中判断i是否大于100,有两个分支,一是输出s,如果否,就接着继续运行s + i赋值给s,i + 1赋值给i,再判断i是否大于100,如此循环往复,直到i大于100输出s。像这样用图形描述的算法,我们称为用流程图描述。用流程图描述算法的优点是直观、易懂、简洁,而且逻辑关系非常清晰。
在刚刚的流程图上,我们看到几个基本图形,来认识一下。第一个,开始和结束用椭圆符号表示算法的开始或结束;第二个,输入输出用平行四边形图形表示算法中变量的输入或输出;第三个,处理用矩形框表示算法中的变量计算与赋值;第四个,判断用菱形框表示算法中的条件判断。最后,这些基本图形用流程线连接,表示算法中的流向。流程图的结构由三种结构嵌套组合而成,分别是顺序结构、分支结构和循环结构。下面我们逐一来看这三个结构。
顺序结构的特点是从上到下依次执行指令组a,然后执行指令组b。分支结构是先进行条件判断,再根据判断结果选择执行a或者b指令组,即条件成立时执行指令组a,条件不成立时执行指令组b。循环结构是先进行条件判断,当条件成立时就重复执行指令组a,条件成立执行指令组a后接着继续循环,如果条件不成立,则进入下一个流程。其实,刚刚求解s = 1 + 2 + 3 + … + 100就用到了循环结构。