资源简介 (共49张PPT)设计简单数值数据算法用计算机计算圆周率主讲人:XXXxxx学校用计算机计算圆周率 --- 设计简单数值数据算法教材分析“设计算法实现用数学公式计算”这一小节,使用欧拉公式设计算法探究计算圆周率,利用Python语言编程实现计算圆周率的算法。首先,引出数值数据及其运算。其次,根据程序设计的基本流程从需求出发,分析问题确定解决问题的方法及其选择恰当的算法描述方法(自然语言、流程图和伪代码)进行描述,从而引出设计算法的方法循环结构算法,重点探究循环结构的算法设计思路。然后,根据算法编写程序。最后,运行、调试程序。考虑到循环结构中的循环控制变量、初值、终值相对较难理解,教材中又设计了活动7.1---使用沃斯公式计算圆周率,教师可作为学生课后活动探究课,以进一步巩固学生对流程控制结构的认识,加深学生对循环结构的理解和灵活应用。用计算机计算圆周率 --- 设计简单数值数据算法教学目标1、知识技能数值数据的常用运算,循环结构算法构建的探究及其实现。2、过程与方法通过设计算法进一步巩固学生对如何实现流程控制算法的认识,加深学生对循环结构的理解和灵活应用。3、情感态度与价值观(1)提高分析问题和解决问题的能力,体会算法在程序设计中的重要性。(2)通过本项目的学习,学生将体验到用计算机计算圆周率,拓宽思维,激发学习兴趣。用计算机计算圆周率 --- 设计简单数值数据算法教学重点数值数据的常用运算,循环结构算法构建的探究及其实现。教学难点循环结构算法构建的探究及其实现。用计算机计算圆周率 --- 设计简单数值数据算法教学准备计算机教室,Python环境搭建,投影机。教学素材教材案例的代码用计算机计算圆周率 --- 设计简单数值数据算法教学过程一、导入圆周率是怎么计算的?从古至今数学家一直在算?用计算机计算圆周率 --- 设计简单数值数据算法一、导入设计算法实现用数学公式计算1735年,数学家欧拉得到了如下的公式:以下我们就尝试用Python语言,根据上述欧拉发现的公式来计算圆周率。用计算机计算圆周率 --- 设计简单数值数据算法一、导入复习回顾程序设计的基本流程分析问题确定解决问题的方法描述数据运行调试修改语法错误运行程序发现错误并修改设计算法选择描述算法的方法设计算法编写程序选择程序设计语言编写程序用计算机计算圆周率 --- 设计简单数值数据算法一、导入复习回顾程序设计的功能常量和变量程序设计语言数据表达流程控制数据对象和类型语句级控制单位级控制基本数据类型 整型 int 浮点型 float 布尔型 bool 复数类型 complex组合数据类型 字符串 str 元组 tuple 列表 list 集合类型 set 字典类型 dict常量如整数389, 浮点数23.56,字符串“hello”。变量如x=12.3,x="red"。程序的基本控制结构顺序结构循环结构选择结构AB顺序结构AB选择结构条件是否当循环A条件是否直到循环A条件是否内置函数数学函数(abs,round)类型转换函数(int,float,str,repr)集合操作函数(len,max,min,sum)输入输出操作函数(input,print)函数的调用方式例如,计算 。>>> from math import sqrt>>> print(sqrt(2))用计算机计算圆周率 --- 设计简单数值数据算法一、导入复习回顾程序设计的功能常量和变量程序设计语言数据表达流程控制数据对象和类型语句级控制单位级控制用计算机计算圆周率 --- 设计简单数值数据算法基本数据类型 整型 int 浮点型 float 布尔型 bool 复数类型 complex用计算机计算圆周率 --- 设计简单数值数据算法组合数据类型 字符串 str 元组 tuple 列表 list 集合类型 set 字典类型 dict用计算机计算圆周率 --- 设计简单数值数据算法常量如整数389, 浮点数23.56,字符串“hello”。用计算机计算圆周率 --- 设计简单数值数据算法变量如x=12.3,x="red"。用计算机计算圆周率 --- 设计简单数值数据算法程序的基本控制结构顺序结构循环结构选择结构用计算机计算圆周率 --- 设计简单数值数据算法AB顺序结构用计算机计算圆周率 --- 设计简单数值数据算法AB选择结构条件是否用计算机计算圆周率 --- 设计简单数值数据算法当循环A条件是否直到循环A条件是否用计算机计算圆周率 --- 设计简单数值数据算法内置函数数学函数(abs,round)类型转换函数(int,float,str,repr)集合操作函数(len,max,min,sum)输入输出操作函数(input,print)函数的调用方式例如,计算 。>>> from math import sqrt>>> print(sqrt(2))用计算机计算圆周率 --- 设计简单数值数据算法二、新授数值数据分为整数(int)和浮点数(float)。一个算术表达式包含常量、变量、运算等要素。类比数学中的运算说一说:数值数据的常用的运算有哪些?数值数据整数浮点数例如,1是整数。例如,1.0是浮点数。1数值数据及其运算用计算机计算圆周率 --- 设计简单数值数据算法运算符含义示例运算结果+-*///**%加法减法乘法除法整除次幂求余数53+2163.1-2.2300*1.51/81//82**317%37460.9450.00.125082二、新授1数值数据及其运算常用的算术运算符①用计算机计算圆周率 --- 设计简单数值数据算法>>> 4.8//1.24.0>>> 5//1.24.0>>> 7//23>>> 3//40>>> 2**38>>> 16**0.54.0>>> 1.6**2.53.238172324012421>>> x=34>>> x%20>>> x%31>>> x%170运算符//执行的是整除运算,它会产生一个小数部分为0的结果,小数部分会被舍掉。运算符**执行的是次幂运算,a**a等价于数学运算 。运算符%执行的是求余数运算。二、新授1数值数据及其运算常用的算术运算结果②用计算机计算圆周率 --- 设计简单数值数据算法程序设计语言必须具备数据表达和流程控制的能力,我们一起探讨流程控制中的循环结构的算法构建。你能用生活中的事例描述循环结构?二、新授2循环结构的算法构建用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建某公司为提高销售额,针对销售部的员工制定旅游福利方案,以激励员工业绩:方案每月进行评优,评上优的员工该月有旅游的机会,当年评优次数在下年自动清0。请问张三一年内共有几次旅游机会?用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建自然语言描述初始0次机会;12个月每月评一次;2.1当月达到评优 标准;2.2 增加1次;2.3 当月没有达到;2.4 不增加;3. 输出共几次。流程控制图0次机会满12个月达标加1输出几次是否用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建循环控制三要素初值终值初值向终值变化语句循环控制变量的初值循环控制变量的终值在循环体中使用循环控制变量由初值向终值变化的语句用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建例1:求50!。分析问题50!=1 x 2 x 3 x ... x 50,和累加问题类似,计算机算法的处理是逐项将1,2,3,…,50累乘到一个变量中。与累加问题不同的是,累乘变量的初值应为1。用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建例1:求50!。设计算法算法一:1. 令s=1;2. s=s x 1;3. s=s x 2;......51. s=s x 50。每一步都在做乘法用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建例1:求50!。设计算法通项公式:s=s x i。循环控制,一共执行50次。循环控制变量相当于计数器,从1开始到50结束,每一次递增1。循环控制变量和通项公式变化的量i。i=i + 1从初值变化到终值,最终结束循环。算法二:令s=1;i=1;循环当i小 于等于50;3.1 s=s x i;3.2 i=i + 1。用计算机计算圆周率 --- 设计简单数值数据算法二、新授2循环结构的算法构建例1:求50!。算法二流程图开始结束s=sxi,i=i+1s=1,i=1i≤50 输出s是否用计算机计算圆周率 --- 设计简单数值数据算法二、新授3实现循环结构的语句确定次数循环确定次数循环指循环结构对循环次数有明确的定义,循环次数采用遍历结构中元素的个数来体现。Python语言中通过for语句来实现确定次数循环。for <循环控制变量> in <遍历结构>:<语句块>遍历结构可以是range函数产生的序列、组合数据对象(列表、字符串)或文件对象。用计算机计算圆周率 --- 设计简单数值数据算法二、新授3实现循环结构的语句确定次数循环用for语句实现求50!的语句块如下:s=1for i in range(1,51):s=s*iprint(s)用计算机计算圆周率 --- 设计简单数值数据算法二、新授3实现循环结构的语句不确定次数循环会一直保持循环操作,直到特定循环条件不被满足时才结束,不需要提前知道循环次数。Python语言中通过while语句来实现不确定次数循环:while <条件>:<语句块>不确定次数循环用计算机计算圆周率 --- 设计简单数值数据算法二、新授3实现循环结构的语句用while语句实现求50!的语句块如下:s=1i=1while i<=50:s=s*ii=i+1print(s)不确定次数循环用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π分析问题该公式是一项一项连续相加的,并且每一项都可由前一项经过有规律的变化得到,称为累加问题。用自然语言描述如下:设置累加器变量s的初始值为0;s=s+1/(1 x 1);s=s+1/(2 x 2);....①累加的通项公式s=s+item;②构造item=1/(i x i),i=i+1。思考与讨论?按如下要求该如何分别控制循环的执行?循环控制变量是哪一个?初值、终值是怎样的?如何变化? 累加n个item; 圆周率的精确度达到小数点后6位。循环开始前,item的值是多少?循环结束后,item的值是多少?用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π分析问题该公式是一项一项连续相加的,并且每一项都可由前一项经过有规律的变化得到,称为累加问题。用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π分析问题用自然语言描述如下:设置累加器变量s的初始值为0;s=s+1/(1 x 1);s=s+1/(2 x 2);....①累加的通项公式s=s+item;②构造item=1/(i x i),i=i+1。用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π设计算法思考与讨论?按如下要求该如何分别控制循环的执行?循环控制变量是哪一个?初值、终值是怎样的?如何变化? 累加n个item; 圆周率的精确度达到小数点后6位。用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π设计算法思考与讨论?循环开始前,item的值是多少?循环结束后,item的值是多少?用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π设计算法令i=1,item=1.0,s=0;循环当item大于等于0.000001;2.1 s=s+item;2.2 i=i+1;2.3 item=1/(i x i);3. pi= ;4. 输出pi的值。自然语言描述用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π设计算法流程图描述i=1,item=1.0,s=0item大于等于0.000001 输出pi是否s=s+item,i=i+1,item=1/(i x i)用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π编写程序from math import sqrti=1s=0item=1while item>0.000001:s=s+itemi=i+1item=1/(i*i)pi=sqrt(6*s)print("pi 的值是 ", pi)在Python语言中,利用while语句可以实现该循环结构的算法,pi表示圆周率。item大于等于0.000001 输出pi是否s=s+item,i=i+1,item=1/(i x i)i=1,item=1.0,s=0用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π编写程序from math import sqrti=1s=0item=1while item>0.000001:s=s+itemi=i+1item=1/(i*i)pi=sqrt(6*s)print("pi 的值是 ", pi)在Python语言中,利用while语句可以实现该循环结构的算法,pi表示圆周率。用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π运行、调试程序在Python中创建并运行程序,检查运行结果。用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π如果按累加n项的方法控制循环,该如何修改程序?如何分别用while语句和for语句实现?思考与讨论?用计算机计算圆周率 --- 设计简单数值数据算法三、巩固提高1设计算法实现用数学公式计算计算圆周率π用计算机计算圆周率 --- 设计简单数值数据算法四、小结作业1小结1. 今天你有什么收获?2. 会画循环结构流程?循环控制变量赋初值终止条件判断是否语句块改变循环控制变量的值循环结构的流程图用计算机计算圆周率 --- 设计简单数值数据算法四、小结作业2作业使用沃斯公式计算圆周率。用计算机计算圆周率 --- 设计简单数值数据算法谢谢! 展开更多...... 收起↑ 资源预览