数值运算举例:求数值解,例如求方程的根、求函数的定积分等。
非数值运算举例:人名排序,图书资料检索等.
三、 简单算法举例
为了理解如何设计算法,下面举几个算法的简单例子。
[例1] 有两个杯子A和B,分别盛有果汁和酒,要求将这两个杯子进行互换。
(请学生回答,并要求说清楚明确的步骤)
学生所回答的步骤就是算法的描述:
根据常识,必须增加一个空杯C作为过渡。
其算法表示
步骤1:先将A杯中的果汁倒在C杯中;
步骤2:再讲B杯中的酒倒在A杯中;
步骤3:最后将C杯中的果汁倒在B杯中。
此问题可以抽象为数值运算中的交换两个变量的值,简化为:
①A → C
②B → A
③C → B
[例2] 从十个数中挑选出最大的数。
创设情景:这个问题的思路可以用"打描台"来比喻。第一个同学先上讲台,然后第二个同学上去比试,胜者(个子高的)留在讲台上,依次轮流,一直到第十个人比完为止()一共九次)最后留在讲台上的同学就是胜者(个子最高的同学)。
算法描述:
1. 先任选一个数放在变量A中;
2. 将第二个数与变量A中的数进行比较,大者放在变量A中;
3. 再将第三个数与变量A中的数进行比较,大者放在变量A中;
:
:
:
10. 最后将第十个数与变量A中的数进行比较,大者放在变量A中。
这样写算法虽然正确,但是太烦琐了,可以简化为如下:
1. 数X → A,计数器 0 → N;
2. 下一个数Y与A比较,大者→ A;
3. N + 1 → N;(增加一次比较次数)
若N ﹤ 9,执行第2步,否则停止循环,此时A中的数最大。