首页 理论教育 求解6个数中的最大值与x6交换,并继续交换前5个数中的最大值与x5

求解6个数中的最大值与x6交换,并继续交换前5个数中的最大值与x5

时间:2023-07-20 理论教育 版权反馈
【摘要】:,xn).求出x1,x2,x3,x4,x5,x6中的最大值与x6互换;再求出x1,x2,x3,x4,x5中的最大值与x5互换;依此类推.解答①n←6;②求得(M,k)=max(x1,x2,…

求解6个数中的最大值与x6交换,并继续交换前5个数中的最大值与x5

自古以来,人们就常把解题的技术固定为一个公式或一个解题程序,使得其他人在解决同类问题时,只要将有关数据代入公式,或按部就班地执行解题程序,就可以得到结果.

随着计算机技术的迅速发展,人们正在把越来越多的工作交给计算机来实现.但是计算机本身不具备分析能力和设计能力,它的行为需要人的指挥.所以算法学习是必要的任务.

方法简述

1.分类讨论

例1 设计一个算法,求y=|x|的值.

点拨 由于绝对值的值与变量x 的正负有关,所以必须进行分类讨论.

解答 (1)输入x 的值;

(2)进行判断,如果x≥0,则f(x)=x,否则f(x)=-x;

(3)输出结果.

反思 通过判断语句完成算法的设计.

例2 任意给定一个大于1的正整数n,设计一个算法,求出n的所有因数.

点拨 是否为n的因数,必须由该数是否能整除n来进行研究.

解答 (1)输入正整数n;

(2)初始a为1;

(3)判断n是否能被a 整除:若是,输出a,然后a累加1;

(4)重复步骤(3),直至a大于n.

反思 判断语句和循环语句的结合使用.

2.一题多解

对于同一个问题,从不同的角度进行分析和思考,并借助不同的方法进行求解.

例3 下面所列的是求x1,x2,x3,x4,x5中最大值及序号的算法,请将该算法补充完整.

①M←x1,k←1;

②如果M<x2,则___________,k←2;

③如果M<x3,则M←x3;___________;

④__________________________________;

⑤___________________________________;

⑥输出最大值M 和序号k,结束计算.

点拨 通过比较的方式,如果变量xi(i=1,2,3,4,5)较大,则赋给M,将五个变量都进行比较,则问题得到解决.

解答 ②M←x2;③k←3;④如果M<x4,则M←x4,k←4;⑤如果M<x5,则M←x5,M←5.

反思 通过判断语句和顺序语句的结合,逐次进行比较.

例4 下面所列的是例3中的简化算法,请在空格上填上合适的内容.

①M←x1,k←1,n←2;

②如果M<xn,则______________________;

③n←n+1;

④如果_________,则返回②;否则,输出最大值M 和序号k,结束计算.

点拨 问题的本质仍然是比较大小和赋值,不同的是可以通过循环语句避免算法的重复.

解答 ②M←xn,k←n;④n≤5.

反思 循环语句将重复的算法结构进行简化,并且在多次循环上有较大优势.

3.冒泡法

冒泡法即冒泡排序,是一种计算机科学领域的较简单的排序算法.它重复地走访要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来.走访数列的工作是重复地进行直到不再需要交换,也就是说该数列已经排序完成.

例5 写出将x1,x2,x3,x4,x5,x6按由小到大顺序排列的一种算法.

点拨 将“n个数中的最大数M 及其序数k”的算法记为(M,k)=max(x1,x2,x3…,xn).(www.xing528.com)

求出x1,x2,x3,x4,x5,x6中的最大值与x6互换;再求出x1,x2,x3,x4,x5中的最大值与x5互换;依此类推.

解答 ①n←6;

②求得(M,k)=max(x1,x2,…,xn);

③xk←xn,xn←M;

④n←n-1;

⑤如果n≥2,返回②;否则,输出x1,x2,x3,x4,x5,x6并结束运算.

反思 步骤③中,xk←xn,xn←M 就可以实现最大值与xn的互换,顺序不能颠倒;如果按xn←M,xk←xn顺序执行,xn的值就消失了,这样就出现了逻辑上的错误.

易错解读

例6 一个完整的程序框图至少包含( ).

A.终端框和输入、输出框

B.终端框和处理框

C.终端框和判断框

D.终端框、处理框和输入、输出框

解答 A

易错点 一个完整的程序框图至少需包括终端框和输入、输出框.对于处理框,由于输出框含有计算功能,所以可不必有.

例7 下列说法正确的是________(填序号).

①程序框图中的图形符号可以由个人来确定;

也可以用来执行计算语句;

输入框只能紧接在起始框之后;

④程序框图一般按从上到下、从左到右的方向画;

⑤判断框是具有超出一个退出点的唯一符号.

解答 ④⑤

易错点 由于画程序框图要使用标准的程序框符号,故①错;由于判断框的功能是判断某一条件是否成立,故②错;③错,④⑤正确.

经典训练

1.下列算法:①z←x;②x←y;③y←z;④输出x,y.这个算法的作用是________.

2.算法的三种基本结构是_________、________、_______.

3.计算机是将信息转换成二进制进行处理的,二进制即“逢二进一”,如(1101)2表示二进制数,将它转换成十进制形式,是1×23+1×22+0×21+1×20=13,那么二进制数转换成十进制的形式是__________________________.

4.用二分法求方程x2-2=0的近似根的算法中要用哪种算法结构? ( ).

A.顺序结构 B.条件结构 C.循环结构 D.以上都用

5.给出以下四个问题:

①给出x,输出它的相反数;

②求面积为6的正方形的周长;

③求三个数a,b,c中的最大数;

④求函数的函数值.

其中不需要用条件语句来描述其算法的有( ).

A.1个 B.2个 C.3个 D.4个

6.写出交换两个大小相同的杯子中的液体(A 杯子中装水、B杯子中装酒)的一个算法.

7.已知一个三角形的三边边长为a,b,c,则三角形的面积为S= p(p-a)(p-b)(p-c),这个公式被称为海伦—秦九韶公式.利用海伦—秦九韶公式设计一个算法,画出算法的程序框图,并求出三边边长分别为5,6,7的三角形的面积.

8.对于斐波那契数列:f1=1,f2=1,fn=fn-1+fn-2(n≥3),写出计算f20和前20项和S20的算法.

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈