中小学教育资源及组卷应用平台
项目六
解决温标转换问题
———认识程序和程序设计语言
第二课时
了解程序的基本控制结构
■教材分析
“了解程序的基本控制结构”这一小节,主讲编程实现温标转换算法,并通过分别调试、运行顺序结构和循环结构的程序,引导学生对比发现程序的不同控制结构之间的表述差异,体会循环结构中初值与循环变量的作用,理清循环结构的算法逻辑。学生还可通过完成活动
6.2,进一步理解和掌握本项目中的难点———循环结构,为学生进一步学习算法与程序设计打下基柮。
■学情分析
通过整章的学习,学生对程序设计有了一定的了解,对程序的结构、算法流程都有一定的了解,本节通过实例加深学习对程序三种基本结构的理解。
■教学目标
1、知识和技能
了解程序的三种基本结构的执行过程,并能画出它们的流程图。
2、过程与方法
通过教学实例的分析,让学生体验利用程序
的三种结构编写计算机程序,解决实际问题。
3、情感态度与价值观
培养学生的逻辑思维能力。
■教学重点:
程序的三种基本结构的执行过程。
■教学难点:
程序的三种基本结构的执行过程。
■教学准备
计算机教室、多媒体设备、Python。
■教学方法
通过教学实例的讲练,以老师为主导,学生主动,体验思考,讲练结合等方式来完成教学风容。
■教学过程:
一.复习引入
我们学习了“温标转换”的程序,现在我们通过Python运行这一段程序(演示),程序中语句的执行是如何的?
二、程序设计语言的功能
程序设计语言是人与计算机交流的语言,人需要使用程序设计语言告诉计算机需要处理的数据和处理数据的流程,所以程序设计语言必须具有数据表达和流程控制的能力(图323)。以
Python语言为例,它是一门面向对象的程序设计语言,它用对象类型描述数据,使用三种基本控制结构和函数等提供数据处理的控制手段。
程序设计语言的功能
1、数据对象和类型
现实生活中的数据是多种多样的,程序设计语言先要将纷繁复杂的数据对象抽象为若干种数据类型。数据类型定义了该类型数据的属性和范围是什么,可以通过该类型的对象做什么操作或运算。例如,整型所包含的数据对象是{……,-3,-2,-1,0,1,2,3,……},而+、-、
,/是作用于整型类型上的运算。
在程序设计语言中,一般都有好几种定义数据类型的语句,供程序员直接使用。
Python语言的数据类型如图3-24所示,主要分为基本数据类型组合数据类型。基本数据类型主要是数值型(包括整型和浮点型)、布尔类型和其他语言中不多见的复数类型。组合数据类型可以应用于一次处理多个对象的场合,包括字符串、元组、列表、集合类型和字典类型。
组合数据类型
·字符串str·元组
tuple·列表list·集合类型set·字典类型dict
基本数据类型
·整型int·浮点型
float·布尔类型bool·复数类型
complex
图3-24
Python语言的数据类型
(2)常量和变量
程序中的数据有两种表示方式:常量和变量。
常量(
constant)是直接给定的、在程序中不可以改变的值,是数据的“书写形式”常量区分为不同的数据类型,可以从书写形式上区分,如整数389,浮点数23.56,字符串"hello"。
变量描述的是存储空间的概念,用于引用在程序中可能会变化的数值。数据存储在内存中,要引用存储在内存中的数据,需要用一个名称来访问内存空间,这个名称就称为变量名。在程序运行的过程中,变量对数据的引用是可以发生变化的。例如,可以通过赋值语句改变变量的引用对象。
Python语言中,变量的数据类型由引用的数据对象的类型决定,如下所示。
为了增加程序的可读性,编写程序时变量的名称应尽量体现数据的意义。
Python语言
中变量的命名规则为:由大小写英文字母、数字或划线组成,以英文字母或下划线为首字符,长度任意,大小写敏感,但不能与Python的关键字(又称保留字,是指语言里事先定义的、有特别意义的标识符)同名。
在交互模式下,可以使用help(“keyword”)查阅
Python的关键字。
2.流程控制
程序设计语言除了要能表达各种各样的数据之外,还必须提供表达数据处理过程的手段,即程序的流程控制。流程控制包括语句级的程序基本控制结构,以及单位级的函数定义和调用。
(1)程序的基本控制结构
程序有三种最基本的控制结构:顺序结构、选择结构和循环结构。每一个程序都是由若干个基本结构组成的,一个基本结构中可以包含一条或若干条语句。
除了程序转向控制语句之外,顺序结构描述的程序都是从第一条语句开始顺序执行,到最后一条语句结束。例如,“温标转换”程序一共有三条语句,依次按顺序执行,这就是一个顺序结构。常见的顺序结构语句有输入语句、输出语句和赋值语句。
选择结构会根据对条件判断的结果来执行不同的语句块。在本项目的程序3中,通过检验条件表达式l>=h成立与否来决定是输出提示“输入错误”还是打印温度对应表。Python语言使用if语句来实现选择结构。
循环结构的作用是控制一段程序语句重复多次地执行。本项目的程序2中,通过控制华氏温度的取值范围,重复执行循环体中的两条语句。Python语言用于实现循环结构的语句有for语句和
while语句。
(2)模块和函数
当要解决的问题比较复杂时,一种典型的程序设计法是将复杂的程序划分为若干个功能相对独立的部分,再分而治之。这可以降低程序的设计难度,提高程序的可读性和可维护性。
Python语言提供了函数来实现这些独立部分的功能,函数既可以是系统函数也可以是用户自定义函数。
Python语言的系统函数由标准库中的很多模块提供用户选择使用。标准库中的模块又
分成内置模块和非内置模块。
内置模块builtin中的函数称为内置函数,可以直接使用。内置函数包含了使用频繁的或最基本的操作,如数学函数(abs,
round)、类型转换函数(int,
float,str,
repr
)集合操作函数(len,max,min,sum)、输入输出操作函数(
input,
print)。
函数的调用方式与数学上的函数类似,即函数名加上相应的参数值,多个参数值之间以逗号分隔:
<函数名>(参数值序列)
非内置模块要先导入模块再使用。
Python标准库中有100多个非内置模块。输入输出函数包含在sys模块中;通常的数学函数,如三角函数、对数函数等包含在数学模块中。
例如,计算log2136的方法如下。
自定义函数是允许程序员在程序中自行定义的函数,它是完成独立功能的程序段。函数定义后可以在程序中调用,其使用方法和系统函数的使用方法相同。
Python语言通过加载第三方开发的模块扩充类库,可以得到更为丰富的数据表达类型
和相应处理数据的功能函数。这也使得
Python语言迅速获得了广泛应用。
三、通过实例,比较两个程序
运行下面两个“打印华氏摄氏温度对应表”程序(程序1和程序2),可以得到相同的运行结果。对比两个程序,可以发现循环结构的程序2表述明显更简洁。
程序2(循环结构)
程序1(顺序结构)
程序1中,第二至第四条语句的作用是设定f的值,计算c的值,输出f和c的值。重复使用这三条语句6次,每次只需修改f的值即可。
程序2实现的是一个计数循环算法,即对程序1中的第三至第四条语句重复执行6次。f的值从100变化到105,每次增加1,作用相当于一个计数器。
输出语句中的格式设定为%10.2f,f表示float浮点数,10表示总的输出宽度为10,数据长度不足在左边补充空格,2表示小数点后保留2位,四舍五入。
range(start,
stop,step)函数可以产生一个整数序列,从start开始,到小于stop的最大整数结束,间隔为step.step省略值为1。因此range(100,106)产生序列[100,101,102,103,104,105]。
四、课后作业
编写程序,打印指定范围的华氏摄氏温度对应表,间隔为
10,其中输入上限和输入下限由用户输入。
(1)用两个变量分别表示下限和上限,增加输入语句获取下限和上限的值。(注:输入任意整数可用语句int(input())。)
(2)修改for语句。
For
f
in
range(______,_______,_______):
C=5
(f-32)/9
Print(“%8.0f%10.2f”(f,c))
(3)运行、调试程序,观察运行结果,分析程序有无错误。若有,尝试解决。
(4)对比本程序和程序2,讨论变量和输入语句在提高程序通用性方面所起的作用。
>>>x=12.3
>>>
type(x)
>>>
xa“red”
>>>
type
(x)
'str’>
>>>
import
math
>>>
print(math.
log(136,
2))
7.08746284125034
Print(“
华氏
摄氏")
f=100
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
f=101
c=5
(-32)/9
Print(“%8.0f%10.2f”(f.c))
f=102
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
f=103
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
f=104
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
f=105
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
print(“
华氏
摄氏”)
for
f
in
range(100,
106)
c=5
(f-32)/9
Print(“%8.0f%10.2f”(f.c))
21世纪教育网
www.21cnjy.com
精品试卷·第
2
页
(共
2
页)
HYPERLINK
"http://21世纪教育网(www.21cnjy.com)
"
21世纪教育网(www.21cnjy.com)