[例1] 已知三个单元存放了变量..的值.试给出一个算法.顺次交换.. 的值(即取的值.取的值.取的值).并画出流程图. 错解:第一步 第二步 第三步 流程图为 图13-1-3 错因:未理解赋值的含义.由上面的算法使得.均取的值. 举一形象的例子:有蓝和黑两个墨水瓶.但现在却把蓝墨水装在了黑墨水瓶中.黑墨水错装在了蓝墨水瓶中.要求将其互换.请你设计算法解决这一问题.对于这种非数值性问题的算法设计问题.应当首先建立过程模型.根据过程设计步骤完成算法. 我们不可将两个墨水瓶中的墨水直接交换.因为两个墨水瓶都装有墨水.不可能进行直接交换.正确的解法应为: S1 取一只空的墨水瓶.设其为白色, S2 将黑墨水瓶中的蓝墨水装入白瓶中, S3 将蓝墨水瓶中的黑墨水装入黑瓶中, S4 将白瓶中的蓝墨水装入蓝瓶中, S5 交换结束. 正解:第一步 {先将的值赋给变量.这时存放的单元可作它用} 第二步 {再将的值赋给.这时存放的单元可作它用} 第三步 {同样将的值赋给.这时存放的单元可作它用} 第四步 {最后将的值赋给.三个变量..的值就完成了交换} 流程图为 图13-1-4 点评:在计算机中.每个变量都分配了一个存储单元.为了达到交换的目的.需要一个单元存放中间变量. [例2]已知三个数...试给出寻找这三个数中最大的一个算法.画出该算法的流程图. 解:流程图为 图13-1-5 点评:条件结构可含有多个判断框.判断框内的内容要简明.准确.清晰.此题也可将第一个判断框中的两个条件分别用两个判断框表示.两两比较也很清晰.若改为求100个数中的最大数或最小数的问题则选择此法较繁琐.可采用假设第一数最大将第一个数与后面的数依依比较.若后面的数较大.则进行交换.最终第一个数即为最大值. 点评:求和时根据过程的类同性可用循环结构来实现.而不用顺序结构. [例3]画出求的值的算法流程图. 解:这是一个求和问题.可采用循环结构实现设计算法.但要注意奇数项为正号.偶数项为负号. 思路一:采用-1的奇偶次方来解决正负符号问题, 图13-1-6 图13-1-7 思路二:采用选择结构分奇偶项求和, 图13-1-8 思路三:可先将化简成.转化为一个等差数列求和问题.易利用循环结构求出结果. [例4] 设计一算法.求使成立的最小正整数的值. 解: 流程图为 图13-1-9 点评:这道题仍然是考察求和的循环结构的运用问题.需要强调的是求和语句的表示方法.若将题改为求使成立的最大正整数的值时.则需注意的是输出的值. [例5]任意给定一个大于1的整数n.试设计一个程序或步骤对n是否为质数做出判断. 解:算法为: S1 判断n是否等于2.若n=2.则n是质数,若n>2.则执行S2 S2 依次从2-n-1检验是不是的因数.即整除n的数.若有这样的数.则n不是质数,若没有这样的数.则n是质数. 点评:要验证是否为质数首先必须对质数的本质含义作深入分析: (1)质数是只能被1和自身整除的大于1的整数. (2)要判断一个大于1的整数n是否为质数.只要根据定义.用比这个整数小的数去除n.如果它只能被1和本身整除.而不能被其它整数整除.则这个数便是质数. 图13-1-10 [例6]设计一个求无理数的近似值的算法. 分析:无理数的近似值可看作是方程的正的近似根.因此该算法的实质是设计一个求方程的近似根的算法.其基本方法即运用二分法求解方程的近似解. 解:设所求近似根与精确解的差的绝对值不超过0.005,算法: S1 令.因为,所以设 S2 令,判断是否为0,若是,则m为所求;若否,则继续判断大于0还是小于0. S3 若>0,则;否则,令. S4 判断是否成立.若是.则之间的任意值均为满足条件的近似根,若否.则返回第二步. 点评:二分法求方程近似解的算法是一个重要的算法案例.将在第三节中详细阐述. 查看更多

 

题目列表(包括答案和解析)

已知两个单元分别存放了变量xy,下面描述交换这两个变量的值的算法中正确的为(  )

A.第一步 把x的值给y;第二步 把y的值给x.

B.第一步 把x的值给t;第二步 把t的值给y;第三步 把y的值给x.

C.第一步 把x的值给t;第二步 把y的值给x;第三步 把t的值给y.

D.第一步 把y的值给x;第二步 把x的值给t;第三步 把t的值给y.

查看答案和解析>>


同步练习册答案