Page 99 - 高中 信息技术 必修1 数据与计算
P. 99
4.4 运用循环结构描述问题求解过程
问 题
项目小组经过讨论,最后选择购买单价分别为1.8元的笔记本、1.9元的笔、2.1元的
小饰品作为活动的奖品和纪念品,每一种物品至少买100件,并且尽可能地用完1000元经
费。如何设计方案,才能实现购买物品数量最多呢?如数量相同的情况下余额最小的方案
为最佳,则最佳方案中每一种物品的数量是多少?余额是多少?
思 考
如何运用循环嵌套的方法编程解决上述的最优采购方案设计问题?
③y从100~526穷举;广东教育出版社
观 察
要解决这个问题,需要用到循环嵌套的知识,下面提供了其中一种解法:
(1)分析问题。
设购买单价为1.8元、1.9元、2.1元的物品数量分别为x,y,z,当前余额为r元,所买
*
*
物品总数量为s,根据题意有下面关系式:1.8x+1.9y+2.1z≤1000(x,y,z∈N ,N 为自
然数),我们分别将x,y,z从100至555,526,476逐个穷举,如果x,y,z的值满足式子
*
*
1.8x+1.9y+2.1z≤1000(x,y,z∈N ,N 表示自然数),如x+y+z>s,则s=x+y+z,r=1000-
(1.8x+1.9y+2.1z),并记录此时x,y,z的值;如x+y+z=s,且1000-(1.8x+1.9y+2.1z)<r,
则r=1000-(1.8x+1.9y+2.1z),并记录此时x,y,z的值。
(2)设计算法。
根据上述的分析,可设计出如下的算法:
①令x1=100,令y1=100,令z1=100,令s=300,令r=1000-(100×1.8+100×
1.9+100×2.1);
②x从100~555穷举;
④z从100~476穷举;
⑤如果1.8x+1.9y+2.1z≤1000,若x+y+z>s,则s=x+y+z,r=1000-(1.8x+1.9y+2.1z),
x1=x,y1=y,z1=z;若x+y+z=s,且1000-(1.8x+1.9y+2.1z)<r,则r=1000-
(1.8x+1.9y+2.1z),x1=x,y1=y,z1=z;
⑥转步骤④;
⑦转步骤③;
⑧转步骤②;
⑨输出x1,y1,z1,s和r的值。
(3)编写程序。
根据上面设计的算法,编写出解决该问题的程序(见配套学习资源包“第四章\课本
素材\程序4-7”)如下:
91 91
37X1939 第四章.indd 91 2019/5/18 13:06:37