运用选择结构描述问题求解过程(下)
学习目标
掌握选择结构。
学习内容
if...else语句的应用
应用条件语句可以快速地实现程序的分支选择,但当分支比较多时,
..lif..
else语句来实现
比较简便。
(1)
if..
else语句格式如下:
if
(表达式1):
语句1
elif
(表达式2):
语句2
elif
(表达式N):
语句N
else:
语句N+1
(2.f.i.e..le语句的执行过程。
if...else语句的执行过程如下图所示。
问题
项目小组成员经过比较,打算在某购物网站购买三种笔记本作为奖品和纪念品,它们的单价分别为6元、5元和4元。
若项目小组共有经费x元,他们希望买尽可能多的笔记本作为奖品和纪念品,并能把经费用完。那么,这三种笔记本各可以买多少本?
思考
根据上述问题给出的条件,思考如何编程找出符合条件的采购方案。解决上述问题的方法有多种,其中一种方法步骤如下:
(1)分析问题。
因为要买尽量多的笔记本,所以选择4元的笔记本,可以买到的本数最多为x/4本,但不一定能刚好把经费用完。因此,项目小组可以按如下方案购买笔记本:
如果买完x/4本单价为4元的笔记本,还剩1元,则单价为4元的笔记本少买1本,换成买一本单价为5元的笔记本即可;如果买完x/4本单价为4元的笔记本,还剩2元,则单价为4元的笔记本少买1本,换成买一本单价为6元的笔记本即可;如果买完x/4本单价为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=k1;
⑥如果y的值为2
,则m=1,n=0,k=k-1;
如果y的值为3
,则m=1,n=1,
k=k-2;'
⑧输出m,
n,
k的值;
结束。
(3)编写程序。
根据设计的算法,编写出解决该问题的程序如下:
(4)调试程序。
将程序输入计算机进行调试运行,如输入k的值为398
,结果如下
输入经费的值:398
6元的笔记本为:1本
5元的笔记本为:0本
4元的笔记本为:98本
实践
某学习小组的三名同学为判断某年是否为闰年的问题,各编写程序如下:
①普通年能被4整除,不能被100整除的为闰年,(
如2004年就是闰年,
1901年不是闰年)
;
②世纪年能被400整除的是闰年,(如2000年闰年,
1900年不是闰年)。
程序1:
程序2:
程序3:
各小组完成以下实践内容:
(1)_上机调试程序,分别验证三个程序的正确性。
(2)在这三个程序中,分别采用了不同的表达式作为判断闰年的条件。分析、讨论哪一种更好。
课内任务:
项目小组成员在某购物网站上了解到某种笔记本搞优惠活动,规定-次购买6本以
上(含6本)10本以下(含10)打九折,-次购买11以上(含11本)打八折。怎样根据笔记本的单价和购买数量编写程序计算总费用?补充空白处的程序代码(多分支if
......elif
......else语句)
,
并验证程序是否正确。运用选择结构描述问题求解过程(上)
学习目标
掌握选择结构。
学习内容
if语句的应用
在解决问题的过程中,常常需要对事物进行判断和选择。在程序设计中,主要使用条件语句(if语句)来实现判断和选择。if语句在使用中包括单分支if语句和双分支if语句。)
1.单分支if语句
(1)单分支if语句的格式
if
(条件表达式):
?
?
语句A;
在使用单分支语句时需要注意:①if(条件表达式)后面加冒号“:”;②当语句A是由多个语句构成的复合语句时,所有语句严格遵循相同的缩进。
(2)单分支语句的执行过程.
如果条件表达式为真,则执行语句A,然后继续往下执行;如果条件表达式为假,则不执行语句A,然后继续往下执行。其执行过程如右图所示。
问题
项目小组成员在某购物
(?http:?/??/?ni.aitewole.me?/?"
\t
"_blank?)网站上了解到某种笔记本搞优惠活动,规定一次购买
(?http:?/??/?ni.aitewole.me?/?"
\t
"_blank?)6本以上(含6本)10本以下(含10)打九折,一次购买11以上(含11本)打八折。怎样根据笔记本的单价和购买数量编写程序计算总费用?
思考
上述问题给出了什么条件,需要解决什么问题,解决问题的方法和步骤是怎样的?
观察
解决上述问题的方法有多种,其中一种步骤如下:
(1)分析问题。
设项目小组购买笔记本的数量为s本,笔记本单价为p元,折扣系数为j,总费用为t。根据题意,有:
如果s<6,则j=1.0;
如果6≤s≤10,则j=0.9;
如果s≥11,则j=0.8;
又t=s
x
p
x
j,求出t的值即为所求的总费用。
(2)设计算法。
根据上面对问题的分析,解决问题的算法描述如下:
①输入s,p的值;
②如果s<6,则j=1.0;
③如果6≤s≤10,则j=0.9;
④如果s≥11,则j=0.8;
⑤t=s
x
p
x
j;
⑥输出t的值;
⑦结束。
算法的流程图如右图所示。
(3)编写程序^
根据上面设计的算法,编写出解决该问题的程序如下:
(4)调试程序。
将程序输入计算机进行调试运行,并输入s的值为100,P的值为3.2,得到结果如下:
请输入购买笔记本的数量(多少本):100
请输入笔记本的单价(每本多少元):3.2
总费用为:256.0元
2.双分支if语句
(1)双分支语句的格式
if
(条件表达式):
?
?
语句A;
else:
?
?
语句B
在使用双分支语句时需要注意:①if(条件表达式)后面加冒号“:”;②当语句A和语句B是由多个语句构成的复合语句时,所有语句严格遵循相同的缩进。
(2)双分支if语句的执行过程。
如果条件表达式为真,则执行语句A,然后继续往下执行。如果条件表达式为假,则执行语句B,然后继续往下执行。
问题
项目小组成员在某购物网站上看到三种笔记本的优惠价各不相同,笔记本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)调试程序。
将程序输入计算机进行调试运行,并输入a,b,c的值分别为32.5,63.4,78,结果如下:
请输入三种笔记本的优惠价(元):
32.5
63.4
78
优惠价最大的为:78.0元
3.if语句的嵌套
if语句允许嵌套,即语句中的语句A和语句B还可以是if语句。
课内任务:项目小组成员在某购物网站上看到三种笔记本的优惠价各不相同,笔记本1、笔记本2和笔记本3每本分别优惠价为a元、b元和c元,编程输出其优惠价的最小值。