内容正文:
2.2 算法的控制结构
这是我们上节课学习的“公式法求一元二次方程的根”的算法的流程图。我们来分析其中的一些步骤:对于输入二次项系数a,一次项系数b和常数c;计算判别式delta的值这2个步骤,每次执行算法的时候,都会按顺序执行的,叫做顺序结构。
对于根据delta的值是否>=0,我们输出方程有实数根,或者方程无实数根,叫做选择结构。
而循环结构在这一算法流程图中没有体现。
我们来分别详细介绍这3种结构:
1、顺序结构
顺序结构是各个步骤按照先后顺序一次执行的一种结构,如左图所示,先执行步骤1,再执行步骤2,顺序结构有2个特点:一是每个步骤依次执行,比如步骤1一定在步骤2之前执行;二是每个步骤一定会且只会被执行一次。
我们来看顺序结构的实例:购买火车票,这4个步骤就是按照我们刚刚所说的2个特点执行的。
2、 分支结构
分支结构也叫选择结构。它根据条件判断,选择不同的分支执行:条件为真时执行Y指向的语句,为假时执行N指向的语句。选择结构的特点是必有一个分支被执行,其余分支不执行。
我们刚刚介绍的是分支结构的一种形态——双分支结构。除此之外,分支结构还有2种形态:单分支结构和多分支结构。
单分支结构如左图所示,特点是当表达式为真的时候,执行语句块,否则什么都不执行。比如张三的爸爸希望他考第一。如果张三考了第一,那他爸爸就夸奖他。这就是一个单分支结构的例子。双分支结构,比如根据天气是否晴朗选择上体育课的地点:如果天气晴朗就选择在操场上课,否则就选择在教室或者体育馆上课。
右边的流程图是求x、y、z三者最大值的流程图。
在输入三者的值之后,我们先判断x>y是否为真,为真就把x赋值给max,否则把y赋值给max,经过这个双分支结构,我们就把x和y两者的最大值放到max中了。再判断z是否大于max,是就把z赋值给max,否就啥也不做。经过这个单分支结构,max和z的最大值被放在max里了,最后输出max的值,我们就完成了任务。
多分支结构的流程图如图所示。多分支结构的执行过程是先判断表达式1是否为真,表达式1为真就执行其对应的语句块1,否则判断表达式2,表达式2为真就执行其对应的语句块2。
以此类推……当所有的表达式都为假的时候,如果我们有语句n+1,就执行他,否则啥也不做。
多分支结构的一个例子就是全国计算机等级考试的成绩等第判定。判断成绩是否>=90,是就是优秀,否则判断成