3.6.3必修1 项目六 认识程序和程序设计语言 学案3

--------程序优化,判断输入有效性
教学目标:
1、优化程序思维
2、判断条件程序的应用(重点)
加载中...
一、[提出问题] :沪教版2022教材必修1项目六P86活动6.2中的程序如下:

 
当下限输入为0,与上限输入为100时,能正常输出如下数据。
当输入xx下限为100,sx上限为0时,则运行结果只会输出一个只有表头空表。这是一种程序的逻辑错误。若要使程序中range(start,stop,step)函数正常运行,必须保证(  )*
A. start < stop
B.start > stop
解决上述问题,需要判断输入是否是有效输入。算法如下所示

程序 如下:

if语句用于实现选择结构,其形式如下:
if 条件表达式:
     语句块1
else:
     语句块2
如果条件表达式成立则执行语句块1,否则执行语句块2.
条件表达式构成:
简单条件:关系运算符( >、<、==、>=、<=、!=)用于比较两个元素的大小
复杂条件:用逻辑表达式(and,or not)和关系运算式来组合构成。
复杂条件表达式的运算顺序:


1. 上述流程图和程序的算法结构属于(     )*
A.顺序结构
B.选择结构
C.循环结构
D.树形结构
2. 图形符号在算法描述流程图中表示( )*
A.算法的开始或结束
B.输入输出操作
C.处理或运算的功能
D.判断条件是否满足需求
[任务活动]6.3 体温计的合理范围是华氏90度到110度,修改优化程序3,打印供医务人员使用的指定的华氏、摄氏温度对应表。若输入的上下限超出人体温度的合理范围,给出提示。


[知识要点]:

多条件选择语句 if-elif-else 格式:
if 判断条件1:
      执行语句1
elif 判断条件2:
      执行语句2
elif 判断条件3:
      执行语句3
else:
      执行语句4
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)、!=(不等于)来表示其关系。


在Python中,条件语句使用情况:

if 语句                         实现单分支结构

if...else...语句              实现双分支结构

if...elif...else...语句       实现多分支语句
(1).  if  条件:单分支语句的应用:
编程:输出1~100范围内的所有偶数
for  a  in range(1,100):
      if a%2==0:
             print(a,end="    ")        #print语句中的end="    "作用是将结果在逐行输出
请将程序在python环境中验证输出格式。
3. 练习:若要输出1~100范围内的所有奇数,只要上述程序的条件。修改if的条件语句正确的是(        )*
A. a%2 ==0
B. a%2 <>0
C. a%2 !=0
D. a%2 =0
(2).双分支条件语句应用:
编程输出求[1,100]范围内的偶数和与奇数和。

(3).多分支条件语句应用:

输入学生分数[0-100],给出学生分数等级,分数>=90,为A等;分数>=80,为B等;分数>=70,为C等;分数>=60,为D等;分数<60,为E等;请输入程序验证程序可行性。

程序如下:

grade=eval(input("请输入成绩 "))       #eval 将输入的字符转化为可运算的表达式

if grade>=90:
   print("A")
elif grade>=80:
   print("B")
elif grade>=70:
   print("C")
elif grade>=60:
   print("D")
else:
   print("E")

思考问题:上述判断条件是从大到小划分等级,如果将判断条件按从小到大划分等级,可行吗?

运行下面程序:
grade=eval(input("请输入成绩 "))
if grade>=60:
   print("D")
elif grade>=70:
   print("C")
elif grade>=80:
   print("B")
elif grade>=90:
   print("A")
else:
   print("E")
4. 上述程序运行时,当我们输入分数为77时,按等级要求应是C等,但结果是输出( )*
A
B
C
D
从验证发现,将判断条件从小到大排列,程序运行结果并不是完全正确。我们能改进程序达到准确无误吗?运行下面程序:
grade=eval(input("请输入成绩 "))
if grade>=60 and grade<=69:
     print("D")
elif grade>=70 and grade<=79:
     print("C")
elif grade>=80 and grade<=89:
     print("B")
elif grade>=90 :
     print("A")
else:
     print("E")
5. 运行上述程序,再次输入分数77,则显示等级是( )*
A
B
C
D
总之,从上面分数等级输出程序的判断条件排列情况看,不管采用那种构造条件的方式,都必须保证条件表达式构造中的所有情况必须包含在其中,条件构造的正确性决定了程序的正确性。
[考题练习]:用Python语言设计算法编程实现: 华氏摄氏温度转换已知华氏温度转换为摄氏温度的公式为: c=5*(f-32)/9,其中c为摄氏温度,f为华氏温度。
[编程要求] :
打印指定范围的华氏、摄氏温度对应表,间隔为10,其中,上限H和下限L由用户输入。请根据编程要求完善以下程序中(1)(2)(3)空白:

6.
请完善上面的程序:*
(1):(2):(3):
[拓展练习]水仙花数中三位整数,其数的各位立方和等于该数本身.如153=1^3+5^3+3^3.求解水仙花数的流程图如下:

7. 水仙花数的流程图中的(???)是:*
A. i !=a**3+b**3+c**3
B. i=a+b+c
C. i==a**3+b**3+c**3
D.i=a**3+b**3+c**3
问卷星提供技术支持
举报