作者其他文章
【导学案】4.4 设计购买纪念品的最佳方案——项目实施3——运用选择结构描述问题求解过程
发布者:葛小英发布时间:2024-04-20 18:30:44阅读(19) 评论(0) 举报
课前准备】
1.快速登录平台
2.回到导学案页面,阅读导学案,各小组根据项目选题及拟订的项目方案,结合本节所学知识,开展探究活动
【项目选题】
本章项目学习活动大主题,生活中常见的购买物品最佳方案 1.设计购买电信服务的最佳方案 2.设计购买家用电器的最佳方案 3.设计购买图书的最佳方案 4. 设计购买纪念品的最佳方案(例) |
【项目实施】
(一)分析相应的程序设计语言的基础知识。
(二)分析所选程序设计语言的特点。
(三)运用顺序结构描述问题求解过程
(四)运用选择结构描述问题求解过程
(五)运用循环结构描述问题求解过程
【问题1】
项目小组成员在某购物网站上了解到某种笔记本搞优惠活动,规定一次购买6本以上 (含6本)10本以下(含10本)打九折,一次购买11本以上(含11本)打八折。怎样根据笔记本的单价和购买数量编写程序计算总费用?
【分析】
解决上述问题的方法有多种,其中一种步骤如下:
(1)分析问题——学习相关知识。
设项目小组购买笔记本的数量为s本,笔记本的单价为p元,折扣系数为j,总费用为t。根据题意,有:
如果s<6,则j=1.0;
如果s≥6而且s≤10,则j=0.9;
如果s≥11,则j=0.8;
又t=s×p×j,求出t的值即为所求的总费用。
项目实施3 | 探究内容 | 知识与技能 | 具体活动 | 相关学习资源 | 学科核心素养 |
运用选择结构描述“购买笔记本的费用优惠” 问题求解过程 | ify语句的应用 |
2.单分支、双分支、If语句嵌套的格式及使用方法 3.运用选择结构描述问题的求解过程 | 教材:P76-85 4.3 运用选择结构描述问题求解过程 | ||
(2)设计算法。
根据上面对问题的分析,解决问题的算法描述 如下:
①输入s,p的值;
②如果s<6,则j=1.0;
③如果6≤s≤10,则j=0.9;
④如果s≥11,则j=0.8;
⑤t=s×p×j;
⑥输出t的值;
⑦结束。
(3)流程图
算法的流程图如图所示
(3)编写程序。
根据上面设计的算法,编写出解决该问题的程序(见配套学习资源包“第四章\课本 素材\程序4-2”)如下:
# 高一(5)班 1-2组 设计购买纪念品的最佳方案——单分支结构 s =input("请输入购买的笔记本的数量(多少本):") s =int(s) p =float(input("请输入笔记本的单价(每本多少元):")) if s <6: j =1.0 if s >=6 and s <=10: j =0.9 if s >=11: j =0.8 t = s*p*j print("总费用为:","%.1f"%t,"元") |
(4)调试程序。
项目实施3 | 探究内容 | 知识与技能 | 具体活动 | 相关学习资源 | 学科核心素养 |
运用选择结构描述“购买笔记本的费用优惠” 问题求解过程 | ify语句的应用 |
2.单分支、双分支、If语句嵌套的格式及使用方法 3.运用选择结构描述问题的求解过程 | 教材:P76-85 4.3 运用选择结构描述问题求解过程 | ||
【问题2】
项目小组成员在某购物网站上看到三种笔记本的优惠价各不相同,笔记本1、笔记本2 和笔记本3每本分别优惠价为a元、b元和c元,编程输出其优惠价的最大值。
“求网购笔记本的费用”和“求网购笔记本优惠的最大值”有何区别?在“求网购笔 记本优惠的最大值”中,求最值的方法有哪些,该如何编程实现?
【分析】
解决上述问题的方法有多种,其中一种的方法步骤如下:
(1)分析问题。
对于输入的三个数a,b,c,设其中的最大数为m,先找出a和b中较大的数赋给m,然 后将m与c比较,从而找出三个数中最大的数。
(2)设计算法。
根据上面的分析,解决问题的算法描述如下:
①输入三个数a,b,c;
②如果a>b,则m=a;否则m=b;
③如果c>m,则m=c;
④输出m的值;
⑤结束。
(3)编写程序。
根据前面设计的算法,编写出解决该问题的程序(见配套学习资源包“第四章\课本 素材\程序4-3”)如下:
# 高一(5)班 1-2组 设计购买纪念品的最佳方案——双分支结构 print("请输入三种笔记本的优惠价(元):") a,b,c =input().split() a =float(a) b =float(b) c =float(c) if a > b: m = a else:m = b if c > m:m = c print("优惠价最大的为:",m,"元") |
(3)调试运行。
根据前面设计的算法,编写出解决该问题的程序(见配套学习资源包“第四章\课本 素材\程序4-3”)如下:
【问题3】
项目小组成员经过比较,打算在某购物网站购买三种笔记本作为奖品和纪念品,它们 的单价分别为6元、5元和4元。若项目小组共有经费x元,他们希望买尽可能多的笔记本作 为奖品和纪念品,并能把经费用完。那么,这三种笔记本各可以买多少本?
根据上述问题给出的条件,思考如何编程找出符合条件的采购方案。
【分析】
解决上述问题的方法有多种,其中一种方法步骤如下:
(1)分析问题。
因为要买尽量多的笔记本,所以选择4元的笔记本,可以买到的本数最多为 本,但不 一定能刚好把经费用完。因此,项目小组可以按如下方案购买笔记本: 如果买完 本单价为4元的笔记本,还剩1元,则单价为4元的笔记本少买1本,换成买 一本单价为5元的笔记本即可;如果买完 本单价为4元的笔记本,还剩2元,则单价为4元 的笔记本少买1本,换成买一本单价为6元的笔记本即可;如果买完 本单价为4元的笔记 本,还剩3元,则单价为4元的笔记本少买2本,换成买一本单价为5元的和一本单价为6元 的笔记本即可。
(2)设计算法。
根据分析,可先设购买笔记本的经费总费用共为x元,购买单价为6元、5元、4元笔记 本的数量分别为m,n,k,具体算法描述如下:
①输入x的值;
②k=x//4;
③y=x%4;
④如果y的值为0,则m=0,n=0;
⑤如果y的值为1,则m=0,n=1,k=k-1;
⑥如果y的值为2,则m=1,n=0,k=k-1;
⑦如果y的值为3,则m=1,n=1,k=k-2;
⑧输出m,n,k的值;
⑨结束。
(3)编写程序。
根据设计的算法,编写出解决该问题的程序如下:
# 高一(5)班 1-2组 设计购买纪念品的最佳方案——多分支结构 x =int(input("输入经费的值(大于7的整数):")) k = x//4 y = x %4 if y ==0: m =0 n =0 elif y ==1: m =0 n =1 k = k-1 elif y ==2: m =1 n =0 k = k-1 elif y ==3: m =1 n =1 k = k-2 print("6元的笔记本为:%d 本"% m) print("5元的笔记本为:%d 本"% n) print("4元的笔记本为:%d 本"% k) |
(4)调试运行
【研讨】各小组讨论以下问题
1. if语句和if...elif...else语句在格式、功能、应用等方面的异同。
2. 选择结构的特点