1、必修1数据与计算第三章 算法的程序实现内容分析第三章第三章算法的程序实现算法的程序实现3.1 用计算机编程解决问题的一般过程3.2 Python语言程序设计3.3 简单算法及其程序实现情境导入如何使用计算机绘制下面三种图案?情境导入使用Windows自带的画图软件可以画出正方形和五角星,阴阳图需要利用计算机编程来解决问题用计算机解决问题的一般过程第一步:抽象与建模第二步:设计算法第三步:编写程序第四步:调试运行程序用计算机编程解决问题的一般过程问题思考:用计算机编程绘制正多边形(正多边形的各边边长相等,各内角度数也相等)1.抽象与建模 正多边形的各边边长相等,各内角度数也相等。因此,绘制一个正
2、多边形,可以通过“画一条边,旋转一定角度后再画一条边”的重复操作来完成。下图呈现的是绘制一个正六边形的过程。提炼核心要素用计算机编程解决问题的一般过程1.抽象与建模 绘制正多边形,除了要知道它的边数n和边长a,关键是要计算出每次旋转的角度。因此,解决这个问题的计算模型可以表示如下:假设正多边形的边数为n,边长为a。则内角度数d的值为:d=(n-2)x180n。每次旋转的角度为:180-d。建立数学模型用计算机编程解决问题的一般过程2.设计算法基于问题的抽象与建模,绘制一个正多边形的算法可以做如下描述:输入要绘制的正多边形的边数n和边长a。计算正多边形的每个内角度数d,其中d=(n-2)x180
3、n。将以下过程重复执行n遍:画一条长度为a的线段,再将画笔方向向左(逆时针)旋转(180-d)度。输入数据处理数据输出数据用计算机编程解决问题的一般过程3.编写程序 要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言描述,形成计算机程序。用Python语言描述绘制正多边形的算法(例如:边数为6,边长为100)import turtlen=int(input(“请输入边的数量 n:)a=int(input(“请输入边长 a:)d=(n-2)*180/nt=turtle.Pen()for i in range(n):#重复执行n遍 t.forward(a)向前绘制长度为a的线段
4、 t.left(180-d)向左旋转(180-d)度用计算机编程解决问题的一般过程一:抽一:抽象与象与建模建模 抽象与建模指的是从现实项目的真实情境中提炼出核心要素并加以确定或假设,最终定义出一个有明确已知条件和求解目标的问题,并用数学符合描述解决问题的计算模型。抽象与建模可以通过下列两个步骤逐步分析出计算模型:1.提炼核心要素并加以确定或假设。2.用数学符号描述解决问题的计算模型。用计算机编程解决问题的一般过程二:二:设计设计算法算法 在计算模型的基础上,遵循算法的特征、围绕算法的要素设计算法,并选择恰当的方式合理地描述算法。对任何数据的处理,总体上都需要经历下列三个步骤:1.输入数据。2.
5、处理数据。3.输出处理结果。用计算机编程解决问题的一般过程三:描三:描述算法述算法可以使用自然语言、流程图、伪代码或计算机程序设计语言来描述算法。四:四:编编写程写程序序要让计算机按照预先设计的算法进行处理,需要将该算法用计算机程序设计语言进行描述,即编写计算机程序。五:五:调调试运行程试运行程序序通过运行程序,让计算机自动执行程序中的命令,并对结果进行检测分析和验证。海龟绘图(turtle模块)想象在绘图区有一只小海龟(画面显示一个箭头代表小海龟的头),起始位置在 x-y 平面的(0,0)点,面向x轴正方向。小海龟根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形
6、。海龟绘图(turtle模块)教师演示:利用海龟绘图画一个正方形学生活动活动1:学生小组合作讨论,编程画一个正五边形。流程具体措施抽象与建模在用计算机绘制正五边形时,先根据公式(n-2)*180/n计算内角度数,再通过重复执行“画一条等长的边,旋转一定角度(180-内角度数)”的操作来完成。设计算法计算正五边形的每个内角度数d=(5-2)*180/5将以下过程重复执行5遍:画一条等长的边,旋转(180-d)度。编写程序代码学生活动活动1:学生小组合作讨论,编程画一个正五边形。学生活动活动2:学生小组合作讨论,编程通过变量实现画一个多边形。(教材第67页)学生活动活动3:学生小组合作讨论,编程画
7、一个五角星并填充红色。海龟绘图(turtle模块)教师演示并讲解画圆的方法学生活动活动4:学生小组合作讨论,编程画一个靶心图形,并为各圆环填充不同的颜色。学生活动活动5:学生小组合作讨论,编程画一个黑白阴阳图形。学生活动活动6:组织学生发挥想象我想让计算机绘制什么样的图形,我能对程序做什么?学生开始设计算法,修改并尝试调试程序。设计算法编写程序调试运行程序课堂小结使用计算机编程解决问题的一般过程抽象与建模提炼核心要素建立数学模型输入数据处理数据输出数据拓展与实践 世界近代三大数学难题之一。哥德巴赫是德国一位中学教师,也是一位数学家,生于1690年,1725年当选为俄国彼得堡科学院院士。1742
8、年,哥德巴赫在教学中发现,每个不小于6的偶数都是两个素数(只能被1和它本身整除的数)之和。如63+3,125+7等。公元1742年6月7日哥德巴赫(Goldbach)写信给大数学家欧拉(Euler),提出了以下的猜想:(a)任何一个=6之偶数,都可以表示成两个奇质数之和。(b)任何一个=9之奇数,都可以表示成三个奇质数之和。这就是着名的哥德巴赫猜想。拓展与实践 目前最佳的结果是中国数学家陈景润于1966年证明的,称为“陈氏定理“。任何充分大的偶数都是一个质数与一个自然数之和,而后者仅仅是两个质数的乘积。”通常都简称这个结果为大偶数可表示为”1+2“的形式。课堂作业1.本节配套课后作业。2.(选做)自主学习海龟作图的更多方法,绘制各种有趣的图案。OK