《《算法案例》同步训练题2544.pdf》由会员分享,可在线阅读,更多相关《《算法案例》同步训练题2544.pdf(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 1 算法案例同步训练题 一、解答题 1、写出用二分法求方程 x3x1=0 在区间1,1.5上的一个解的算法(误差不超过 0.001),并画出相应的程序框图及程序.2、我国古代数学家张邱建编张邱建算经中记有有趣的数学问题:“今有鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一凡百钱,买鸡百只,问鸡翁、母、雏各几何?”你能用程序解决这个问题吗?3、我国算经十书之一孙子算经中有这样一个问题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二.问物几何?答曰:二十三.”你 能用程序解决这个问题吗?2 4、用秦九韶算法写出求 f(x)=1+x+0.5x2+0.16667x3+0.04167x4+
2、0.00833x5 在 x=0.2 时的值的过程.5、用冒泡排序法将下列各数排成一列:8,6,3,18,21,67,54.并写出各趟的最后结果及各趟完成交换的次数.6、(1)将 101111011(2)转化为十进制的数;(2)将 53(8)转化为二进制的数.以下是答案 一、解答题 3 1、用二分法求方程的近似值一般取区间a,b具有以下特征:f(a)0,f(b)0.由于 f(1)=1311=10,f(1.5)=1.531.51=0.8750,所以取1,1.5中点25.11=1.25 研究,以下同求 x22=0 的根的方法.相应的程序框图是:开始a=1b=1.5c=0.001是是是否否否f aaa
3、()=-1f xxx()=-1f x()=0?f a f x()()033x=a b+2a x=b x=a b-c?输出x 程序:a=1 b=1.5 c=0.001 DO x=(a+b)/2 f(a)=a3a1 f(x)=x3x1 IF f(x)=0 THEN PRINT “x=”;x ELSE 4 IF f(a)*f(x)0 THEN b=x ELSE a=x END IF END IF LOOP UNTIL ABS(ab)=c PRINT “方程的一个近似解 x=”;x END 2、设鸡翁、母、雏各 x、y、z 只,则,100100335zyxzyx 由,得 z=100 xy,代入,得 5
4、x+3y+3100yx=100,7x+4y=100.求方程的解,可由程序解之.程序:x=1 y=1 WHILE x=14 WHILE y=25 IF 7*x+4*y=100 THEN z=100 xy PRINT “鸡翁、母、雏的个数别为:”;x,y,z END IF y=y+1 WEND x=x+1 y=1 WEND END(法二)实际上,该题可以不对方程组进行化简,通过设置多重循环的方式得以实现.由、可得 x 最大值为 20,y 最大值为 33,z 最大值为 100,且 z 为 3 的倍数.程序如下:x=1 y=1 z=3 WHILE x=20 WHILE y=33 WHILE z=100
5、 IF 5*x+3*y+z/3=100 AND 5 x+y+z=100 THEN PRINT “鸡翁、母、雏的个数分别为:”;x、y、z END IF z=z+3 WEND y=y+1 z=3 WEND x=x+1 y=1 WEND END 3、设物共 m 个,被 3,5,7 除所得的商分别为 x、y、z,则这个问题相当于求不定方程 27,35,23zmymxm 的正整数解.m 应同时满足下列三个条件:(1)m MOD 3=2;(2)m MOD 5=3;(3)m MOD 7=2.因此,可以让 m 从 2 开始检验,若 3 个条件中有任何一个不成立,则 m 递增 1,一直到 m 同时满足三个条件
6、为止.程序:m=2 f=0 WHILE f=0 IF m MOD 3=2 AND m MOD 5=3 AND m MOD 7=2 THEN PRINT “物体的个数为:”;m f=1 ELSE m=m+1 END IF WEND END 4、先把函数整理成 f(x)=(0.00833x+0.04167)x+0.16667)x+0.5)x+1)x+1,按照从内向外的顺序依次进行.x=0.2 a5=0.00833 V0=a5=0.008333 a4=0.04167 V1=V0 x+a4=0.04 a3=0.016667 V2=V1x+a3=0.15867 a2=0.5 V3=V2x+a2=0.46
7、827 a1=1 V4=V3x+a1=0.90635 a0=1 V5=V4x+a0=0.81873 f(0.2)=0.81873.5、每一趟都从头开始,两个两个地比较,若前者小,则两数位置不变;否则,调整这两个数的位置.6 解:第一趟的结果是:6 3 8 18 21 54 67 完成 3 次交换.第二趟的结果是:3 6 8 18 21 54 67 完成 1 次交换.第三趟交换次数为 0,说明已排好次序,即 3 6 8 18 21 54 67.6、解:(1)101111011(2)=128+027+126+125+124+123+022+121+1=379.(2)53(8)=581+3=43.余数4321105212222220110101 53(8)=101011(2).