内容正文:
null浙教版(2019) 必修1数据与计算
3.1用计算机编程解决问题的一般过程
1
学习目标
信息意识:
· 能从具体情境(如设计、绘图需求)中主动发现可用编程解决的数字化问题。
· 能准确描述问题需求,并明确界定问题的输入、处理与输出,为问题转化奠定基础。
计算思维:
· 能够运用抽象与建模,将现实问题数学模型。
· 能够遵循算法设计的一般过程,使用算法描述方法,设计逻辑清晰、步骤确切的算法,解决实际问题。
数字化学习与创新:
· 能够运用Python语言及集成开发环境IDE等数字化工具,输入一定可运行的程序代码
· 在调试与运行环节,能运用基本的调试方法
信息社会责任:
· 在编程实践中,初步养成严谨、规范的代码书写习惯
· 理解程序正确性与可靠性的重要性,在调试过程中培养对数字化产品负责的态度。
问题提出
同学们,你目前对计算机的使用情况如何,请与大家进行分享。
计算机已成为人们解决问题的重要工具。例如,用Word解决文字处理的问题,用Excel解决一般的数据计算、统计的问题等。但由于现实问题的多样性,并不是所有的问题都可以用现成的计算机程序来解决。因此,针对这些问题,需要通过抽象与建模、设计算法、编写计算机程序来解决。
生活中的很多问题(如自动绘图、数据分析、游戏设计等)需要自己编写程序。
情境创设
今天我们就以“绘制正多边形”为例,了解用计算机编程解决实际问题的一般过程
请同学们观察,如下的图形绘制工作,目前你熟悉的工具能否实现?
新知探究—抽象与建模
抽象与建模是从现实项目的真实情境中提炼出核心的要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符号描述解决问题的设计模型。
我们平时绘制正六边形的过程:
你发现了什么??
绘制一个正多边形,我们可以:
画一条边,旋转一定角度后再画一条边
重复①
新知探究—抽象与建模
1.提炼核心要素并加以确定或假设
本问题的已知信息是正多边形的各边边长相等、各内角度数也相等。正多边形的边长在事先不确定,所以需要通过输入将数据传递给算法,不妨用变量a表示边长。
为了使建立的问题模型具有一般性,可以认为边数是不定的,所以用变量n来表示这个可变的数据, d表示内角度数。
请同学们回顾2.3节知识,提炼本问题“绘制正多边形”的核心要素并加以确定或假设
实际问题“绘制正多边形”,我们可以得到的已知信息是:
正多边形的各边边长相等
各内角度数也相等。
新知探究—抽象与建模
2.用数学符号描述解决问题的计算模型
明确了问题的已知条件后,需要明确问题的解决目标。就是需要我们通过输入多边形的边数及边长,绘制出正多边形图案。之前的分析可知,绘制一个正多边形,可以通过“画一条边,旋转一定角度后再画一条边”的重复操作来完成,而旋转一定角度刚好是多边形的外角180-d。
基于上述分析,可以得出解决该问题的计算模型如下:
假设正多边形的边数为n,边长为a。
则内角度数d的值为:d=(n-2)×180÷n。
每次旋转的角度为:180-d。
新知探究—设计算法
有了计算模型后,就可以遵循算法的特征、围绕算法的要素设计算法。
对任何数据的处理,总体上需要经历下列三个步骤:
输入数据
处理数据
输出处理结果
新知探究—设计算法
1.输入数据
输入数据: 本问题需要输入的数据是正多边形的边数n以及正多边形的边长a
算法描述如下:
输入要绘制的正多边形的边数n
输入要绘制的正多边形的边长a
新知探究—设计算法
2.处理数据
本问题需要处理的数据:
计算正多边形的每个内角度数d
计算旋转角度
请以小组为单位,讨论本问题需要处理的数据有哪些,并进行交流分享。
新知探究—设计算法
2.处理数据
算法描述如下:
计算正多边形的每个内角度数d,其中d=(n-2)x180÷n。
画一条长度为a的线段,再将画笔方向向左(逆时针)旋转(180-d)度。
将②过程重复执行n遍
请把本问题需要处理的数据的算法进行描述。
新知探究—设计算法
3.输出数据
本问题需要输出的数据:
绘制出正多边形的图案,包括线条的粗细,线条的颜色。
请以小组为单位,讨论本问题需要输出的数据有哪些。
新知探究—设计算法
3.输出数据
算法描述如下:
绘制多边形的线条粗细为3
绘制多边形的线条颜色为红色
请把本问题需要输出数据的算法进行描述。
新知探究—设计算法
4.结合数据的输入、处理、输出,把本问题的算法设计归总。
结合本问题中算法对数据的输入、处理、输出过程,把本问题的设计算法进行归总。
新知探究—设计算法
4.结合数据的输入、处理、输出,把本问题的算法设计归总。
算法描述如下:
输入要绘制的正多边形的边数n
输入要绘制的正多边形的边长a
计算正多边形的每个内角度数d,d=(n-2)x180÷n。
计算旋转角度t,t=180-d
设置重复变量i的初始值为0
设置画笔粗细为3,画笔颜色为红色
画一条长度为a的线段,再将画笔方向向左(逆时针)旋转t度。
i增加1,若i<n,则转到⑥,否则结束。
新知探究—设计算法
为了直观建议先用流程图描述解读该问题的算法,请同学们以小组为单位,进行讨论交流,绘制出本问题的流程图
新知探究—设计算法
画一条长度为a的线段
开始
输入正多边形的边数n
结束
i<n
输入正多边形的边长a
设置画笔粗细为3,画笔颜色为红色
i=i+1
内角d=(n-2)*180/n
是
否
将画笔方向向左(逆时针)旋转t度
旋转角度t=180-d
重复变量i=0
绘制正多边形的流程图
新知探究—编写程序
要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言描述,形成计算机程序。绘制正多边形的算法用Python语言描述如下:
import turtle
n=int(input("请输入正多边形的边数n:"))
a=int(input("请输入边长a:"))
d=(n-2)*180/n
t=turtle.Pen()
for i in range(n):
t.color("red")
t.pensize(3)
t.forward(a)
t.left(180-d)
turtle.done()
新知探究—编写程序
编写Python程序比较方便的方式是使用集成开发环境IDLE
打开已经存在的Python文件
File Open
打开IDLE开发环境
新知探究—调试运行程序
通过运行程序,计算机会自动执行程序中的命令。但是,在将算法进行程序实现时,可能会因为录入错误、语法错误、逻辑错误等原因,导致程序不能正常运行或输出错误的结果。此时,需要对程序进行调试,以便发现错误并进行修正。例如,字母大小写的疏忽可能直接决定程序能否正常运行,程序中参数的调整可能影响输出图形的形状。
新知探究—调试运行程序
调试运行程序:Run Run Module
课堂练习
请同学们打开老师下发的Python程序“regularpolygon.py” ,并运行它。
请对观察程序,对线条粗细及颜色进行调整,再次运行查看结果。
请同学用1分钟回顾本次课的内容,请同学代表进行分享。
小结
用计算机编程解决问题的一般过程
1.抽象与建模
提炼核心要素并加以确定或假设
用数学符号描述解决问题的计算模型
2.设计算法
3.编写程序
开发环境IDLE,Python语言
4.调试运行程序
课后思考
在用计算机编程解决问题的过程中,算法与程序两者之间的关系如何?
谢 谢 观 看!
$